oberflaeche v4: Uebersicht als Startseite, KI-Box und Homelab mit Monitoring, Homelab-Updates je Geraet mit Alle aktualisieren, Protokoll, Einstellungsseite, neues Tab-Symbol
- Startseite "Alles auf einen Blick": Gesamtlage, je Bereich Messwerte mit Verlauf, wer welche Updates hat (Kurzform, Klick fuehrt in den Bereich), Hinweise, als Naechstes und zuletzt eingespielt - Menue: Uebersicht, KI-Box (Cockpit, Updates, Modelle, Monitoring), Homelab (Cockpit, Updates, Monitoring, Protokoll), Einstellungen; Bereichsfarben Indigo und Violett; alte Adressen /updates und /modelle leiten weiter - Homelab-Updates je Geraet: App-Version laeuft -> neu (mit Grund, wenn sie wartet), Pakete, Rueckweg, Knoepfe; Alle aktualisieren mit Plan in der Rueckfrage und Fortschritt; Cockpit zeigt die Gesundheit der Geraete - Einstellungen als Seite: KI-Box, Homelab (Arcane-Schluessel, Docker echt/Probelauf, Ausfuehrer), Meldungen, Software-Stand - Diagramme: Verlauf mit Fadenkreuz, Legende und Tabellenansicht, Kennzahlen mit Linie; Farben geprueft - Tab-Symbol: favicon.ico/.svg, apple-touch-icon, Manifest-Icons Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
bf1153cb66
commit
1104200a30
+57
-18
@@ -1,42 +1,81 @@
|
||||
import { createRootRoute, createRoute, createRouter, lazyRouteComponent, Navigate } from "@tanstack/react-router"
|
||||
import {
|
||||
createRootRoute, createRoute, createRouter, lazyRouteComponent, Navigate, redirect,
|
||||
} from "@tanstack/react-router"
|
||||
import { Absturz } from "./Absturz"
|
||||
import { Shell } from "./Shell"
|
||||
import { StartSeite } from "@/views/Start"
|
||||
import { UebersichtSeite } from "@/views/Uebersicht"
|
||||
|
||||
const wurzel = createRootRoute({
|
||||
component: Shell,
|
||||
// Alte Lesezeichen (/ideen, /wissen, /cockpit …) führen einfach zum Start.
|
||||
// Alte Lesezeichen (/ideen, /wissen, /cockpit …) führen einfach zur Übersicht.
|
||||
notFoundComponent: () => <Navigate to="/" />,
|
||||
})
|
||||
|
||||
// Der Start ist der Normalfall und kommt im ersten Bündel mit; Updates und Modelle
|
||||
// werden erst beim ersten Besuch nachgeladen (Budget der CI-Ampel: 140 KB gzip).
|
||||
const start = createRoute({ getParentRoute: () => wurzel, path: "/", component: StartSeite })
|
||||
const updates = createRoute({
|
||||
getParentRoute: () => wurzel,
|
||||
path: "/updates",
|
||||
// Die Übersicht ist der Normalfall und kommt im ersten Bündel mit; alle anderen Seiten werden erst beim
|
||||
// ersten Besuch nachgeladen (Budget: 140 KB gzip für den Einstieg).
|
||||
const uebersicht = createRoute({ getParentRoute: () => wurzel, path: "/", component: UebersichtSeite })
|
||||
|
||||
// Bereich KI-Box
|
||||
const box = createRoute({
|
||||
getParentRoute: () => wurzel, path: "/box", component: lazyRouteComponent(() => import("@/views/Start"), "StartSeite"),
|
||||
})
|
||||
const boxUpdates = createRoute({
|
||||
getParentRoute: () => wurzel, path: "/box/updates",
|
||||
component: lazyRouteComponent(() => import("@/views/Updates"), "UpdatesSeite"),
|
||||
})
|
||||
const modelle = createRoute({
|
||||
getParentRoute: () => wurzel,
|
||||
path: "/modelle",
|
||||
const boxModelle = createRoute({
|
||||
getParentRoute: () => wurzel, path: "/box/modelle",
|
||||
component: lazyRouteComponent(() => import("@/views/Modelle"), "ModelleSeite"),
|
||||
})
|
||||
const boxMonitoring = createRoute({
|
||||
getParentRoute: () => wurzel, path: "/box/monitoring",
|
||||
component: lazyRouteComponent(() => import("@/views/Monitoring"), "BoxMonitoringSeite"),
|
||||
})
|
||||
|
||||
// Der Bereich Homelab (Proxmox-PC) — getrennt von der KI-Box, mit eigenem Cockpit und eigenen Updates.
|
||||
// Bereich Homelab
|
||||
const homelab = createRoute({
|
||||
getParentRoute: () => wurzel,
|
||||
path: "/homelab",
|
||||
getParentRoute: () => wurzel, path: "/homelab",
|
||||
component: lazyRouteComponent(() => import("@/views/Homelab"), "HomelabSeite"),
|
||||
})
|
||||
const homelabUpdates = createRoute({
|
||||
getParentRoute: () => wurzel,
|
||||
path: "/homelab/updates",
|
||||
getParentRoute: () => wurzel, path: "/homelab/updates",
|
||||
component: lazyRouteComponent(() => import("@/views/Homelab"), "HomelabUpdatesSeite"),
|
||||
})
|
||||
const homelabMonitoring = createRoute({
|
||||
getParentRoute: () => wurzel, path: "/homelab/monitoring",
|
||||
component: lazyRouteComponent(() => import("@/views/Monitoring"), "HomelabMonitoringSeite"),
|
||||
})
|
||||
const homelabProtokoll = createRoute({
|
||||
getParentRoute: () => wurzel, path: "/homelab/protokoll",
|
||||
component: lazyRouteComponent(() => import("@/views/HomelabProtokoll"), "HomelabProtokollSeite"),
|
||||
})
|
||||
|
||||
const einstellungen = createRoute({
|
||||
getParentRoute: () => wurzel, path: "/einstellungen",
|
||||
component: lazyRouteComponent(() => import("@/views/Einstellungen"), "EinstellungenSeite"),
|
||||
})
|
||||
|
||||
// Frühere Adressen der KI-Box (bis 24.09.2026) leiten weiter — Lesezeichen und Links bleiben gültig.
|
||||
const altUpdates = createRoute({
|
||||
getParentRoute: () => wurzel,
|
||||
path: "/updates",
|
||||
beforeLoad: () => {
|
||||
throw redirect({ to: "/box/updates" })
|
||||
},
|
||||
})
|
||||
const altModelle = createRoute({
|
||||
getParentRoute: () => wurzel,
|
||||
path: "/modelle",
|
||||
beforeLoad: ({ location }) => {
|
||||
throw redirect({ to: "/box/modelle", hash: location.hash || undefined })
|
||||
},
|
||||
})
|
||||
|
||||
export const router = createRouter({
|
||||
routeTree: wurzel.addChildren([start, updates, modelle, homelab, homelabUpdates]),
|
||||
routeTree: wurzel.addChildren([
|
||||
uebersicht, box, boxUpdates, boxModelle, boxMonitoring, homelab, homelabUpdates, homelabMonitoring,
|
||||
homelabProtokoll, einstellungen, altUpdates, altModelle,
|
||||
]),
|
||||
defaultPreload: "intent",
|
||||
defaultErrorComponent: Absturz,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user