Commit Graph
30 Commits
Author SHA1 Message Date
t.indorf 99d3a63eed Merge main with notdienst planning and notification improvements 2026-10-12 15:37:10 +02:00
t.indorf 00f602a7aa feat: complete notdienst planning, quick wins and notifications 2026-10-12 15:34:09 +02:00
t.indorf e50a8c646b fix: preserve invitations for admins with a family 2026-10-10 07:26:25 +02:00
t.indorf e6a30be579 Merge family absence flows while preserving security hardening 2026-10-10 07:08:41 +02:00
t.indorf a9f57acf70 Merge current features with security hardening and automatic safe initialization 2026-10-09 23:29:19 +02:00
t.indorf 8915fe7df6 Improve family invitations and absence management flows 2026-10-09 22:59:36 +02:00
t.indorf 656ada80bd Harden authentication, tenant isolation and security boundaries 2026-10-09 22:49:55 +02:00
t.indorf 4702bf5abb feat: create and invite educators in a single form 2026-10-09 21:59:04 +02:00
t.indorf 979f795341 feat: add parent announcements and family or child event responses 2026-10-09 21:44:19 +02:00
t.indorf 8b32e4a832 feat: add household emergency duty alarms and deadline worker 2026-10-09 11:02:24 +02:00
t.indorf 90b8843cda Add educator email invitations and staff notification preferences 2026-10-08 11:32:38 +02:00
t.indorf 043fed2e46 Add educator leave management and working time accounts 2026-10-07 15:25:55 +02:00
t.indorf ec3f4f933d test: make calendar actions testable from CLI and add integration test script 2026-05-23 19:20:54 +02:00
t.indorf 3ce5638449 feat: implement emergency duty (Notdienst) swapping for parents 2026-05-23 19:18:30 +02:00
t.indorf 27c5a6940a feat: implement premium responsive mobile shell and drawer 2026-05-22 15:50:03 +02:00
t.indorf f28956194c feat: add directory opt-out sync and layout/xss seed data extensions 2026-05-22 15:22:12 +02:00
t.indorf e9595fab21 feat: show family assignment counts in notdienst planning dropdown and support editing unassigned days in published plans 2026-05-21 14:29:13 +02:00
t.indorf f6acb3d271 feat: default to Month view and implement household services filter toggle for parents 2026-05-21 13:24:42 +02:00
t.indorf 339563bf4d feat: display published Notdienst assignments in appointment calendar with custom styling for own assignments 2026-05-21 13:04:52 +02:00
t.indorf 9915c8213e fix(notdienst): resolve timezone offset mismatch in plan generation and fix linter warning in calendar modal 2026-05-21 12:53:46 +02:00
t.indorf ab7432f3a3 Merge branch 'codex/replace-alert-dialogs' into codex/notdienst-month-settings 2026-05-21 10:46:31 +02:00
t.indorf 84aae1d72e Implement missing UI button features, filters, search, and view toggles across all modules 2026-05-21 10:44:23 +02:00
t.indorf 89364e9011 Replace native confirms with dialogs 2026-05-20 23:48:40 +02:00
t.indorf e7eb43462c Fix server/client component boundary issue with reasonColor/reasonLabel helper functions by moving them to shared utils 2026-05-20 23:09:59 +02:00
t.indorf 1c5d2f10ac Apply linen design system across app 2026-05-20 22:47:52 +02:00
t.indorf 99ff978116 Fix live test follow-up issues 2026-05-19 14:28:32 +02:00
t.indorfandClaude Opus 4.7 fa06da324c Fix mail layouts, /invite form-reset, profile validation
Mail templates (6 templates touched):
- New shared `_styles.ts` exports a robust font stack starting with
  Arial/Helvetica so mail readers that lack -apple-system and
  BlinkMacSystemFont don't fall back to Monospace (observed in at least
  one webmail client).
- `fontFamily` is now set on every text-bearing element, not only on
  `<Body>`, because some clients (Outlook, several webmail readers) do
  not inherit body CSS into nested sections.
- ASCII substitutions are gone: "Ueber" → "Über", "fuer" → "für",
  "bestaetigen" → "bestätigen", "uebernehmen" → "übernehmen",
  "verlaesslich" → "verlässlich".
- InviteEmail + NewsEmail buttons switch from the off-brand yellow
  (#f0b84b) to the brand dark green so the CTA matches the header.

/invite form:
- InviteState gains an `attempt` counter plus echoed checkbox `values`,
  mirroring the /register and /onboarding fix from earlier branches. A
  failed submit no longer wipes the Datenschutz / Adressbuch-Opt-In
  ticks. Passwords stay empty for security.
- Field error <p> elements gain role="alert" + aria-live="polite" so
  screen readers announce validation failures on submit. Inputs use
  aria-describedby to link to error / helper text.

Profile validation:
- Telephone numbers must match a permissive pattern that still rejects
  obvious garbage (previously "abc-123-not-a-phone" was accepted).
- Postal codes must match an alphanumeric pattern of 3–10 chars
  (previously "ABCDE" was accepted).
- Child date-of-birth is now validated via superRefine: it must be a
  parseable date, not in the future, and not before 1900. Previously a
  kid born in 2030 was accepted.
- The three Profil server actions now surface the first Zod issue
  message instead of generic "Ungültige Eingabedaten." toasts.

Misc:
- "fuer" → "für" in the Adressbuch page subtitle.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 23:49:01 +02:00
t.indorf 9542def530 Add RSVP events and Unsplash image support 2026-05-15 21:28:36 +02:00
t.indorf 7aff691803 continued the kita-planer 2026-05-08 14:32:14 +02:00
t.indorf b686e714ff Add non-destructive dev seed on startup 2026-05-06 22:31:07 +02:00