From 40de46588ebc726ea797f4281b4f6c518fdb6e77 Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Mon, 16 Mar 2026 16:51:15 +0100 Subject: [PATCH] =?UTF-8?q?Admin=20Dashboard=20hinzugef=C3=BCgt:=20Moderne?= =?UTF-8?q?s=20Dashboard=20f=C3=BCr=20Administratoren=20mit=20Statistiken,?= =?UTF-8?q?=20Verwaltungsmodulen=20und=20Schnellzugriffen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/App.tsx | 4 +- frontend/src/layout/AppShell.tsx | 66 +++++++- frontend/src/pages/AdminDashboardPage.tsx | 192 ++++++++++++++++++++++ frontend/src/pages/LoginPage.tsx | 6 + frontend/src/styles/global.css | 156 ++++++++++++++++++ 5 files changed, 417 insertions(+), 7 deletions(-) create mode 100644 frontend/src/pages/AdminDashboardPage.tsx diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index f3679b6..13b66b3 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -2,6 +2,7 @@ import { Navigate, Route, Routes } from "react-router-dom"; import { SessionProvider, useSession } from "./lib/session"; import AppShell from "./layout/AppShell"; import HomePage from "./pages/HomePage"; +import AdminDashboardPage from "./pages/AdminDashboardPage"; import LoginPage from "./pages/LoginPage"; import SampleRegistrationPage from "./pages/SampleRegistrationPage"; import AnamnesisPage from "./pages/AnamnesisPage"; @@ -30,7 +31,8 @@ function ProtectedRoutes() { return ( }> - } /> + : } /> + } /> } /> } /> } /> diff --git a/frontend/src/layout/AppShell.tsx b/frontend/src/layout/AppShell.tsx index 80b64ba..b5b9227 100644 --- a/frontend/src/layout/AppShell.tsx +++ b/frontend/src/layout/AppShell.tsx @@ -3,6 +3,7 @@ import { useSession } from "../lib/session"; const PAGE_TITLES: Record = { "/home": "Startseite", + "/admin/dashboard": "Admin Dashboard", "/samples/new": "Neuanlage einer Probe", "/portal": "MUH-Portal", "/report-template": "Bericht", @@ -62,12 +63,65 @@ export default function AppShell() {