From ee44a4eb80ff2657256149ecc04c3d5bb381a04f Mon Sep 17 00:00:00 2001 From: librelad Date: Sat, 30 May 2026 02:06:31 +0100 Subject: [PATCH] refactor(webui): relocate backup into features/backup/, app-card to shared/ - features/backup/: backup-schema.js, backup-page.js, backup.css (eager). - shared/js/backup-app-card.js: cross-feature (used by backup AND the app-detail Backups tab), so it goes to shared/, not buried in backup. - Updated paths: feature scripts array, spa.js handleBackup fallback, system-loader apps-manager component (app-card), index.html backup.css href. Co-Authored-By: Claude Opus 4.8 Signed-off-by: librelad --- .../{js/components => features}/backup/backup-page.js | 0 .../{js/components => features}/backup/backup-schema.js | 0 .../frontend/{css => features/backup}/backup.css | 0 containers/libreportal/frontend/features/backup/index.js | 6 +++--- containers/libreportal/frontend/index.html | 2 +- containers/libreportal/frontend/js/spa.js | 4 ++-- containers/libreportal/frontend/js/system/system-loader.js | 2 +- .../{js/components/backup => shared/js}/backup-app-card.js | 0 8 files changed, 7 insertions(+), 7 deletions(-) rename containers/libreportal/frontend/{js/components => features}/backup/backup-page.js (100%) rename containers/libreportal/frontend/{js/components => features}/backup/backup-schema.js (100%) rename containers/libreportal/frontend/{css => features/backup}/backup.css (100%) rename containers/libreportal/frontend/{js/components/backup => shared/js}/backup-app-card.js (100%) diff --git a/containers/libreportal/frontend/js/components/backup/backup-page.js b/containers/libreportal/frontend/features/backup/backup-page.js similarity index 100% rename from containers/libreportal/frontend/js/components/backup/backup-page.js rename to containers/libreportal/frontend/features/backup/backup-page.js diff --git a/containers/libreportal/frontend/js/components/backup/backup-schema.js b/containers/libreportal/frontend/features/backup/backup-schema.js similarity index 100% rename from containers/libreportal/frontend/js/components/backup/backup-schema.js rename to containers/libreportal/frontend/features/backup/backup-schema.js diff --git a/containers/libreportal/frontend/css/backup.css b/containers/libreportal/frontend/features/backup/backup.css similarity index 100% rename from containers/libreportal/frontend/css/backup.css rename to containers/libreportal/frontend/features/backup/backup.css diff --git a/containers/libreportal/frontend/features/backup/index.js b/containers/libreportal/frontend/features/backup/index.js index 76dcef7..64e3551 100644 --- a/containers/libreportal/frontend/features/backup/index.js +++ b/containers/libreportal/frontend/features/backup/index.js @@ -14,9 +14,9 @@ LP.features.register({ routes: ['/backup', '/backup*'], // Controllers the feature needs; lazy-loaded on first mount (idempotent). scripts: [ - '/js/components/backup/backup-schema.js', - '/js/components/backup/backup-page.js', - '/js/components/backup/backup-app-card.js', + '/features/backup/backup-schema.js', + '/features/backup/backup-page.js', + '/shared/js/backup-app-card.js', ], async mount(ctx) { diff --git a/containers/libreportal/frontend/index.html b/containers/libreportal/frontend/index.html index 1cc98ad..c77d890 100755 --- a/containers/libreportal/frontend/index.html +++ b/containers/libreportal/frontend/index.html @@ -18,7 +18,7 @@ - + diff --git a/containers/libreportal/frontend/js/spa.js b/containers/libreportal/frontend/js/spa.js index 7c3f2a0..daeb384 100755 --- a/containers/libreportal/frontend/js/spa.js +++ b/containers/libreportal/frontend/js/spa.js @@ -358,8 +358,8 @@ class LibrePortalSPAClean { // backup-page.js + backup-app-card.js are loaded on first navigation. // loadScript is idempotent — subsequent /backup navigations are no-ops. await Promise.all([ - this.loadScript('/js/components/backup/backup-page.js'), - this.loadScript('/js/components/backup/backup-app-card.js') + this.loadScript('/features/backup/backup-page.js'), + this.loadScript('/shared/js/backup-app-card.js') ]); const html = await this.fetchContent('/html/backup-content.html'); this.loadContent(html, 'Backups'); diff --git a/containers/libreportal/frontend/js/system/system-loader.js b/containers/libreportal/frontend/js/system/system-loader.js index 047adc9..abc869a 100755 --- a/containers/libreportal/frontend/js/system/system-loader.js +++ b/containers/libreportal/frontend/js/system/system-loader.js @@ -206,7 +206,7 @@ class SystemLoader { scripts: [ '/features/apps/port-manager.js', '/shared/task/task-manager.js', // Add TaskManager for backup functionality - '/js/components/backup/backup-app-card.js', + '/shared/js/backup-app-card.js', '/features/apps/services-manager.js', '/features/apps/tools-manager.js', '/features/apps/routing-manager.js', diff --git a/containers/libreportal/frontend/js/components/backup/backup-app-card.js b/containers/libreportal/frontend/shared/js/backup-app-card.js similarity index 100% rename from containers/libreportal/frontend/js/components/backup/backup-app-card.js rename to containers/libreportal/frontend/shared/js/backup-app-card.js