diff --git a/containers/libreportal/frontend/components/backup/js/backup-configuration.js b/containers/libreportal/frontend/components/backup/configuration/js/backup-configuration.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-configuration.js rename to containers/libreportal/frontend/components/backup/configuration/js/backup-configuration.js diff --git a/containers/libreportal/frontend/components/backup/js/backup-engine-details.js b/containers/libreportal/frontend/components/backup/configuration/js/backup-engine-details.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-engine-details.js rename to containers/libreportal/frontend/components/backup/configuration/js/backup-engine-details.js diff --git a/containers/libreportal/frontend/components/backup/js/backup-retention-presets.js b/containers/libreportal/frontend/components/backup/configuration/js/backup-retention-presets.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-retention-presets.js rename to containers/libreportal/frontend/components/backup/configuration/js/backup-retention-presets.js diff --git a/containers/libreportal/frontend/components/backup/css/backup.css b/containers/libreportal/frontend/components/backup/core/css/backup.css similarity index 100% rename from containers/libreportal/frontend/components/backup/css/backup.css rename to containers/libreportal/frontend/components/backup/core/css/backup.css diff --git a/containers/libreportal/frontend/components/backup/html/backup-content.html b/containers/libreportal/frontend/components/backup/core/html/backup-content.html similarity index 100% rename from containers/libreportal/frontend/components/backup/html/backup-content.html rename to containers/libreportal/frontend/components/backup/core/html/backup-content.html diff --git a/containers/libreportal/frontend/components/backup/js/backup-cron-schedule.js b/containers/libreportal/frontend/components/backup/core/js/backup-cron-schedule.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-cron-schedule.js rename to containers/libreportal/frontend/components/backup/core/js/backup-cron-schedule.js diff --git a/containers/libreportal/frontend/components/backup/js/backup-fetch-client.js b/containers/libreportal/frontend/components/backup/core/js/backup-fetch-client.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-fetch-client.js rename to containers/libreportal/frontend/components/backup/core/js/backup-fetch-client.js diff --git a/containers/libreportal/frontend/components/backup/js/backup-page.js b/containers/libreportal/frontend/components/backup/core/js/backup-page.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-page.js rename to containers/libreportal/frontend/components/backup/core/js/backup-page.js diff --git a/containers/libreportal/frontend/components/backup/js/backup-schema.js b/containers/libreportal/frontend/components/backup/core/js/backup-schema.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-schema.js rename to containers/libreportal/frontend/components/backup/core/js/backup-schema.js diff --git a/containers/libreportal/frontend/components/backup/js/backup-dashboard.js b/containers/libreportal/frontend/components/backup/dashboard/js/backup-dashboard.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-dashboard.js rename to containers/libreportal/frontend/components/backup/dashboard/js/backup-dashboard.js diff --git a/containers/libreportal/frontend/components/backup/index.js b/containers/libreportal/frontend/components/backup/index.js index 891b703..dcc0a50 100644 --- a/containers/libreportal/frontend/components/backup/index.js +++ b/containers/libreportal/frontend/components/backup/index.js @@ -13,29 +13,30 @@ LP.features.register({ id: 'backup', routes: ['/backup', '/backup*'], // Controllers the feature needs; lazy-loaded on first mount (idempotent). + // Controllers, organised by sub-system (tabs). core/ first: schema + base + // class + the shared data/cron, then each tab's prototype-augment clusters. scripts: [ - '/components/backup/js/backup-schema.js', - '/components/backup/js/backup-page.js', // base: class + constructor + init/switchTab/render - // prototype-augment clusters (load after the base, order among them is free): - '/components/backup/js/backup-fetch-client.js', - '/components/backup/js/backup-dashboard.js', - '/components/backup/js/backup-snapshots.js', - '/components/backup/js/backup-locations.js', - '/components/backup/js/backup-location-fields.js', - '/components/backup/js/backup-ssh-key.js', - '/components/backup/js/backup-retention-presets.js', - '/components/backup/js/backup-configuration.js', - '/components/backup/js/backup-engine-details.js', - '/components/backup/js/backup-location-modal.js', - '/components/backup/js/backup-snapshot-actions.js', - '/components/backup/js/backup-migrate.js', - '/components/backup/js/backup-cron-schedule.js', + '/components/backup/core/js/backup-schema.js', + '/components/backup/core/js/backup-page.js', // base: class + constructor + init/switchTab/render + '/components/backup/core/js/backup-fetch-client.js', + '/components/backup/core/js/backup-cron-schedule.js', + '/components/backup/dashboard/js/backup-dashboard.js', + '/components/backup/snapshots/js/backup-snapshots.js', + '/components/backup/snapshots/js/backup-snapshot-actions.js', + '/components/backup/locations/js/backup-locations.js', + '/components/backup/locations/js/backup-location-fields.js', + '/components/backup/locations/js/backup-location-modal.js', + '/components/backup/locations/js/backup-ssh-key.js', + '/components/backup/migrate/js/backup-migrate.js', + '/components/backup/configuration/js/backup-configuration.js', + '/components/backup/configuration/js/backup-retention-presets.js', + '/components/backup/configuration/js/backup-engine-details.js', '/core/lib/backup-app-card.js', ], async mount(ctx) { await ctx.loadScripts(this.scripts); - const html = await ctx.loadFragment('/components/backup/html/backup-content.html'); + const html = await ctx.loadFragment('/components/backup/core/html/backup-content.html'); ctx.setContent(html, 'Backups'); if (typeof BackupPage === 'undefined') { throw new Error('BackupPage controller failed to load'); diff --git a/containers/libreportal/frontend/components/backup/js/backup-location-fields.js b/containers/libreportal/frontend/components/backup/locations/js/backup-location-fields.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-location-fields.js rename to containers/libreportal/frontend/components/backup/locations/js/backup-location-fields.js diff --git a/containers/libreportal/frontend/components/backup/js/backup-location-modal.js b/containers/libreportal/frontend/components/backup/locations/js/backup-location-modal.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-location-modal.js rename to containers/libreportal/frontend/components/backup/locations/js/backup-location-modal.js diff --git a/containers/libreportal/frontend/components/backup/js/backup-locations.js b/containers/libreportal/frontend/components/backup/locations/js/backup-locations.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-locations.js rename to containers/libreportal/frontend/components/backup/locations/js/backup-locations.js diff --git a/containers/libreportal/frontend/components/backup/js/backup-ssh-key.js b/containers/libreportal/frontend/components/backup/locations/js/backup-ssh-key.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-ssh-key.js rename to containers/libreportal/frontend/components/backup/locations/js/backup-ssh-key.js diff --git a/containers/libreportal/frontend/components/backup/js/backup-migrate.js b/containers/libreportal/frontend/components/backup/migrate/js/backup-migrate.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-migrate.js rename to containers/libreportal/frontend/components/backup/migrate/js/backup-migrate.js diff --git a/containers/libreportal/frontend/components/backup/js/backup-snapshot-actions.js b/containers/libreportal/frontend/components/backup/snapshots/js/backup-snapshot-actions.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-snapshot-actions.js rename to containers/libreportal/frontend/components/backup/snapshots/js/backup-snapshot-actions.js diff --git a/containers/libreportal/frontend/components/backup/js/backup-snapshots.js b/containers/libreportal/frontend/components/backup/snapshots/js/backup-snapshots.js similarity index 100% rename from containers/libreportal/frontend/components/backup/js/backup-snapshots.js rename to containers/libreportal/frontend/components/backup/snapshots/js/backup-snapshots.js diff --git a/containers/libreportal/frontend/core/kernel/spa.js b/containers/libreportal/frontend/core/kernel/spa.js index b1a8ca0..a79d524 100755 --- a/containers/libreportal/frontend/core/kernel/spa.js +++ b/containers/libreportal/frontend/core/kernel/spa.js @@ -370,10 +370,10 @@ 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('/components/backup/js/backup-page.js'), + this.loadScript('/components/backup/core/js/backup-page.js'), this.loadScript('/core/lib/backup-app-card.js') ]); - const html = await this.fetchContent('/components/backup/html/backup-content.html'); + const html = await this.fetchContent('/components/backup/core/html/backup-content.html'); this.loadContent(html, 'Backups'); if (typeof BackupPage !== 'undefined') { window.backupPage = new BackupPage(); diff --git a/containers/libreportal/frontend/index.html b/containers/libreportal/frontend/index.html index 0dda67a..7d7b268 100755 --- a/containers/libreportal/frontend/index.html +++ b/containers/libreportal/frontend/index.html @@ -18,7 +18,7 @@ - +