diff --git a/containers/libreportal/frontend/components/apps/overview/js/overview-manager.js b/containers/libreportal/frontend/components/apps/overview/js/overview-manager.js index 3c1d65b..6b13037 100644 --- a/containers/libreportal/frontend/components/apps/overview/js/overview-manager.js +++ b/containers/libreportal/frontend/components/apps/overview/js/overview-manager.js @@ -166,10 +166,12 @@ class OverviewManager { // ---- Migrate tab: Restore (standalone MigratePage) + Peers (PeersPage) ---- mountMigrate() { - this.switchMigrateSub(this._migrateSub || 'restore'); + const seg = window.location.pathname.replace(/^\/overview\/migrate\/?/, '').split('/')[0]; + const sub = (seg === 'peers' || seg === 'restore') ? seg : (this._migrateSub || 'restore'); + this.switchMigrateSub(sub, { fromUrl: true }); } - switchMigrateSub(sub) { + switchMigrateSub(sub, opts = {}) { this._migrateSub = sub; const pane = document.getElementById('ov-pane-migrate'); if (!pane) return; @@ -177,6 +179,7 @@ class OverviewManager { pane.querySelectorAll('.ov-subtabs-content .tab-panel[data-ov-subtab]').forEach((p) => p.classList.toggle('active', p.dataset.ovSubtab === sub)); if (sub === 'restore') this._mountRestore(); else if (sub === 'peers') this._mountPeers(); + if (!opts.fromUrl) this._pushUrl(`/overview/migrate/${sub}`, true); } async _mountRestore() {