Implement WebDAV backup feature: add configuration options, API endpoints, and UI for managing database backups
This commit is contained in:
+29
-1
@@ -14,9 +14,37 @@
|
||||
<body>
|
||||
<header class="topbar">
|
||||
<a class="brand" href="/" aria-label="Faerro KB"><span class="brand-mark">KB</span><span>Faerro <b>KB</b></span></a>
|
||||
<span id="network-state" class="network-state"><i></i> Checking</span>
|
||||
<div class="topbar-actions">
|
||||
<button id="settings-button" class="icon-button settings-button" type="button" title="Backup settings" aria-label="Backup settings">⚙</button>
|
||||
<span id="network-state" class="network-state"><i></i> Checking</span>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<dialog id="settings-dialog" class="settings-dialog" aria-labelledby="settings-title">
|
||||
<form id="backup-form" method="dialog">
|
||||
<div class="dialog-heading">
|
||||
<h2 id="settings-title">Database backup</h2>
|
||||
<button id="close-settings" class="icon-button dialog-close" type="button" title="Close settings" aria-label="Close settings">×</button>
|
||||
</div>
|
||||
<p class="settings-copy">A consistent SQLite snapshot is uploaded after each saved transcript. WebDAV receives the full database file each time.</p>
|
||||
<fieldset id="backup-fields">
|
||||
<label for="backup-url">WebDAV folder URL</label>
|
||||
<input id="backup-url" name="url" type="url" placeholder="https://cloud.example/remote.php/dav/files/name/Faerro" autocomplete="url" />
|
||||
<label for="backup-username">Username</label>
|
||||
<input id="backup-username" name="username" type="text" autocomplete="username" />
|
||||
<label for="backup-password">App password</label>
|
||||
<input id="backup-password" name="password" type="password" autocomplete="new-password" placeholder="Leave blank to keep the saved password" />
|
||||
<label class="clear-password"><input id="clear-backup-password" type="checkbox" /> Remove saved password</label>
|
||||
<div class="settings-actions">
|
||||
<button class="save-written-note" type="submit">Save settings</button>
|
||||
<button id="test-backup" class="secondary-button" type="button">Test WebDAV</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
<p id="backup-status" class="backup-status" role="status">Loading backup status…</p>
|
||||
<button id="retry-backup" class="secondary-button retry-backup" type="button" hidden>Retry backup</button>
|
||||
</form>
|
||||
</dialog>
|
||||
|
||||
<main>
|
||||
<section class="capture" aria-labelledby="capture-title">
|
||||
<div class="capture-modes" role="tablist" aria-label="Note type">
|
||||
|
||||
Reference in New Issue
Block a user