diff --git a/containers/libreportal/frontend/js/components/admin/admin-overview.js b/containers/libreportal/frontend/js/components/admin/admin-overview.js index f7e5592..7ceb40f 100644 --- a/containers/libreportal/frontend/js/components/admin/admin-overview.js +++ b/containers/libreportal/frontend/js/components/admin/admin-overview.js @@ -139,6 +139,20 @@ class AdminOverview { return `
${this.escape(label)}${this.escape(value)}
`; } + // Small inline icon for a card action button. Inherits the button's text + // colour (no per-button colour) — the icon + the card's status dot do the + // distinguishing, so the footer stays calm. + icon(name) { + const paths = { + update: '', + verify: '', + backup: '', + ssh: '', + system: '', + }; + return ``; + } + render() { const root = this.root(); if (!root) return; @@ -157,8 +171,8 @@ class AdminOverview { // Update now takes priority when one's available; otherwise offer Verify now. const updActions = (updAvail && upd.can_update) - ? `` - : ``; + ? `` + : ``; const updCard = this.card( 'Updates', @@ -180,7 +194,7 @@ class AdminOverview { this.line('Apps protected', `${protectedApps} / ${apps.length}`) + this.line('Locations', String(locs.length)) + this.line('Stored', this.bytes(totalSize)), - `` + `` ); // SSH & Security @@ -195,7 +209,7 @@ class AdminOverview { this.line('Password login', pwOn ? 'On' : 'Key-only') + this.line('Authorized keys', String(keyCount)) + this.line('Login user', s.user || '—'), - `` + `` ); // System health @@ -212,7 +226,7 @@ class AdminOverview { ? `${this.gb(mem.used)} / ${this.gb(mem.total)} (${Math.round(mem.percent) || 0}%)` : (mem.text || '—')) + this.line('Uptime', this.shortUptime(info.uptime)), - `` + `` ); root.innerHTML = `