4.9 KiB
4.9 KiB
GUI, Informationsarchitektur, Admin & Navigation (Abnahme 2026-04-05)
Zweck: Einheitliche Referenz für Menschen und Code-Agents (Cursor, Claude Code, …).
Gitea: Teilaspekte zu #30 Responsive UI; Admin-Layout kein separates Issue.
Branch-Realität: Umsetzung aufdevelop, Deploy nachmainwie üblich.
Kurzüberblick
| Thema | Kern |
|---|---|
| Admin | Eigener Bereich mit Shell wie KI-Analyse: Gruppen-Chips (mobil) / Sidebar (Desktop), Hub /admin/g/:groupId, Route-Guard RequireAdmin |
| Ziele | Eigener Hauptnav-Punkt /goals; nicht mehr primär unter Analyse; Dashboard + Einstellungen als Sekundär-Einstiege |
| Einstellungen / Profil | Nur aktives Profil inline; E-Mail-Self-Service; neue Profile nur Admin → Benutzerverwaltung |
| KI-Analyse | Neue Ergebnis-Karte im rechten Spalt der analysis-split, damit Kategorie-Nav nicht verdrängt wird |
| PWA / iPhone | Bottom-Nav: Safe Area auf .bottom-nav, kein Clipping durch overflow-y + safe-area auf Items |
| Deploy Prod | Workflow: git fetch + git reset --hard origin/<branch> statt pull bei schmutziger package-lock |
| #14 Icon Picker | Erledigt (EmojiIconPicker); Gitea geschlossen |
Dateien (Single Source of Truth im Code)
| Bereich | Pfade |
|---|---|
| Hauptnavigation | frontend/src/config/appNav.js (getMainNavItems) |
| Active-State Bottom + Sidebar | frontend/src/App.jsx (navItemActive), frontend/src/components/DesktopSidebar.jsx |
| Admin Shell & Routing | frontend/src/layouts/AdminShell.jsx, frontend/src/layouts/RequireAdmin.jsx, frontend/src/config/adminNav.js (ADMIN_GROUPS, Hubs) |
| Admin-Seiten | frontend/src/pages/AdminHomePage.jsx, AdminGroupHubPage.jsx, AdminUsersPage.jsx, AdminSystemPage.jsx, … |
| Einstellungen Profil | frontend/src/pages/SettingsPage.jsx, .settings-page__field in app.css |
| KI-Analyse Layout | frontend/src/pages/Analysis.jsx + .analysis-split* in app.css |
| Admin-Zugriff verweigert | frontend/src/pages/Dashboard.jsx (adminDenied State aus location.state) |
| Bottom-Nav / Safe Area | frontend/src/app.css (--nav-h, --nav-pad-top, .bottom-nav, .app-main padding-bottom) |
| Deploy | .gitea/workflows/deploy-prod.yml, deploy-dev.yml |
| Backend Profil E-Mail | backend/models.py (ProfileUpdate.email), backend/routers/profiles.py (update_profile + Eindeutigkeit / Verifikation) |
| .gitignore Fix | frontend/package-lock.json eigene Zeile (war mit settings.local verklebt) |
Navigation: Reihenfolge (Mobile & Desktop)
Übersicht → Erfassen → Verlauf → Ziele → Analyse → Einstellungen → [Admin]
- Ziele:
NavLinkmitend: true(exakt/goals). - Admin: nur wenn
session.role === 'admin'; Highlight beipathname.startsWith('/admin').
Admin-Bereich (IA)
- Shell nutzt dieselben UI-Klassen wie die Analyse:
.analysis-split,.analysis-split__nav-wrap,.analysis-split__main. - Nur Gruppen in der Shell-Nav (inkl. Zähler pro Gruppe).
- Konkrete Seiten: Karten auf
/admin/g/:groupId(z. B.features,prompts,system). - KI-Prompts eigene Gruppe; Basiseinstellungen = SMTP + Placeholder-Export (
/admin/system). - Kein Admin-Block mehr in den Einstellungen (nur Admin-Hinweis-Link zu Benutzerverwaltung).
Backend-Hinweis Profil
PUT /api/profile akzeptiert email; Änderung setzt email_verified u. a. zurück (siehe profiles.py).
Gitea / Issues (manuell oder scripts/gitea/gitea_api.py)
| Issue | Empfehlung |
|---|---|
| #30 | Offen lassen oder TEILWEISE: Desktop-Sidebar existiert; ergänzt um Admin-Shell, scrollable Bottom-Nav, iOS Safe-Area. Kommentar mit Link auf dieses Dokument. |
| #14 | Bereits geschlossen (Icon-Picker). |
| Kein eigenes Admin-IA-Issue | Optional: Sub-Issue „Admin Shell P7“ schließen oder mit #30 verknüpfen. |
Schließe kein großes #30 ohne Abnahme „volle Responsive-Spec“ – diese Session liefert nur einen abgegrenzten GUI-Stand.
Checks für Folge-Agents
frontend:npm run build- Admin-Route als Nicht-Admin: Redirect
/, Dashboard-Hinweis - iPhone PWA: Bottom-Nav nicht beschnitten; Content nicht hinter Home-Indicator
develop→ nach Abnahmemain+ Deploy (siehe aktualisierte Workflows)
Changelog-Kurz
- Admin: Shell, Hub-Routen,
RequireAdmin, entfernt aus Settings. - Ziele:
appNav, Dashboard, Settings, Analyse nur noch Hinweis-Link. - Settings: Mein Profil, E-Mail, keine Profilliste.
- Analyse:
newResultinanalysis-split__main. - CSS: Bottom-Nav scroll + Safe Area +
--nav-pad-top. - Deploy:
reset --hardauf Runner-Arbeitskopie. - Review-Liste: #14 erledigt (siehe
REVIEW_OPEN_ISSUES_2026-04-04.md).