diff --git a/routers/maintenance.py b/routers/maintenance.py index 8c0be80..56f7155 100644 --- a/routers/maintenance.py +++ b/routers/maintenance.py @@ -65,7 +65,11 @@ async def stream_logs(websocket: WebSocket, service: str): line = await process.stdout.readline() if not line: break - await websocket.send_text(line.decode("utf-8", errors="replace")) + line_str = line.decode("utf-8", errors="replace") + # Filter spammy polls + if '"GET /running HTTP' in line_str or '"GET /api/' in line_str: + continue + await websocket.send_text(line_str) except WebSocketDisconnect: pass finally: diff --git a/static/js/core/ui.js b/static/js/core/ui.js index c775c62..bb6f6f9 100644 --- a/static/js/core/ui.js +++ b/static/js/core/ui.js @@ -22,7 +22,7 @@ export function toast(msg, err = false) { export function badge(state) { if (state === "running" || state === "ready") return 'geladen'; if (state === "loading" || state === "starting") return 'lädt…'; - return 'bereit'; + return 'bereit'; } // relative Zeit aus Unix-Sekunden (z.B. "2m", "13h") diff --git a/static/js/panels/overview.js b/static/js/panels/overview.js index 12ae1f9..0f4f1fd 100644 --- a/static/js/panels/overview.js +++ b/static/js/panels/overview.js @@ -106,7 +106,7 @@ function renderQuickActions() { function modelRow(m) { const on = RUNNING.has(m.state); - const dot = m.state === "loading" || m.state === "starting" ? "load" : on ? "on" : ""; + const dot = m.state === "loading" || m.state === "starting" ? "load" : (on || m.state === "bereit") ? "on" : ""; const state = on ? (m.state === "loading" ? "lädt…" : "geladen") : "bereit"; let caps = ""; @@ -179,6 +179,6 @@ function renderAll() { function mount() { renderAll(); } function onStatus(s) { S = s; renderModels(); } function onJobs(jobs) { J = jobs || []; renderRecentJobs(); } -function onSystem(sys) { SYS = sys; renderQuickActions(); } +function onSystem(sys) { SYS = sys; } export default { id: "overview", mount, onStatus, onJobs, onSystem };