diff --git a/VERSION b/VERSION index 297b2ec..3954434 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.134 +0.0.135 diff --git a/frontend/static/app.js b/frontend/static/app.js index c4b2ca3..349671b 100644 --- a/frontend/static/app.js +++ b/frontend/static/app.js @@ -139,6 +139,16 @@ function ensureVersionEl() { aside.appendChild(d); } } +function ensureFooter() { + // футер 22px снизу — только на страницах с основной раскладкой (не на login) + if (document.querySelector("footer.app-footer") || !document.querySelector(".layout")) return; + const f = document.createElement("footer"); + f.className = "app-footer"; + f.innerHTML = `CoRE.Vision` + + `` + + ``; + document.body.appendChild(f); +} async function refreshStats() { const el = document.getElementById("sys-stats"); try { @@ -148,6 +158,8 @@ async function refreshStats() { `  Диск ${s.disk.used_gb}/${s.disk.total_gb} GB`; const v = document.getElementById("app-version"); if (v && s.version) v.textContent = "v" + s.version; + const fv = document.getElementById("footer-version"); + if (fv && s.version) fv.textContent = "v" + s.version; } catch (e) { /* нет связи / 401 — молчим */ } } // ограничение подменю раскладок (режим 16+) — на любой странице с .subnav @@ -2037,6 +2049,7 @@ document.addEventListener("DOMContentLoaded", async () => { startClock(); bindLogout(); ensureVersionEl(); + ensureFooter(); refreshStats(); setInterval(refreshStats, 5000); applyGridMenuLimit(); const page = document.body.dataset.page; diff --git a/frontend/static/style.css b/frontend/static/style.css index 26a8d43..fdeae51 100644 --- a/frontend/static/style.css +++ b/frontend/static/style.css @@ -14,6 +14,7 @@ --warn: #f59e0b; --err: #ef4444; --header-h: 48px; + --footer-h: 22px; --sidebar-w: 240px; } @@ -47,7 +48,16 @@ nav a.active { background: var(--accent); color: #fff; } .clock { font-variant-numeric: tabular-nums; color: var(--text); } /* ── Раскладка ── */ -.layout { display: flex; height: calc(100% - var(--header-h)); } +.layout { display: flex; height: calc(100% - var(--header-h) - var(--footer-h)); } + +/* ── Футер ── */ +footer.app-footer { + height: var(--footer-h); display: flex; align-items: center; gap: 14px; + padding: 0 14px; background: var(--panel); border-top: 1px solid var(--border); + font-size: 11px; color: var(--text-dim); +} +footer.app-footer .brand { font-size: 12px; } +footer.app-footer #footer-version { font-variant-numeric: tabular-nums; } aside { width: var(--sidebar-w); background: var(--panel); border-right: 1px solid var(--border); display: flex; flex-direction: column; overflow: hidden;