From ab1dc3d2286cdc5ea639ed6a6bcdcbdfa3865e1e Mon Sep 17 00:00:00 2001 From: modimihir07 Date: Sun, 17 May 2026 15:56:30 +0530 Subject: [PATCH] Fix: page script 404 due to relative path, sidebar collapsed alignment, add favicon - Fixed app.js: changed page script path from 'pages/' to '/dashboard/pages/' - Fixed collapsed sidebar: icon alignment, cleaner padding, centered footer - Removed inverted media query logic for responsive sidebar - Added favicon endpoint to suppress 404 - Renamed cost-analytics.js to cost.js to match hash routing --- dashboard/app.js | 4 ++- .../pages/{cost-analytics.js => cost.js} | 0 dashboard/styles.css | 26 +++++++++++-------- server.py | 6 +++++ 4 files changed, 24 insertions(+), 12 deletions(-) rename dashboard/pages/{cost-analytics.js => cost.js} (100%) diff --git a/dashboard/app.js b/dashboard/app.js index bff48f1..457eff2 100644 --- a/dashboard/app.js +++ b/dashboard/app.js @@ -1,9 +1,11 @@ const pageCache = {}; +const PAGE_BASE = '/dashboard/pages/'; + async function loadPage(name) { if (pageCache[name]) return pageCache[name]; try { - await loadScript(`pages/${name}.js`); + await loadScript(`${PAGE_BASE}${name}.js`); pageCache[name] = true; } catch (err) { console.error(`Failed to load page: ${name}`, err); diff --git a/dashboard/pages/cost-analytics.js b/dashboard/pages/cost.js similarity index 100% rename from dashboard/pages/cost-analytics.js rename to dashboard/pages/cost.js diff --git a/dashboard/styles.css b/dashboard/styles.css index 0a5ef81..769234d 100644 --- a/dashboard/styles.css +++ b/dashboard/styles.css @@ -93,8 +93,20 @@ body { .sidebar.collapsed .sidebar-section-label, .sidebar.collapsed .agent-status-text, .sidebar.collapsed .theme-label { display: none; } -.sidebar.collapsed .nav-item { justify-content: center; padding: 12px; } -.sidebar.collapsed .sidebar-header { justify-content: center; } +.sidebar.collapsed .nav-item { + justify-content: center; + padding: 10px 0; + margin: 1px 6px; +} +.sidebar.collapsed .nav-item .nav-icon { + width: auto; + font-size: 18px; +} +.sidebar.collapsed .nav-item.active::before { left: -6px; } +.sidebar.collapsed .sidebar-section { padding: 4px 0; } +.sidebar.collapsed .sidebar-toggle { display: none; } +.sidebar.collapsed .sidebar-header { justify-content: center; padding: 18px 0; } +.sidebar.collapsed .sidebar-footer { justify-content: center; padding: 12px 0; flex-direction: column; gap: 8px; } .sidebar-header { display: flex; @@ -545,19 +557,11 @@ pre { @media (max-width: 900px) { .grid-4 { grid-template-columns: repeat(2, 1fr); } .grid-3 { grid-template-columns: repeat(2, 1fr); } - .sidebar:not(.collapsed) { width: 68px; min-width: 68px; } - .sidebar:not(.collapsed) .logo-text, - .sidebar:not(.collapsed) .nav-label, - .sidebar:not(.collapsed) .sidebar-section-label, - .sidebar:not(.collapsed) .agent-status-text, - .sidebar:not(.collapsed) .theme-label { display: none; } - .sidebar:not(.collapsed) .nav-item { justify-content: center; padding: 12px; } - .sidebar:not(.collapsed) .sidebar-header { justify-content: center; } .topbar-search { display: none; } + .page-content { padding: 16px; } } @media (max-width: 600px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } - .page-content { padding: 16px; } .form-row { grid-template-columns: 1fr; } } diff --git a/server.py b/server.py index 418816c..f9fb5be 100644 --- a/server.py +++ b/server.py @@ -432,6 +432,12 @@ def index(): return HTMLResponse(content=content) return HTMLResponse("

Agentic OS

Dashboard not built yet. Run ./install.sh first.

") +# ─── Favicon ────────────────────────────────────────────────────── + +@app.get("/favicon.ico") +def favicon(): + return HTMLResponse("") + # ─── Main ───────────────────────────────────────────────────────── if __name__ == "__main__":