From 8d8685509873c426a6993f3ec2d43da8f919a022 Mon Sep 17 00:00:00 2001 From: librelad Date: Sun, 31 May 2026 00:39:08 +0100 Subject: [PATCH] fix(webui): category-icon fallback + flatten forms/ + manifest order MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From the feng-shui audit (all adversarially verified): - BUG (high): apps-grid.js category tiles used onerror fallback /core/icons/categories/default.svg, which doesn't exist (the dir has misc.svg as its generic icon, which data-loader.js already uses). Any category missing its named SVG showed a broken-image glyph. Repointed to /core/icons/categories/misc.svg. - TIDY: core/forms was the lone depth-3 nesting — JS at forms/controls/js/ while its CSS sat at forms/css/ and every other core subsystem uses /js/. 'controls/' grouped nothing (just the 2 custom-* widgets), so flattened to core/forms/js/ (+ updated index.html). forms is now symmetric. - CONSISTENCY: components/manifest.dev.json entries carried nav.order but not the top-level 'order' that each feature.json has; added it so the API-down fallback matches the live /api/features/list scan. Signed-off-by: librelad --- .../components/apps/core/js/apps-grid.js | 2 +- .../frontend/components/manifest.dev.json | 18 ++++++++++++------ .../forms/{controls => }/js/custom-number.js | 0 .../forms/{controls => }/js/custom-select.js | 0 containers/libreportal/frontend/index.html | 4 ++-- 5 files changed, 15 insertions(+), 9 deletions(-) rename containers/libreportal/frontend/core/forms/{controls => }/js/custom-number.js (100%) rename containers/libreportal/frontend/core/forms/{controls => }/js/custom-select.js (100%) diff --git a/containers/libreportal/frontend/components/apps/core/js/apps-grid.js b/containers/libreportal/frontend/components/apps/core/js/apps-grid.js index a3683dd..665f2aa 100644 --- a/containers/libreportal/frontend/components/apps/core/js/apps-grid.js +++ b/containers/libreportal/frontend/components/apps/core/js/apps-grid.js @@ -52,7 +52,7 @@ Object.assign(AppsManager.prototype, { } else { let iconPath = icon || `/core/icons/categories/${id}.svg`; if (!iconPath.startsWith('/')) iconPath = '/' + iconPath; - iconHtml = `${name}`; + iconHtml = `${name}`; } div.innerHTML = `${iconHtml} ${name}`; diff --git a/containers/libreportal/frontend/components/manifest.dev.json b/containers/libreportal/frontend/components/manifest.dev.json index 15f4c82..9c9752f 100644 --- a/containers/libreportal/frontend/components/manifest.dev.json +++ b/containers/libreportal/frontend/components/manifest.dev.json @@ -14,7 +14,8 @@ "nav": { "label": "Dashboard", "order": 10 - } + }, + "order": 10 }, { "id": "apps", @@ -30,7 +31,8 @@ "nav": { "label": "App Center", "order": 20 - } + }, + "order": 20 }, { "id": "admin", @@ -44,7 +46,8 @@ "nav": { "label": "Admin", "order": 40 - } + }, + "order": 40 }, { "id": "tasks", @@ -58,7 +61,8 @@ "nav": { "label": "Tasks", "order": 60 - } + }, + "order": 60 }, { "id": "updater", @@ -71,7 +75,8 @@ "nav": { "label": "Updates", "order": 30 - } + }, + "order": 30 }, { "id": "backup", @@ -85,7 +90,8 @@ "nav": { "label": "Backups", "order": 50 - } + }, + "order": 50 } ] } diff --git a/containers/libreportal/frontend/core/forms/controls/js/custom-number.js b/containers/libreportal/frontend/core/forms/js/custom-number.js similarity index 100% rename from containers/libreportal/frontend/core/forms/controls/js/custom-number.js rename to containers/libreportal/frontend/core/forms/js/custom-number.js diff --git a/containers/libreportal/frontend/core/forms/controls/js/custom-select.js b/containers/libreportal/frontend/core/forms/js/custom-select.js similarity index 100% rename from containers/libreportal/frontend/core/forms/controls/js/custom-select.js rename to containers/libreportal/frontend/core/forms/js/custom-select.js diff --git a/containers/libreportal/frontend/index.html b/containers/libreportal/frontend/index.html index 83257bb..b3ae3d9 100755 --- a/containers/libreportal/frontend/index.html +++ b/containers/libreportal/frontend/index.html @@ -67,8 +67,8 @@ })(); - - + +