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