Holding the singleton flock at startup proves no other processor is alive to heartbeat or complete anything, so every task still marked running is a corpse from a killed predecessor. Recover them all before the first dispatch (recoverOrphans now takes an 'all' mode) instead of waiting out the 60s heartbeat-staleness window — which used to leave a dead task showing 'running' alongside the genuinely-running next task for a minute whenever the service was restarted mid-task (e.g. by the deploy chain during initial setup). The idle-loop pass keeps the stale-only gate. refactor(dashboard): slim the storage card back to chart + percentage The disk card was only ever meant to be the donut and the % figure; drop the Apps/Docker/Other/Free legend rows and signal the deeper view with a corner expand glyph instead (the System page's chart-expand icon) — the card already opens /admin/system/storage on click. Signed-off-by: librelad <librelad@digitalangels.vip>
55 lines
2.3 KiB
HTML
Executable File
55 lines
2.3 KiB
HTML
Executable File
|
|
<!-- Topbar Component -->
|
|
<div id="topbar-container"></div>
|
|
|
|
<!-- Main content -->
|
|
<div class="main dashboard-main">
|
|
<div class="dashboard-stats">
|
|
<div class="stat-card">
|
|
<div class="stat-number" id="installed-count">0</div>
|
|
<div class="stat-label">Installed Apps</div>
|
|
</div>
|
|
<div class="stat-card disk-stat-card" id="disk-stat-card" role="button" tabindex="0" title="View storage breakdown">
|
|
<span class="disk-expand" aria-hidden="true">
|
|
<svg viewBox="0 0 24 24" width="14" height="14"><path d="M3 9V3h6M21 9V3h-6M3 15v6h6M21 15v6h-6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
|
</span>
|
|
<div class="disk-donut-wrap">
|
|
<div class="disk-donut" id="disk-donut"></div>
|
|
<div class="disk-percentage" id="disk-percent">0%</div>
|
|
</div>
|
|
<div class="chart-label">
|
|
<div class="chart-text">Disk Used</div>
|
|
</div>
|
|
</div>
|
|
<div class="stat-card system-info-card">
|
|
<div class="system-details">
|
|
<div class="system-item">
|
|
<span class="system-label">OS:</span>
|
|
<span class="system-value" id="system-info">Loading...</span>
|
|
</div>
|
|
<div class="system-item">
|
|
<span class="system-label">Uptime:</span>
|
|
<span class="system-value" id="uptime-info">Loading...</span>
|
|
</div>
|
|
<div class="system-item">
|
|
<span class="system-label">Memory:</span>
|
|
<span class="system-value" id="memory-info">Loading...</span>
|
|
</div>
|
|
</div>
|
|
<button class="system-refresh-btn" id="system-refresh-btn" aria-label="Refresh system info">
|
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
<path d="M23 4v6h-6"></path>
|
|
<path d="M1 20v-6h6"></path>
|
|
<path d="M3.51 9a9 9 0 0 1 14.85-3.36M20.49 15a9 9 0 0 1-14.85 3.36"></path>
|
|
</svg>
|
|
<div class="system-refresh-tooltip" id="update-countdown"></div>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Installed Apps Icons -->
|
|
<div id="frontpage-apps-section" class="frontpage-apps-section" style="display:none;">
|
|
<div id="frontpage-apps-container" class="frontpage-apps-grid"></div>
|
|
</div>
|
|
</div>
|