ui: remove top header, move CPU/RAM/disk + clock into the footer
Header bar dropped from all pages; brand, system stats (#sys-stats) and clock (#clock) now live in the 22px footer next to the version. .layout fills the full height minus the footer. ensureFooter runs before startClock/refreshStats so the moved elements exist when populated. VERSION 0.0.136. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,13 +7,6 @@
|
|||||||
<link rel="stylesheet" href="/static/style.css">
|
<link rel="stylesheet" href="/static/style.css">
|
||||||
</head>
|
</head>
|
||||||
<body data-page="archive">
|
<body data-page="archive">
|
||||||
<header>
|
|
||||||
<div class="brand">CoRE<span>.Vision</span></div>
|
|
||||||
<div class="spacer"></div>
|
|
||||||
<div class="stats" id="sys-stats"></div>
|
|
||||||
<div class="clock" id="clock"></div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="layout">
|
<div class="layout">
|
||||||
<aside>
|
<aside>
|
||||||
<a class="nav-item" href="/" data-nav="live"><span class="ico">▦</span>Live view</a>
|
<a class="nav-item" href="/" data-nav="live"><span class="ico">▦</span>Live view</a>
|
||||||
|
|||||||
@@ -7,13 +7,6 @@
|
|||||||
<link rel="stylesheet" href="/static/style.css">
|
<link rel="stylesheet" href="/static/style.css">
|
||||||
</head>
|
</head>
|
||||||
<body data-page="cams">
|
<body data-page="cams">
|
||||||
<header>
|
|
||||||
<div class="brand">CoRE<span>.Vision</span></div>
|
|
||||||
<div class="spacer"></div>
|
|
||||||
<div class="stats" id="sys-stats"></div>
|
|
||||||
<div class="clock" id="clock"></div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="layout">
|
<div class="layout">
|
||||||
<aside>
|
<aside>
|
||||||
<a class="nav-item" href="/" data-nav="live"><span class="ico">▦</span>Live view</a>
|
<a class="nav-item" href="/" data-nav="live"><span class="ico">▦</span>Live view</a>
|
||||||
|
|||||||
@@ -7,13 +7,6 @@
|
|||||||
<link rel="stylesheet" href="/static/style.css">
|
<link rel="stylesheet" href="/static/style.css">
|
||||||
</head>
|
</head>
|
||||||
<body data-page="live">
|
<body data-page="live">
|
||||||
<header>
|
|
||||||
<div class="brand">CoRE<span>.Vision</span></div>
|
|
||||||
<div class="spacer"></div>
|
|
||||||
<div class="stats" id="sys-stats"></div>
|
|
||||||
<div class="clock" id="clock"></div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="layout">
|
<div class="layout">
|
||||||
<aside>
|
<aside>
|
||||||
<a class="nav-item active" href="/" data-nav="live"><span class="ico">▦</span>Live view</a>
|
<a class="nav-item active" href="/" data-nav="live"><span class="ico">▦</span>Live view</a>
|
||||||
|
|||||||
@@ -7,13 +7,6 @@
|
|||||||
<link rel="stylesheet" href="/static/style.css">
|
<link rel="stylesheet" href="/static/style.css">
|
||||||
</head>
|
</head>
|
||||||
<body data-page="layout">
|
<body data-page="layout">
|
||||||
<header>
|
|
||||||
<div class="brand">CoRE<span>.Vision</span></div>
|
|
||||||
<div class="spacer"></div>
|
|
||||||
<div class="stats" id="sys-stats"></div>
|
|
||||||
<div class="clock" id="clock"></div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="layout">
|
<div class="layout">
|
||||||
<aside>
|
<aside>
|
||||||
<div class="navline">
|
<div class="navline">
|
||||||
|
|||||||
@@ -7,13 +7,6 @@
|
|||||||
<link rel="stylesheet" href="/static/style.css">
|
<link rel="stylesheet" href="/static/style.css">
|
||||||
</head>
|
</head>
|
||||||
<body data-page="settings">
|
<body data-page="settings">
|
||||||
<header>
|
|
||||||
<div class="brand">CoRE<span>.Vision</span></div>
|
|
||||||
<div class="spacer"></div>
|
|
||||||
<div class="stats" id="sys-stats"></div>
|
|
||||||
<div class="clock" id="clock"></div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div class="layout">
|
<div class="layout">
|
||||||
<aside>
|
<aside>
|
||||||
<a class="nav-item" href="/" data-nav="live"><span class="ico">▦</span>Live view</a>
|
<a class="nav-item" href="/" data-nav="live"><span class="ico">▦</span>Live view</a>
|
||||||
|
|||||||
@@ -146,6 +146,8 @@ function ensureFooter() {
|
|||||||
f.className = "app-footer";
|
f.className = "app-footer";
|
||||||
f.innerHTML = `<span class="brand">CoRE<span>.Vision</span></span>` +
|
f.innerHTML = `<span class="brand">CoRE<span>.Vision</span></span>` +
|
||||||
`<span class="spacer"></span>` +
|
`<span class="spacer"></span>` +
|
||||||
|
`<span class="stats" id="sys-stats"></span>` +
|
||||||
|
`<span class="clock" id="clock"></span>` +
|
||||||
`<span id="footer-version"></span>`;
|
`<span id="footer-version"></span>`;
|
||||||
document.body.appendChild(f);
|
document.body.appendChild(f);
|
||||||
}
|
}
|
||||||
@@ -2046,10 +2048,10 @@ function initTabs() {
|
|||||||
|
|
||||||
// ── загрузка страницы ───────────────────────────────────────────
|
// ── загрузка страницы ───────────────────────────────────────────
|
||||||
document.addEventListener("DOMContentLoaded", async () => {
|
document.addEventListener("DOMContentLoaded", async () => {
|
||||||
|
ensureVersionEl();
|
||||||
|
ensureFooter(); // создаёт футер с #sys-stats/#clock до их заполнения
|
||||||
startClock();
|
startClock();
|
||||||
bindLogout();
|
bindLogout();
|
||||||
ensureVersionEl();
|
|
||||||
ensureFooter();
|
|
||||||
refreshStats(); setInterval(refreshStats, 5000);
|
refreshStats(); setInterval(refreshStats, 5000);
|
||||||
applyGridMenuLimit();
|
applyGridMenuLimit();
|
||||||
const page = document.body.dataset.page;
|
const page = document.body.dataset.page;
|
||||||
|
|||||||
@@ -47,16 +47,18 @@ nav a.active { background: var(--accent); color: #fff; }
|
|||||||
.stats b { color: var(--text); font-weight: 600; }
|
.stats b { color: var(--text); font-weight: 600; }
|
||||||
.clock { font-variant-numeric: tabular-nums; color: var(--text); }
|
.clock { font-variant-numeric: tabular-nums; color: var(--text); }
|
||||||
|
|
||||||
/* ── Раскладка ── */
|
/* ── Раскладка (хедер убран — контент во всю высоту минус футер) ── */
|
||||||
.layout { display: flex; height: calc(100% - var(--header-h) - var(--footer-h)); }
|
.layout { display: flex; height: calc(100% - var(--footer-h)); }
|
||||||
|
|
||||||
/* ── Футер ── */
|
/* ── Футер (бренд + CPU/RAM/диск + часы + версия) ── */
|
||||||
footer.app-footer {
|
footer.app-footer {
|
||||||
height: var(--footer-h); display: flex; align-items: center; gap: 14px;
|
height: var(--footer-h); display: flex; align-items: center; gap: 14px;
|
||||||
padding: 0 14px; background: var(--panel); border-top: 1px solid var(--border);
|
padding: 0 14px; background: var(--panel); border-top: 1px solid var(--border);
|
||||||
font-size: 11px; color: var(--text-dim);
|
font-size: 11px; color: var(--text-dim);
|
||||||
}
|
}
|
||||||
footer.app-footer .brand { font-size: 12px; }
|
footer.app-footer .brand { font-size: 12px; }
|
||||||
|
footer.app-footer .stats { display: flex; gap: 14px; font-size: 11px; }
|
||||||
|
footer.app-footer .clock { font-size: 11px; color: var(--text); }
|
||||||
footer.app-footer #footer-version { font-variant-numeric: tabular-nums; }
|
footer.app-footer #footer-version { font-variant-numeric: tabular-nums; }
|
||||||
aside {
|
aside {
|
||||||
width: var(--sidebar-w); background: var(--panel); border-right: 1px solid var(--border);
|
width: var(--sidebar-w); background: var(--panel); border-right: 1px solid var(--border);
|
||||||
|
|||||||
Reference in New Issue
Block a user