diff --git a/dashboard/index.html b/dashboard/index.html new file mode 100644 index 0000000..478fc80 --- /dev/null +++ b/dashboard/index.html @@ -0,0 +1,12 @@ + + +
+ + +{error ? error.message : "Daten werden geladen …"}
; +} diff --git a/dashboard/src/components/StatusBadge.tsx b/dashboard/src/components/StatusBadge.tsx new file mode 100644 index 0000000..53b644c --- /dev/null +++ b/dashboard/src/components/StatusBadge.tsx @@ -0,0 +1,6 @@ +export function StatusBadge({ status }: { status: string | boolean }) { + const label = typeof status === "boolean" ? (status ? "ONLINE" : "OFFLINE") : status; + const tone = ["RUNNING", "ONLINE", "CONNECTED"].includes(label) ? "good" + : ["STARTING", "STOPPING"].includes(label) ? "pending" : "bad"; + return {label}; +} diff --git a/dashboard/src/main.tsx b/dashboard/src/main.tsx new file mode 100644 index 0000000..cbad7d5 --- /dev/null +++ b/dashboard/src/main.tsx @@ -0,0 +1,17 @@ +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import { createBrowserRouter, RouterProvider } from "react-router-dom"; +import { Layout } from "./components/Layout"; +import { Dashboard } from "./pages/Dashboard"; +import { ServerDetail } from "./pages/ServerDetail"; +import { Servers } from "./pages/Servers"; +import { WrapperDetail } from "./pages/WrapperDetail"; +import { Wrappers } from "./pages/Wrappers"; +import "./styles.css"; + +const router = createBrowserRouter([{ path: "/", element:Aktueller Zustand des Managers
← Server
{items.length} registriert
| ID | Name | Status | Spieler | Kapazität | Port | Query Port | Wrapper |
|---|---|---|---|---|---|---|---|
| {item.id} | {item.name} | {item.players} | {item.maxPlayers} | {item.port} | {item.queryPort} | {item.wrapperId} |
← Wrapper
| Name | Port | Spieler | Status |
|---|---|---|---|
| {server.name} | {server.port} | {server.players} / {server.maxPlayers} |
{items.length} registriert
| ID | Hostname | Status | CPU | RAM frei / gesamt | Heartbeat | Server |
|---|---|---|---|---|---|---|
| {item.id} | {item.hostname} | {item.cpu}% | {item.ramFree} / {item.ram} | {item.lastHeartbeat ? new Date(item.lastHeartbeat).toLocaleString("de-DE") : "–"} | {item.serverCount} |