Compare commits
2 Commits
8fa13ae52b
...
7f29d33c45
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7f29d33c45 | ||
|
|
88b431ee86 |
@ -154,20 +154,17 @@
|
|||||||
<section class="backup-tabpanel" id="backup-panel-migrate">
|
<section class="backup-tabpanel" id="backup-panel-migrate">
|
||||||
<div class="backup-card backup-migrate-card">
|
<div class="backup-card backup-migrate-card">
|
||||||
<div class="backup-card-header">
|
<div class="backup-card-header">
|
||||||
<h2>Restore an app from another LibrePortal</h2>
|
<h2>Cross-host migrate <span class="tooltip" title="Pulls a snapshot taken on another host out of a shared backup location and lays it down here. The destination's existing copy of the app is snapshotted first (rollback safety), then replaced." style="font-size:.75em;opacity:.7;cursor:help">ℹ️</span></h2>
|
||||||
<span class="backup-card-hint">
|
<span class="backup-card-hint">Restore an app from another LibrePortal</span>
|
||||||
Pulls a snapshot taken on another host out of a shared backup location and
|
|
||||||
lays it down here. The destination's existing copy of the app is snapshotted
|
|
||||||
first (rollback safety), then replaced.
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="backup-migrate-empty" id="backup-migrate-empty" hidden>
|
<div class="backup-migrate-empty" id="backup-migrate-empty" hidden>
|
||||||
<p>No backups from other hosts found in any enabled location.</p>
|
<div class="backup-empty-state">
|
||||||
<p class="backup-card-hint">
|
No backups from other hosts visible in any enabled location.<br>
|
||||||
Either no other LibrePortal has backed up to a location this host can see,
|
Add a <strong>shared backup location</strong> on both hosts to enable cross-host migrate.
|
||||||
or this is the only host using its locations. Add a shared backup location
|
<div style="margin-top:12px">
|
||||||
on both hosts to enable cross-host migrate.
|
<button type="button" class="backup-primary-btn" data-action="go-to-locations">Open Locations</button>
|
||||||
</p>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="backup-migrate-body" id="backup-migrate-body"></div>
|
<div class="backup-migrate-body" id="backup-migrate-body"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -282,6 +282,9 @@ class BackupPage {
|
|||||||
const exportBtn = e.target.closest('[data-action="export-passwords"]');
|
const exportBtn = e.target.closest('[data-action="export-passwords"]');
|
||||||
if (exportBtn) { this.toggleExportMenu(false); this.exportRepositoryPasswords(exportBtn); return; }
|
if (exportBtn) { this.toggleExportMenu(false); this.exportRepositoryPasswords(exportBtn); return; }
|
||||||
|
|
||||||
|
const goToLocations = e.target.closest('[data-action="go-to-locations"]');
|
||||||
|
if (goToLocations) { this.switchTab('locations'); return; }
|
||||||
|
|
||||||
const dismissWarn = e.target.closest('[data-action="dismiss-config-warning"]');
|
const dismissWarn = e.target.closest('[data-action="dismiss-config-warning"]');
|
||||||
if (dismissWarn) {
|
if (dismissWarn) {
|
||||||
window.Dismissible?.dismiss('backup-config-warning');
|
window.Dismissible?.dismiss('backup-config-warning');
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user