Final modularization layout (user-chosen): every page is a self-contained folder under components/<id>/ (controllers + CSS + its html fragment), and all shared/framework code folds into core/: core/kernel (feature-registry, lifecycle, services, spa) core/boot (auth, system-loader/orchestrator, setup, loaders) core/lib (data-loader, router, helpers, the task kernel, shared modules) core/ui (topbar, modal, notifications, … + topbar.html) core/css (all shared stylesheets) core/icons Top level is now just: components/, core/, themes/, index.html (+ runtime data/). Every path reference rewritten (index.html, scripts arrays, fetch()/ loadFragment()/loadScript() literals, system-loader + config-manager controller paths, kernel manifest URL, feature.json, backend FEATURES_DIR). The /api/features/list endpoint NAME is unchanged (it now scans components/). Deleted 3 dead files (app-content.html, apps-content.html, html-cache.js). Verified: 0 stale prefixes, 0 double-rewrites, all JS/JSON valid. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Signed-off-by: librelad <librelad@digitalangels.vip>
53 lines
2.1 KiB
HTML
Executable File
53 lines
2.1 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">
|
|
<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="disk-legend" id="disk-legend"></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>
|