From 5b1a36c976629c7a16f13ea29757e1dd07084b93 Mon Sep 17 00:00:00 2001 From: dschlueter Date: Thu, 25 Jun 2026 04:52:09 +0200 Subject: [PATCH] =?UTF-8?q?feat(3a):=20Admin-Struktur=20aufger=C3=A4umt=20?= =?UTF-8?q?+=20Restart=20nach=20=E2=80=9EWartung"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 4 ruhige Top-Tabs: Übersicht · Nutzer · System · Konfiguration. - „Notrufe" wandert unter System; „Metriken" → „Nutzungs-Statistik" unter Nutzer einsortiert. - Status ist jetzt rein lesend (Wartung + DB-Backup raus). - Neuer „Wartung"-Abschnitt unter Konfiguration mit prominentem „Gateway neu starten" + DB-Backup. app.js v=46. Co-Authored-By: Claude Sonnet 4.6 --- app/web/app.js | 55 +++++++++++++++++++++++++--------------------- app/web/index.html | 13 +++++++++-- 2 files changed, 41 insertions(+), 27 deletions(-) diff --git a/app/web/app.js b/app/web/app.js index c1fc61c..530ce7c 100644 --- a/app/web/app.js +++ b/app/web/app.js @@ -872,10 +872,9 @@ $("#admin-close").addEventListener("click", () => $("#admin-panel").classList.ad // Abschnitten bekommen eine Sub-Navigation. const ADMIN_TABS = { overview: [["overview", "Übersicht"]], - users: [["users", "Verwalten"], ["chat", "Gespräche"]], - emergency: [["emergency", "Notrufe"]], - system: [["status", "Status"], ["metrics", "Metriken"], ["log", "Log"]], - config: [["settings", "Einstellungen"], ["words", "Wörterbuch"]], + users: [["users", "Verwalten"], ["chat", "Gespräche"], ["metrics", "Nutzungs-Statistik"]], + system: [["status", "Status"], ["log", "Log"], ["emergency", "Notrufe"]], + config: [["settings", "Einstellungen"], ["words", "Wörterbuch"], ["maintenance", "Wartung"]], }; const SECTION_LOADER = { overview: () => loadOverview(), @@ -886,6 +885,7 @@ const SECTION_LOADER = { metrics: () => loadMetrics(), words: () => loadWoerterbuch(), settings: () => loadSettings(), + maintenance: () => loadMaintenance(), log: () => {}, // Log: Nutzer verbindet manuell }; @@ -1415,16 +1415,6 @@ async function loadStatus() { - -
-

Wartung

-

Startet den Gateway-Dienst neu (z. B. nach Einstellungen, die einen Neustart erfordern).

-
- - -
-
-

Laufzeit-Metriken

@@ -1443,24 +1433,39 @@ async function loadStatus() { ${providerRow("TTS", (cfg.available?.tts_providers || []).join(", "))}
- - -
-

Datenbank-Backup

-

SQLite-Datenbank als Datei herunterladen (Backup / Migration).

- - ⬇ voice-assistant.db herunterladen - -
`; - wireRestart(); // Buttons der LLM-Karte verdrahten (nach dem Rendern) } catch (e) { console.error("loadStatus error:", e); container.innerHTML = '

Fehler beim Laden.

'; } } +// ════════════════════════════════════════ +// TAB: WARTUNG (Konfiguration) +// ════════════════════════════════════════ +async function loadMaintenance() { + const c = $("#maintenance-content"); + c.innerHTML = ` +
+

Gateway neu starten

+

Nötig nach Einstellungen, die einen Neustart erfordern (Hinweis erscheint dort).

+
+ + +
+
+
+

Datenbank-Backup

+

SQLite-Datenbank als Datei herunterladen (Backup / Migration).

+ + ⬇ voice-assistant.db herunterladen + +
+ `; + wireRestart(); +} + // ════════════════════════════════════════ // TAB: METRIKEN // ════════════════════════════════════════ diff --git a/app/web/index.html b/app/web/index.html index c22f0e3..8b1ae76 100644 --- a/app/web/index.html +++ b/app/web/index.html @@ -42,7 +42,6 @@ @@ -180,6 +179,16 @@ + + +