Brand/404: route to Dashboard and sync user

Ensure brand click reliably routes to Dashboard by making navigateToBrandTarget async and fetching current user if not yet loaded (prevents misnavigation to Welcome). Update mobile account menu label to "Zum Dashboard". Change 404 page primary CTA/text to point to the Dashboard and make navigateBack fall back to Dashboard. Update codexInfo.md to document these changes and note the new codexinfo-komprimieren skill.
This commit is contained in:
Jonas
2026-04-18 23:18:50 +02:00
parent 6c2a149f96
commit f830fe4967
3 changed files with 26 additions and 7 deletions
+16 -4
View File
@@ -128,9 +128,21 @@ function toggleTheme() {
applyTheme(isDarkTheme.value ? 'light' : 'dark') applyTheme(isDarkTheme.value ? 'light' : 'dark')
} }
function navigateToBrandTarget() { async function navigateToBrandTarget() {
const targetRouteName = isAuthenticated.value ? 'Dashboard' : 'Home' let resolvedUser = currentUser.value
void router.push({ name: targetRouteName })
if (!resolvedUser) {
try {
resolvedUser = await fetchCurrentUser()
currentUser.value = resolvedUser
} catch {
resolvedUser = null
currentUser.value = null
}
}
const targetRouteName = resolvedUser ? 'Dashboard' : 'Home'
await router.push({ name: targetRouteName })
} }
async function refreshAuthState(options: { force?: boolean } = {}) { async function refreshAuthState(options: { force?: boolean } = {}) {
@@ -288,7 +300,7 @@ watch(
<v-list density="compact" class="account-menu-list"> <v-list density="compact" class="account-menu-list">
<v-list-item <v-list-item
prepend-icon="mdi-view-dashboard-outline" prepend-icon="mdi-view-dashboard-outline"
title="Zum Dash" title="Zum Dashboard"
:to="{ name: 'Dashboard' }" :to="{ name: 'Dashboard' }"
/> />
<v-divider /> <v-divider />
+5 -3
View File
@@ -11,7 +11,7 @@ function navigateBack() {
return return
} }
router.push('/welcome') router.push({ name: 'Dashboard' })
} }
</script> </script>
@@ -29,11 +29,13 @@ function navigateBack() {
<h1>Seite nicht gefunden</h1> <h1>Seite nicht gefunden</h1>
<p class="not-found-text"> <p class="not-found-text">
Der Link ist ungültig oder die Seite wurde verschoben. Du kannst direkt zur Der Link ist ungültig oder die Seite wurde verschoben. Du kannst direkt zur
Startseite zurück oder die vorherige Ansicht öffnen. Dashboard-Seite zurück oder die vorherige Ansicht öffnen.
</p> </p>
<div class="not-found-actions hoard-action-row"> <div class="not-found-actions hoard-action-row">
<v-btn color="primary" prepend-icon="mdi-home" to="/welcome">Zur Startseite</v-btn> <v-btn color="primary" prepend-icon="mdi-view-dashboard-outline" :to="{ name: 'Dashboard' }">
Zum Dashboard
</v-btn>
<v-btn variant="outlined" prepend-icon="mdi-arrow-left" @click="navigateBack">Zurück</v-btn> <v-btn variant="outlined" prepend-icon="mdi-arrow-left" @click="navigateBack">Zurück</v-btn>
</div> </div>
</div> </div>
+5
View File
@@ -110,6 +110,8 @@ Ich baue alleine neben meiner Ausbildung eine einfache self-hosted Web-App für
- Fehler werden jetzt global über einen Banner-Stack am unteren Seitenrand angezeigt (routeübergreifend, stapelbar, manuell schließbar). - Fehler werden jetzt global über einen Banner-Stack am unteren Seitenrand angezeigt (routeübergreifend, stapelbar, manuell schließbar).
- Der globale Banner-Stack im Layout nutzt einen kontrollierten `z-index` und opake Hintergründe, damit Fehlermeldungen im Vordergrund bleiben und kaum durchscheinende Inhalte zeigen. - Der globale Banner-Stack im Layout nutzt einen kontrollierten `z-index` und opake Hintergründe, damit Fehlermeldungen im Vordergrund bleiben und kaum durchscheinende Inhalte zeigen.
- Klick auf Logo/Branding in der Topbar führt abhängig vom Auth-Status: angemeldet auf `Dashboard`, unangemeldet auf `Welcome`. - Klick auf Logo/Branding in der Topbar führt abhängig vom Auth-Status: angemeldet auf `Dashboard`, unangemeldet auf `Welcome`.
- 404-Seite verweist primär auf `Dashboard` (Button/Text), nicht mehr auf `Startseite`.
- Brand-Klick ist gegen Auth-Timing abgesichert: bei vorhandener Session führt Logo/Titel auch bei noch nicht synchronisiertem Layout-Status zuverlässig auf `Dashboard`.
## Änderungen durch Codex ## Änderungen durch Codex
- Grundlegender UI-Neuaufbau der App-Shell (`GUI/src/Layout.vue`) inklusive Navigation, Footer und Seitenkontext. - Grundlegender UI-Neuaufbau der App-Shell (`GUI/src/Layout.vue`) inklusive Navigation, Footer und Seitenkontext.
@@ -164,3 +166,6 @@ Ich baue alleine neben meiner Ausbildung eine einfache self-hosted Web-App für
- `GUI/src/routes/authentication/Login.vue` von lokalem Inline-Fehler-Alert auf globale Banner-Meldungen umgestellt. - `GUI/src/routes/authentication/Login.vue` von lokalem Inline-Fehler-Alert auf globale Banner-Meldungen umgestellt.
- `GUI/src/Layout.vue` Banner-Polish: Banner-Hintergründe je Typ explizit opak getönt, Overlay-/Underlay-Transparenz deaktiviert und `z-index` auf `2100` zurückgesetzt. - `GUI/src/Layout.vue` Banner-Polish: Banner-Hintergründe je Typ explizit opak getönt, Overlay-/Underlay-Transparenz deaktiviert und `z-index` auf `2100` zurückgesetzt.
- `GUI/src/Layout.vue` Brand-Navigation ergänzt: Logo/Titel-Button nutzt jetzt `navigateToBrandTarget()` und leitet eingeloggte Nutzer auf `Dashboard`, sonst auf `Home` (`/welcome`). - `GUI/src/Layout.vue` Brand-Navigation ergänzt: Logo/Titel-Button nutzt jetzt `navigateToBrandTarget()` und leitet eingeloggte Nutzer auf `Dashboard`, sonst auf `Home` (`/welcome`).
- `GUI/src/routes/404NotFound.vue` angepasst: primärer CTA zeigt jetzt `Zum Dashboard` (Route `Dashboard`), Text aktualisiert und `navigateBack()` fällt ohne History ebenfalls auf `Dashboard` zurück.
- `GUI/src/Layout.vue` Brand-Navigation nachgeschärft: `navigateToBrandTarget()` löst bei Klick zuerst die Session via `fetchCurrentUser()` auf (falls lokal noch `null`) und verhindert dadurch Fehlnavigation auf `Welcome`; Mobile-Account-Menütext auf `Zum Dashboard` vereinheitlicht.
- Neuer globaler Skill `codexinfo-komprimieren` unter `C:/Users/famil/.codex/skills/codexinfo-komprimieren` erstellt; er liest `codexInfo.md`, verdichtet `Änderungen durch Codex` auf drei Kernzeilen und enthält ein Hilfsskript zum robusten Abschnitts-Update.