Merge claude/1

This commit is contained in:
librelad 2026-05-31 00:41:16 +01:00
commit d84a4bf709
10 changed files with 11 additions and 11 deletions

View File

@ -12,9 +12,9 @@ const FEATURES_DIR = path.join(__dirname, '..', '..', 'frontend', 'components');
Walks frontend/components/<id>/ and returns one entry per directory that Walks frontend/components/<id>/ and returns one entry per directory that
contains a feature.json the WebUI's page manifest, discovered from the contains a feature.json the WebUI's page manifest, discovered from the
folders themselves (exactly how /api/themes/list discovers themes). Drop a folders themselves (exactly how /api/themes/list discovers themes). Drop a
features/<id>/ folder in and its page appears; delete it and the page is components/<id>/ folder in and its page appears; delete it and the page is
gone no central edit. The navigation kernel fetches this and falls back to gone no central edit. The navigation kernel fetches this and falls back to
the checked-in features/manifest.dev.json if the API is unavailable. the checked-in components/manifest.dev.json if the API is unavailable.
Each feature.json declares: id, routes[], optional module (self-registering Each feature.json declares: id, routes[], optional module (self-registering
index.js), optional handler (legacy fallback method), navId, nav{}, and order index.js), optional handler (legacy fallback method), navId, nav{}, and order

View File

@ -1,4 +1,4 @@
// features/admin/index.js — the whole Admin area as one feature module. // components/admin/index.js — the whole Admin area as one feature module.
// //
// Admin owns every /admin* sub-route: /admin & /admin/dashboard (overview // Admin owns every /admin* sub-route: /admin & /admin/dashboard (overview
// board), /admin/config/<cat> (config-form pages), /admin/system[/<sub>] // board), /admin/config/<cat> (config-form pages), /admin/system[/<sub>]

View File

@ -1,4 +1,4 @@
// features/backup/index.js — Backup Center as a self-contained feature module. // components/backup/index.js — Backup Center as a self-contained feature module.
// //
// FIRST page migrated to the feature-module contract (docs/frontend-modularization.md). // FIRST page migrated to the feature-module contract (docs/frontend-modularization.md).
// The kernel drives mount()/unmount() for the /backup route instead of // The kernel drives mount()/unmount() for the /backup route instead of

View File

@ -1,4 +1,4 @@
// features/dashboard/index.js — the landing Dashboard as a feature module. // components/dashboard/index.js — the landing Dashboard as a feature module.
// //
// dashboard.js exposes bare global functions (loadInstalledApps, // dashboard.js exposes bare global functions (loadInstalledApps,
// loadDashboardData live in dashboard.js / data-loader.js, both eager core // loadDashboardData live in dashboard.js / data-loader.js, both eager core

View File

@ -1,4 +1,4 @@
// features/tasks/index.js — the Tasks page as a feature module. // components/tasks/index.js — the Tasks page as a feature module.
// //
// window.tasksManager is a system-loader singleton (its "task-system" component // window.tasksManager is a system-loader singleton (its "task-system" component
// loads all task scripts, starts the shared SSE bus, then news TasksManager). // loads all task scripts, starts the shared SSE bus, then news TasksManager).

View File

@ -1,4 +1,4 @@
// features/updater/index.js — App Updater feature module. // components/updater/index.js — App Updater feature module.
// //
// Per-app version tracking + CVE/security scanning + disaster-recovery // Per-app version tracking + CVE/security scanning + disaster-recovery
// (snapshot-before-update and rollback). Built in the same shape as the backup // (snapshot-before-update and rollback). Built in the same shape as the backup

View File

@ -1,4 +1,4 @@
// features/updater/updater-page.js — App Updater controller. // components/updater/js/updater-page.js — App Updater controller.
// //
// Surfaces, per installed app: version state (current -> available), security // Surfaces, per installed app: version state (current -> available), security
// posture (CVEs by severity), and disaster-recovery readiness (a snapshot is // posture (CVEs by severity), and disaster-recovery readiness (a snapshot is

View File

@ -256,7 +256,7 @@ class LibrePortalSPAClean {
// (The dashboard data-reload that used to live here is now folded into the // (The dashboard data-reload that used to live here is now folded into the
// dashboard feature module's mount(), so it fires exactly once per // dashboard feature module's mount(), so it fires exactly once per
// navigation. See features/dashboard/index.js.) // navigation. See components/dashboard/index.js.)
this.isLoading = true; this.isLoading = true;
//console.log('🧭 Navigating to:', path); //console.log('🧭 Navigating to:', path);

View File

@ -69,7 +69,7 @@ class TaskRouter {
case 'tool': case 'tool':
return await this.actions.runTool(params.appName, params.toolName, params.toolArgs, params.toolLabel); return await this.actions.runTool(params.appName, params.toolName, params.toolArgs, params.toolLabel);
// App Updater (features/updater) — version/CVE refresh + update/rollback, // App Updater (components/updater) — version/CVE refresh + update/rollback,
// each routed to the locked-down `libreportal updater` CLI as a task. // each routed to the locked-down `libreportal updater` CLI as a task.
case 'updater_check': case 'updater_check':
return await this.actions.updaterCheck(); return await this.actions.updaterCheck();

View File

@ -1,5 +1,5 @@
/* Update Notifier topbar badge, dashboard banner, and details panel. /* Update Notifier topbar badge, dashboard banner, and details panel.
Driven by js/components/update-notifier.js. Colours come from the active Driven by js/update-notifier.js. Colours come from the active
theme tokens (with safe fallbacks) so it tracks every palette. */ theme tokens (with safe fallbacks) so it tracks every palette. */
/* ---- Topbar badge -------------------------------------------------------- */ /* ---- Topbar badge -------------------------------------------------------- */