All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 30m12s
- admin/page.tsx: 1365 -> 224 Zeilen (nur noch Guard + Header + Tabs -> Komponenten) - Neue in sich geschlossene Komponenten (eigener State + Daten-Laden): tenants-tab, users-tab, projects-tab, icons-tab, categories-tab - Gemeinsame Typen/Konstanten in admin-constants.ts zentralisiert - SettingsTab lädt Zähler selbst (von der Hülle entkoppelt) - Toten Code entfernt (UpgradeRequestsTab) - Ergänzt: Benutzer-Suche + Mandanten-Auswahl beim Anlegen (verhindert verwaiste User) - Version 1.4.7 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.8 KiB
2.8 KiB
Lageplan – Verbesserungs-Fahrplan
Priorisierter Plan zur Weiterentwicklung. Wir arbeiten ihn Punkt für Punkt ab. Legende Aufwand: 🟢 klein · 🟡 mittel · 🔴 gross
Phase 0 – Fundament & Sicherheit
- 0.1 – JWT-Secret härten 🟢 ✅
- Gemeinsames Secret-Modul; in Produktion hart fehlschlagen, wenn
NEXTAUTH_SECRETfehlt oder < 32 Zeichen. Kein öffentlich bekannter Fallback mehr. - Betrifft:
src/lib/auth.ts,src/middleware.ts - Hinweis: Cookie-Flags (httpOnly/secure/sameSite) sind bereits korrekt.
- Gemeinsames Secret-Modul; in Produktion hart fehlschlagen, wenn
- 0.2 – Token-Laufzeit verkürzt 🟢 ✅
- „Angemeldet bleiben" 30 → 14 Tage. Laufzeiten zentralisiert (
SESSION_MAX_AGE_*inauth.ts). - Offen für später: automatische Verlängerung bei Aktivität + serverseitiger Widerruf (grösserer Umbau, braucht Live-Test).
- „Angemeldet bleiben" 30 → 14 Tage. Laufzeiten zentralisiert (
- 0.3 – Benutzer-/Mandanten-Verwaltung 🟡 ✅
- Super-Admin sieht ALLE Benutzer über alle Mandanten (Mandant-Spalte, letzte
Anmeldung, Status), sperren/entsperren (
User.isActive), Passwort-Reset, Suche. - Anlegen mit Mandanten-Auswahl (verhindert verwaiste User).
admin/page.tsxvon 1365 → ~230 Zeilen entwirrt: je Bereich eine eigene Komponente (tenants/users/projects/icons/categories-tab), toter Code entfernt.- Offen (später): Rollen-Dualität (User.role vs. Membership.role) vereinheitlichen.
- Super-Admin sieht ALLE Benutzer über alle Mandanten (Mandant-Spalte, letzte
Anmeldung, Status), sperren/entsperren (
Phase 1 – Einsatz vs. Übung
- 1.1 –
mode-Feld am Projekt 🟢 ✅- Feld
mode(EINSATZ/UEBUNG) im Schema + Auto-Migration + Validierung. - Auswahl beim Erstellen (Segmented-Control), Badge in Projektliste, eigene Nummer
Ü-….
- Feld
- 1.2 – UI je nach Modus 🟡 ✅
- Direkte Buttons „Neuer Einsatz" (rot) / „Neue Übung" (blau) in der Topbar.
- Übung → Übungs-Cockpit statt Journal: Übungsziele + Zielerreichung + Auswertung.
- Deutliches „ÜBUNG"-Banner, Sidebar-Tab heisst bei Übung „Auswertung".
Phase 2 – Symbole aufräumen & ergänzen
- 2.1 – Kategorien vereinheitlichen 🟢 (Motorspritze, Hydrant, Leitern …)
- 2.2 – Fehlende taktische Zeichen 🟡 (Warteraum, Rettungsachse … – Input von Fabian)
- 2.3 – Symbol-Schönheitsfehler 🟢 (Eingang/Treppe Umriss, Absperrung Seitenlinien)
- 2.4 – Custom-Felder pro Symbol 🟢 (z. B. Stockwerke;
Item.propertiesexistiert)
Phase 3 – Lage-/Rapportansicht
- 3.1 – Reduzierte Lage-View 🟡
- Read-Only (Pendenzen + Stand + Aufgaben) für Grossbildschirm.
Rapport+ Token existieren.
- Read-Only (Pendenzen + Stand + Aufgaben) für Grossbildschirm.
Phase 4 – Echte Kollaboration
- 4.1 – Karte & Journal getrennt live-editierbar 🔴
- Single-Editor-Lock aufbrechen; Socket.io-Sync erweitern.
Phase 5 – Kür
- 5.1 – Linien-Typ-Abfrage 🟡 (Rettungsachse / Leitung / normal)
Fortschritt wird hier laufend abgehakt.