From 05bf5318e8deec4f6e68dd61e1acf4e9618a416e Mon Sep 17 00:00:00 2001 From: KingKDot Date: Thu, 12 Mar 2026 12:08:02 -0500 Subject: [PATCH] red version for not matching --- Overlord-Server/public/assets/build.js | 29 ++++++++++++++++++++++++-- Overlord-Server/public/assets/main.css | 8 +++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/Overlord-Server/public/assets/build.js b/Overlord-Server/public/assets/build.js index 9399461..70d1759 100644 --- a/Overlord-Server/public/assets/build.js +++ b/Overlord-Server/public/assets/build.js @@ -16,6 +16,23 @@ const pluginsLink = document.getElementById("plugins-link"); const rawServerListCheckbox = document.getElementById("raw-server-list"); const serverUrlInput = document.getElementById("server-url"); +let currentServerVersion = null; + +async function loadServerVersion() { + try { + const res = await fetch("/api/version", { credentials: "include" }); + if (!res.ok) { + currentServerVersion = null; + return; + } + const payload = await res.json(); + const version = typeof payload?.version === "string" ? payload.version.trim() : ""; + currentServerVersion = version || null; + } catch { + currentServerVersion = null; + } +} + function getDefaultServerUrlPlaceholder(isRawList) { const isHttps = window.location.protocol === "https:"; const host = window.location.host; @@ -126,7 +143,8 @@ async function init() { ' Build requires admin/operator role'; } - loadSavedBuilds(); + await loadServerVersion(); + await loadSavedBuilds(); } catch (err) { console.error("Failed to fetch user info:", err); window.location.href = "/login.html"; @@ -547,6 +565,11 @@ function formatStubVersion(version) { return "unknown (legacy build)"; } +function isVersionMismatch(versionValue) { + if (!currentServerVersion) return false; + return versionValue !== currentServerVersion; +} + function saveBuildToStorage(buildId, buildData) { try { const builds = JSON.parse(localStorage.getItem("overlord_builds") || "[]"); @@ -747,7 +770,9 @@ function showBuildFilesForContainer(build, containerId, timerId) { const platformText = document.createElement("span"); platformText.textContent = `${file.platform} | `; const versionText = document.createElement("span"); - versionText.className = "server-version-number"; + versionText.className = isVersionMismatch(versionValue) + ? "server-version-number-mismatch" + : "server-version-number"; versionText.textContent = versionValue === "unknown (legacy build)" ? versionValue : `v${versionValue}`; filePlatform.appendChild(platformText); diff --git a/Overlord-Server/public/assets/main.css b/Overlord-Server/public/assets/main.css index d4bdc01..b66cc47 100644 --- a/Overlord-Server/public/assets/main.css +++ b/Overlord-Server/public/assets/main.css @@ -1588,6 +1588,14 @@ mark.search-current { font-weight: 600; } +.server-version-number-mismatch { + color: #f87171; + text-shadow: + 0 0 8px rgba(248, 113, 113, 0.65), + 0 0 16px rgba(239, 68, 68, 0.45); + font-weight: 600; +} + #filter-status, #filter-os, #sort {