feat(frontend): RSVP-Formular vereinheitlicht, Absagen-Feld, FormFields-Komponente, required-Validierung #301

Merged
niboer merged 1 commit from feat/rsvp-form-improvements into main 2026-07-19 15:03:16 +00:00
Owner

Allgemein

refs #300

Altes Verhalten

  • Antwort-Formular hatte drei separate Code-Bloecke (self/all-same/all-separate) mit Redundanzen
  • GuestFormModal nutzte eigene Inline-Felder
  • Keine Möglichkeit für das Antwort-Formular abzusagen
  • Fehlerhafte Erkennung von decline_-Prefix in all-separate-Modus

Neues Verhalten

  • FormFields-Komponente als einheitliches Template fuer alle Feldtypen, zweimal verwendet (Antwort-Formular + GuestFormModal)
  • displayPersons steuert Anzahl der Personen-Bloecke (self=1, all-same=1, all-separate=N)
  • Absagen-Checkbox in allen Modi (self/all-same/all-separate) mit Auto-Disabled der Feld-Inputs
  • required-Validierung auf allen 6 Feldtypen (select, radio, checkbox, text, number, date)
  • 8 E2E-Tests in 3 Spec-Dateien decken alle RSVP-Szenarien ab: self/same/separate, confirm/decline/mixed, required-Validation
  • E2E-Helper fuer wiederkehrende Aktionen (rsvp.ts mit resetToInvited, petraCard, selectZimmer, etc.)

Begruendung

Vereinheitlichung reduziert Wartungskosten, E2E-Tests stellen sicher, dass alle Kombinationen aus scope (self/same/separate) und Aktion (zusagen/absagen) korrekt funktionieren.

Test-Hinweise

E2E-Tests via npm run test:integration ausfuehren. Drei neue Specs:

  • rsvp-self.spec.ts — Tests 1, 2, 8
  • rsvp-same.spec.ts — Tests 3, 4
  • rsvp-separate.spec.ts — Tests 5, 6, 7

Checkliste

  • use:testid an neuen <button>, <a>, <form>-Elementen gesetzt?
  • Korrespondierender E2E-Test in e2e/specs/ angelegt?
### Allgemein refs #300 ### Altes Verhalten - Antwort-Formular hatte drei separate Code-Bloecke (self/all-same/all-separate) mit Redundanzen - GuestFormModal nutzte eigene Inline-Felder - Keine Möglichkeit für das Antwort-Formular abzusagen - Fehlerhafte Erkennung von decline_-Prefix in all-separate-Modus ### Neues Verhalten - FormFields-Komponente als einheitliches Template fuer alle Feldtypen, zweimal verwendet (Antwort-Formular + GuestFormModal) - displayPersons steuert Anzahl der Personen-Bloecke (self=1, all-same=1, all-separate=N) - Absagen-Checkbox in allen Modi (self/all-same/all-separate) mit Auto-Disabled der Feld-Inputs - required-Validierung auf allen 6 Feldtypen (select, radio, checkbox, text, number, date) - 8 E2E-Tests in 3 Spec-Dateien decken alle RSVP-Szenarien ab: self/same/separate, confirm/decline/mixed, required-Validation - E2E-Helper fuer wiederkehrende Aktionen (rsvp.ts mit resetToInvited, petraCard, selectZimmer, etc.) ### Begruendung Vereinheitlichung reduziert Wartungskosten, E2E-Tests stellen sicher, dass alle Kombinationen aus scope (self/same/separate) und Aktion (zusagen/absagen) korrekt funktionieren. ### Test-Hinweise E2E-Tests via `npm run test:integration` ausfuehren. Drei neue Specs: - `rsvp-self.spec.ts` — Tests 1, 2, 8 - `rsvp-same.spec.ts` — Tests 3, 4 - `rsvp-separate.spec.ts` — Tests 5, 6, 7 ### Checkliste - [x] `use:testid` an neuen `<button>`, `<a>`, `<form>`-Elementen gesetzt? - [x] Korrespondierender E2E-Test in `e2e/specs/` angelegt?
feat(frontend): RSVP-Formular vereinheitlicht, Absagen-Feld, FormFields-Komponente, required-Validierung
All checks were successful
CI Backend / lint-backend (pull_request) Successful in 59s
CI Frontend / lint-frontend (pull_request) Successful in 1m22s
CI Meta / conventional-commit (pull_request) Successful in 1s
E2E / e2e (pull_request) Successful in 4m9s
CI Backend / test-backend (pull_request) Successful in 3m51s
CI Frontend / test-frontend (pull_request) Successful in 2m0s
c26c677a18
- FormFields-Komponente als gemeinsames Template fuer Antwort-Formular
  und GuestFormModal extrahiert (alle 6 Feldtypen mit required-Unterstuetzung)
- Antwort-Formular auf einheitlichen Block umgestellt:
  displayPersons steuert Anzahl der Personen-Bloecke
- Absagen-Checkbox als Standardfeld in allen Modi (self/all-same/all-separate)
- required-HTML-Attribut auf allen Input-Typen (select, radio, checkbox, text)
- Bugfix: decline_-Keys werden als all-separate-Modus erkannt
- Bugfix: self/all-same Absagen schliesst Dialog (status===declined check)
- Bugfix: all-separate Absagen sendet declined-Status via decline_-Prefix
- Dyn. Test: alle Designer-Feldtypen werden auf required gecovert
- invoice-workflow E2E-Test: btn-submit-self-first -> btn-submit-answer

closes #300
niboer merged commit 57eed22f07 into main 2026-07-19 15:03:16 +00:00
niboer deleted branch feat/rsvp-form-improvements 2026-07-19 15:03:16 +00:00
Sign in to join this conversation.
No description provided.