feat(frontend): Event-Liste, Event-Detail und Event-Anlegen #71

Closed
opened 2026-06-21 16:18:03 +00:00 by niboer · 0 comments
Owner

Beschreibung

Vollstaendige Event-Verwaltung: Liste aller Events, Detailansicht mit Bearbeitung und Formular zum Anlegen neuer Events. Enthaelt auch die bisherigen Anforderungen aus #57 (Datumsvalidierung) und #58 (Navigation nach Anlage).

Endpunkte

  • GET /api/v1/events - Alle Events listen
  • POST /api/v1/events - Neues Event anlegen
  • GET /api/v1/events/{event_id} - Einzel-Event abrufen
  • PUT /api/v1/events/{event_id} - Event aktualisieren

Event-Liste (/app/events)

load-Funktion

s export async function load({ fetch }) { const res = await fetch('/api/v1/events'); return { events: res.ok ? await res.json() : [] }; }

Seite

  • PageHeader "Events" + "Event anlegen"-Button
  • DataTable mit Spalten: Titel, Datum, Gaeste-Anzahl (aus Gaesteliste), Erstellt am
  • Sortierung nach Titel oder Datum
  • Klick auf Event ? Detailseite

Event-Detail (/app/events/[eventId])

  • Event-Info: Titel (editierbar), Datum (editierbar), Organisator (read-only)
  • Bearbeiten-Button: Schaltet Formular um (umschaltbar zwischen View/Edit)
  • Sub-Navigation: Tabs "Gaeste" (#72) und "Zahlung" (#73)
  • Nutzt +layout.svelte fuer Sub-Navigation

Event anlegen (/app/events/new)

  • Formular: Titel (required), Datum (required, date-Picker)
  • Datumsvalidierung: Nur zukuenftige Daten erlaubt (heute + 1 Tag, aus #57)
  • Nach erfolgreicher Anlage: Redirect zur Event-Liste oder zum neuen Event (aus #58)
  • Nutzt FormField, Card, Button (shadcn)

Tests

  • events.test.ts: load-Funktionen, create/update actions, Validierung
  • Testet: Event-Liste rendert alle Events, Detail zeigt Event-Info, Create-Formular validiert Datum, Redirect nach Create

Akzeptanzkriterien

  • Event-Liste zeigt alle Events mit Titel und Datum
  • Sortierung nach Titel und Datum funktioniert
  • Event-Detail zeigt alle Informationen
  • Event-Bearbeiten funktioniert (View/Edit-Umschaltung)
  • Neues Event anlegen: Datum muss in der Zukunft liegen
  • Nach Anlage: Redirect zur Liste oder neuen Event
  • Sub-Navigation (Gaeste/Zahlung) ist sichtbar
  • Tests laufen gruen
## Beschreibung Vollstaendige Event-Verwaltung: Liste aller Events, Detailansicht mit Bearbeitung und Formular zum Anlegen neuer Events. Enthaelt auch die bisherigen Anforderungen aus #57 (Datumsvalidierung) und #58 (Navigation nach Anlage). ## Endpunkte - GET /api/v1/events - Alle Events listen - POST /api/v1/events - Neues Event anlegen - GET /api/v1/events/{event_id} - Einzel-Event abrufen - PUT /api/v1/events/{event_id} - Event aktualisieren ## Event-Liste (/app/events) ### load-Funktion ` s export async function load({ fetch }) { const res = await fetch('/api/v1/events'); return { events: res.ok ? await res.json() : [] }; } ` ### Seite - PageHeader "Events" + "Event anlegen"-Button - DataTable mit Spalten: Titel, Datum, Gaeste-Anzahl (aus Gaesteliste), Erstellt am - Sortierung nach Titel oder Datum - Klick auf Event ? Detailseite ## Event-Detail (/app/events/[eventId]) - **Event-Info**: Titel (editierbar), Datum (editierbar), Organisator (read-only) - **Bearbeiten-Button**: Schaltet Formular um (umschaltbar zwischen View/Edit) - **Sub-Navigation**: Tabs "Gaeste" (#72) und "Zahlung" (#73) - Nutzt +layout.svelte fuer Sub-Navigation ## Event anlegen (/app/events/new) - Formular: Titel (required), Datum (required, date-Picker) - **Datumsvalidierung**: Nur zukuenftige Daten erlaubt (heute + 1 Tag, aus #57) - Nach erfolgreicher Anlage: Redirect zur Event-Liste oder zum neuen Event (aus #58) - Nutzt FormField, Card, Button (shadcn) ## Tests - events.test.ts: load-Funktionen, create/update actions, Validierung - Testet: Event-Liste rendert alle Events, Detail zeigt Event-Info, Create-Formular validiert Datum, Redirect nach Create ## Akzeptanzkriterien - [ ] Event-Liste zeigt alle Events mit Titel und Datum - [ ] Sortierung nach Titel und Datum funktioniert - [ ] Event-Detail zeigt alle Informationen - [ ] Event-Bearbeiten funktioniert (View/Edit-Umschaltung) - [ ] Neues Event anlegen: Datum muss in der Zukunft liegen - [ ] Nach Anlage: Redirect zur Liste oder neuen Event - [ ] Sub-Navigation (Gaeste/Zahlung) ist sichtbar - [ ] Tests laufen gruen
Sign in to join this conversation.
No description provided.