From e49639e2a6769a2631c2b2cc565e336bd8cf1181 Mon Sep 17 00:00:00 2001 From: Matthias Hochmeister Date: Wed, 25 Mar 2026 15:22:31 +0100 Subject: [PATCH] reoccurring event fix --- frontend/src/pages/Kalender.tsx | 15 +++++++++++---- frontend/src/pages/Veranstaltungen.tsx | 18 +++++++++++------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/frontend/src/pages/Kalender.tsx b/frontend/src/pages/Kalender.tsx index b857185..918d9a0 100644 --- a/frontend/src/pages/Kalender.tsx +++ b/frontend/src/pages/Kalender.tsx @@ -1634,13 +1634,13 @@ function VeranstaltungFormDialog({ /> )} {/* Wiederholung */} - {(!editingEvent || (editingEvent && editingEvent.wiederholung)) && ( + {(!editingEvent || editingEvent.wiederholung || editingEvent.wiederholung_parent_id) && ( <> - {editingEvent && editingEvent.wiederholung && editingEvent.wiederholung_parent_id ? ( + {editingEvent?.wiederholung_parent_id ? ( <> - Wiederholung kann nicht bearbeitet werden (Einzeltermin einer Serie) + Dieser Termin ist Teil einer Serienveranstaltung. Änderungen betreffen nur diesen Einzeltermin. } @@ -1652,7 +1652,14 @@ function VeranstaltungFormDialog({ control={ setWiederholungAktiv(e.target.checked)} + onChange={(e) => { + setWiederholungAktiv(e.target.checked); + if (e.target.checked && !wiederholungBis) { + const bisDefault = new Date(form.datum_von); + bisDefault.setMonth(bisDefault.getMonth() + 3); + setWiederholungBis(bisDefault.toISOString().slice(0, 10)); + } + }} /> } label="Wiederkehrende Veranstaltung" diff --git a/frontend/src/pages/Veranstaltungen.tsx b/frontend/src/pages/Veranstaltungen.tsx index b6596f7..d6b58bd 100644 --- a/frontend/src/pages/Veranstaltungen.tsx +++ b/frontend/src/pages/Veranstaltungen.tsx @@ -928,16 +928,20 @@ function EventFormDialog({ fullWidth /> - {/* Recurrence / Wiederholung — for new events or when editing a parent event */} - {(!editingEvent || (editingEvent.wiederholung && !editingEvent.wiederholung_parent_id)) && ( + {/* Recurrence / Wiederholung — for new events, parent events, or child events */} + {(!editingEvent || editingEvent.wiederholung || editingEvent.wiederholung_parent_id) && ( <> - {editingEvent && ( + {editingEvent?.wiederholung_parent_id ? ( + + Dieser Termin ist Teil einer Serienveranstaltung. Änderungen betreffen nur diesen Einzeltermin. + + ) : editingEvent?.wiederholung ? ( Änderungen an der Wiederholung werden alle bestehenden Instanzen löschen und neu generieren. - )} - } label="Wiederholung" - /> - {form.wiederholung && ( + />} + {!editingEvent?.wiederholung_parent_id && form.wiederholung && ( Häufigkeit