From 172703c33b3463635ac3d3249dbb65f05d045023 Mon Sep 17 00:00:00 2001 From: KingKDot Date: Tue, 14 Jul 2026 00:25:36 -0500 Subject: [PATCH] improve file browser and metrics UI. --- Overlord-Server/public/assets/filebrowser.js | 15 ++- Overlord-Server/public/assets/metrics.js | 16 ++- Overlord-Server/public/filebrowser.html | 130 ++++++++----------- Overlord-Server/public/metrics.html | 103 ++++++++------- 4 files changed, 130 insertions(+), 134 deletions(-) diff --git a/Overlord-Server/public/assets/filebrowser.js b/Overlord-Server/public/assets/filebrowser.js index 88e9d0b..d2cb28d 100644 --- a/Overlord-Server/public/assets/filebrowser.js +++ b/Overlord-Server/public/assets/filebrowser.js @@ -85,7 +85,7 @@ const editorCancelBtn = document.getElementById("editor-cancel-btn"); const editorCloseBtn = document.getElementById("editor-close-btn"); if (clientIdHeader) { - clientIdHeader.textContent = `${clientId} - File Browser`; + clientIdHeader.innerHTML = `${escapeHtml(clientId)}`; } let sortField = localStorage.getItem("filebrowser.sortField") || "name"; @@ -141,10 +141,13 @@ function updateStatus(state, text) { }; statusEl.innerHTML = `${icons[state] || icons.disconnected} ${text}`; - statusEl.className = - state === "connected" - ? "inline-flex items-center gap-2 px-3 py-2 rounded-full bg-green-900/40 text-green-100 border border-green-700/60" - : "inline-flex items-center gap-2 px-3 py-2 rounded-full bg-slate-800 text-slate-300"; + const stateClasses = { + connected: "bg-emerald-500/10 text-emerald-300 border-emerald-500/30", + error: "bg-red-500/10 text-red-300 border-red-500/30", + disconnected: "bg-slate-800 text-slate-300 border-slate-700", + connecting: "bg-sky-500/10 text-sky-300 border-sky-500/30", + }; + statusEl.className = `inline-flex self-start sm:self-auto items-center gap-2 px-3 py-1.5 rounded-full border text-xs font-medium ${stateClasses[state] || stateClasses.disconnected}`; } function enableControls(enabled) { @@ -1401,7 +1404,7 @@ function createFileRow(entry) { row.innerHTML = ` -
+
${icon} ${escapeHtml(entry.name)} ${pinBtn} diff --git a/Overlord-Server/public/assets/metrics.js b/Overlord-Server/public/assets/metrics.js index 2a14dce..b3c731f 100644 --- a/Overlord-Server/public/assets/metrics.js +++ b/Overlord-Server/public/assets/metrics.js @@ -760,7 +760,7 @@ function updateMetrics(data, debug) { .map((route) => { const errorClass = route.errorsLastMinute > 0 ? "text-red-300" : "text-slate-400"; return ` -
+
${escapeHtml(route.route)}
@@ -790,7 +790,7 @@ function updateMetrics(data, debug) { if (tasks.length > 0) { internalTasksList.innerHTML = tasks .map((task) => ` -
+
${escapeHtml(task.task)}
@@ -828,7 +828,7 @@ function updateMetrics(data, debug) { ? value ? "yes" : "no" : Number(value || 0).toLocaleString(); return ` -
+
${escapeHtml(key)}
@@ -854,7 +854,7 @@ function updateMetrics(data, debug) { commandTypesList.innerHTML = topCommands .map( ([type, count]) => ` -
+
${escapeHtml(type)}
${count.toLocaleString()}
@@ -1831,10 +1831,16 @@ async function fetchMetrics() { updateCharts(data.history, data.snapshot); document.getElementById("status-text").textContent = "Live"; + const status = document.getElementById("metrics-status"); + status?.classList.remove("bg-red-500/10", "text-red-300", "border-red-500/30"); + status?.classList.add("bg-emerald-500/10", "text-emerald-300", "border-emerald-500/30"); } catch (err) { if (!metricsPageActive) return; console.error("Error fetching metrics:", err); - document.getElementById("status-text").textContent = "Error"; + document.getElementById("status-text").textContent = "Unavailable"; + const status = document.getElementById("metrics-status"); + status?.classList.remove("bg-emerald-500/10", "text-emerald-300", "border-emerald-500/30"); + status?.classList.add("bg-red-500/10", "text-red-300", "border-red-500/30"); } } diff --git a/Overlord-Server/public/filebrowser.html b/Overlord-Server/public/filebrowser.html index e6624bc..7da7d5c 100644 --- a/Overlord-Server/public/filebrowser.html +++ b/Overlord-Server/public/filebrowser.html @@ -9,7 +9,7 @@ - + @@ -18,30 +18,28 @@