Files
2026-05-15 11:03:02 +02:00

1.9 KiB

Gastansicht

Route

/guest/:id

Zweck

Die Gastansicht zeigt eine öffentlich geteilte Version einer Veranstaltung. Sie richtet sich an externe Personen ohne Login und stellt Veranstaltungstyp, Datum und Liedtexte bereit.

Datenquellen

  • GuestComponent liest die Routen-ID aus ActivatedRoute.params.
  • GuestShowDataService.read(id) lädt den initialen Datensatz aus der Firestore-Collection guest.
  • GuestShowDataService.read$(id) abonniert anschließend Live-Updates für denselben Datensatz.
  • GuestShowService.share(show, songs) erstellt oder aktualisiert Gastdatensätze aus einer Veranstaltung und erzeugt die URL /guest/{shareId}.

UI

Die geladene Veranstaltung zeigt links den übersetzten Veranstaltungstyp und rechts das Datum im Format dd.MM.yyyy. Die Songs werden in einem Swiper dargestellt. Jede Folie enthält Titel, optional Künstler und den Liedtext über SongTextComponent.

Für Lade-, Fehler- und Nicht-gefunden-Zustände zeigt die Seite einfache Meldungen.

Aktionen

Die Gastseite selbst bietet keine Bearbeitungsaktionen. Benutzer können durch die Song-Folien wischen; Aktualisierungen am geteilten Datensatz erscheinen über das Live-Abonnement.

Rollen und Berechtigungen

Die Route ist öffentlich erreichbar und nicht durch Authentifizierung geschützt. Zugriffsschutz erfolgt ausschließlich über die Kenntnis der Share-ID in der URL.

Technische Hinweise

  • Der Zustand der Seite ist als GuestShowState modelliert: loading, loaded, not-found oder error.
  • Datumswerte werden normalisiert und unterstützen Date, Firestore-Timestamps mit toDate, Objekte mit seconds, Strings und Zahlen.
  • Falls der initiale Ladevorgang keinen Datensatz findet, wird not-found angezeigt.
  • Fehler beim initialen Laden oder bei Live-Aktualisierungen führen zu einer Fehlermeldung.
  • ensureSwiperElement() registriert das Web Component für den Swiper.