feat: Implement product switcher for AppShell and update navigation context
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 53s
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 53s
This commit is contained in:
@@ -53,6 +53,7 @@ Bestehendes Node/Express-Backend
|
||||
- [x] Build-Konfigurationen `development`, `staging` und `production` mit `API_BASE_URL` per Dart-Define einrichten.
|
||||
- [x] App-Theme, Typografie, responsive Desktop-Layout und zentrale Design-Tokens anlegen.
|
||||
- [x] Navigation mit öffentlichem Bereich und geschütztem App-Bereich aufsetzen.
|
||||
- [x] Produkt-Switch für Trainings-Tagebuch, TT Verein und Mein TT anlegen; Produktwechsel aktualisiert Kontext und Navigation. Rechtefilterung folgt mit Phase 2.
|
||||
- [x] Fehlerbehandlung, Logging ohne personenbezogene Daten und zentrale Ladeindikatoren implementieren.
|
||||
- [x] CI-Grundgerüst für Formatierung, Analyse und Tests anlegen.
|
||||
|
||||
|
||||
@@ -20,6 +20,19 @@ Die erste Version ist eine **online-first Flutter-App ohne WebView**. Sie verwen
|
||||
|
||||
Der MVP liefert damit für alle Rollen eine verlässliche tägliche Übersicht. Schreibende Verwaltungs- und Trainerabläufe folgen erst, wenn die lesenden Kernansichten auf allen Zielplattformen stabil sind.
|
||||
|
||||
## 1.1 Produktwechsel in der Desktop-App
|
||||
|
||||
Ein Benutzer kann innerhalb derselben Desktop-Installation zwischen den drei
|
||||
Produkten **Trainings-Tagebuch** (`trainer`), **TT Verein** (`club`) und
|
||||
**Mein TT** (`player`) wechseln. Der Wechsel ändert Produktname, Navigation,
|
||||
Startbereich und Kontext sofort; Datenbank, Benutzerkonto und API bleiben
|
||||
gemeinsam.
|
||||
|
||||
Der Switch ist kein Berechtigungsmechanismus. Ab Phase 2 werden die sichtbaren
|
||||
Produkte und Menüpunkte zusätzlich aus Vereinszugang und den geladenen
|
||||
Berechtigungen gefiltert. Produkte ohne Zugriff dürfen dann nicht auswählbar
|
||||
sein.
|
||||
|
||||
## 2. Rollen- und Sichtbarkeitsmatrix
|
||||
|
||||
Die Berechtigungen kommen ausschließlich vom Backend (`GET /api/permissions/:clubId`). Die folgende Matrix definiert nur die Desktop-Navigation; sie ersetzt niemals eine Serverprüfung.
|
||||
|
||||
Reference in New Issue
Block a user