v6 Phase A: Dashboard & Toolbar
- 'Dein Stack' zeigt echtes Modell (Dateiname) hinter coder/scout/vision. - Top-News-Karte auf der Uebersicht (neben Stack). - Toolbar-Update-Badges: /api/updates (OS via apt-Cache + Modell-Upgrades), klickbar -> Server bzw. News. compute_upgrades aus cookbook wiederverwendet. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -74,6 +74,24 @@ function showAlert(html, warn) {
|
||||
}
|
||||
function hideAlert() { $("#alert").style.display = "none"; }
|
||||
|
||||
// ---- Toolbar: ausstehende Updates anzeigen ----
|
||||
const goView = v => document.querySelector(`.nav-item[data-view="${v}"]`)?.click();
|
||||
function badge(text, cls, view) {
|
||||
const s = document.createElement("span");
|
||||
s.className = "upd-badge" + (cls ? " " + cls : "");
|
||||
s.textContent = text; s.onclick = () => goView(view);
|
||||
return s;
|
||||
}
|
||||
async function pollUpdates() {
|
||||
try {
|
||||
const u = await api("/api/updates");
|
||||
const el = $("#update-badges"); if (!el) return;
|
||||
el.innerHTML = "";
|
||||
if (u.os > 0) el.appendChild(badge(`${u.os} OS-Updates`, "warn", "server"));
|
||||
if (u.models > 0) el.appendChild(badge(`${u.models} Modell-Upgrade${u.models > 1 ? "s" : ""}`, "", "news"));
|
||||
} catch { /* still */ }
|
||||
}
|
||||
|
||||
// ---- Polling ----
|
||||
async function pollStatus() {
|
||||
try { applyStatus(await api("/api/status")); }
|
||||
@@ -141,3 +159,5 @@ connectSystemStream();
|
||||
setInterval(tickClock, 1000);
|
||||
setInterval(pollStatus, 3000);
|
||||
setInterval(pollJobs, 1500);
|
||||
pollUpdates();
|
||||
setInterval(pollUpdates, 60000);
|
||||
|
||||
Reference in New Issue
Block a user