FEAT: Naechster Refresh neben der Uhr in der Admin-UI

Topbar zeigt jetzt 'Refresh HH:MM' wenn ein naechster Wake geplant ist.
Holt next_wake von /api/power (mit credentials:include).
This commit is contained in:
ki
2026-08-31 03:24:20 +04:00
parent ee5280aa8c
commit fb1e910f13
+10
View File
@@ -189,6 +189,7 @@
letter-spacing: 0.04em; letter-spacing: 0.04em;
} }
.topbar-clock .small { color: var(--fg-muted); font-size: 0.85em; margin-left: 6px; } .topbar-clock .small { color: var(--fg-muted); font-size: 0.85em; margin-left: 6px; }
.topbar-clock #topbarNext { color: var(--accent-bright); font-size: 0.85em; margin-left: 12px; }
.content { .content {
flex: 1; padding: 28px; flex: 1; padding: 28px;
@@ -970,6 +971,7 @@
<div class="topbar-clock"> <div class="topbar-clock">
<span id="topbarTime">--:--:--</span> <span id="topbarTime">--:--:--</span>
<span class="small" id="topbarDate">—</span> <span class="small" id="topbarDate">—</span>
<span class="small" id="topbarNext">—</span>
</div> </div>
<button class="refresh" id="refreshBtn" onclick="triggerRefresh()"> <button class="refresh" id="refreshBtn" onclick="triggerRefresh()">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
@@ -1317,6 +1319,14 @@
document.getElementById('topbarTime').textContent = `${hh}:${mm}:${ss}`; document.getElementById('topbarTime').textContent = `${hh}:${mm}:${ss}`;
const days = ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']; const days = ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'];
document.getElementById('topbarDate').textContent = `${days[now.getDay()]} ${now.getDate()}.${String(now.getMonth()+1).padStart(2,'0')}`; document.getElementById('topbarDate').textContent = `${days[now.getDay()]} ${now.getDate()}.${String(now.getMonth()+1).padStart(2,'0')}`;
// Naechster geplanter Refresh
fetch("/api/power", {credentials: "include"})
.then(r => r.json())
.then(d => {
const n = d.next_wake;
document.getElementById("topbarNext").textContent = n ? "Refresh " + n : "";
})
.catch(() => {});
} }
setInterval(updateClock, 1000); setInterval(updateClock, 1000);
updateClock(); updateClock();