feat(backup): add independent backup panel, configurable policy, and rename support

Extract backup & restore into a standalone AccordionItem in Advanced settings.
Add configurable auto-backup interval (disabled/6h/12h/24h/48h/7d) and retention
count (3-50) via settings. Add per-backup rename with inline editing UI.
This commit is contained in:
Jason
2026-02-22 08:40:47 +08:00
parent 3afec8a10f
commit f8820aa22c
13 changed files with 488 additions and 73 deletions
+15 -2
View File
@@ -230,7 +230,11 @@
},
"data": {
"title": "Data Management",
"description": "Import/export local configurations and backup/restore"
"description": "Import and export local configuration data"
},
"backup": {
"title": "Backup & Restore",
"description": "Manage automatic backups, view and restore database snapshots"
},
"cloudSync": {
"title": "Cloud Sync",
@@ -306,7 +310,16 @@
"confirmMessage": "Restoring this backup will overwrite the current database. A safety backup will be created first.",
"restoreSuccess": "Restore successful! Safety backup created",
"restoreFailed": "Restore failed",
"safetyBackupId": "Safety Backup ID"
"safetyBackupId": "Safety Backup ID",
"intervalLabel": "Auto-backup Interval",
"retainLabel": "Backup Retention",
"intervalDisabled": "Disabled",
"intervalHours": "{{hours}} hours",
"intervalDays": "{{days}} days",
"rename": "Rename",
"renameSuccess": "Backup renamed",
"renameFailed": "Rename failed",
"namePlaceholder": "Enter new name"
},
"webdavSync": {
"title": "WebDAV Cloud Sync",
+15 -2
View File
@@ -230,7 +230,11 @@
},
"data": {
"title": "データ管理",
"description": "ローカル設定のインポート/エクスポートとバックアップ/復元"
"description": "ローカル設定データのインポートエクスポート"
},
"backup": {
"title": "バックアップと復元",
"description": "自動バックアップの管理、データベーススナップショットの表示と復元"
},
"cloudSync": {
"title": "クラウド同期",
@@ -306,7 +310,16 @@
"confirmMessage": "このバックアップを復元すると現在のデータベースが上書きされます。安全バックアップが先に作成されます。",
"restoreSuccess": "復元成功!安全バックアップが作成されました",
"restoreFailed": "復元に失敗しました",
"safetyBackupId": "安全バックアップID"
"safetyBackupId": "安全バックアップID",
"intervalLabel": "自動バックアップ間隔",
"retainLabel": "バックアップ保持数",
"intervalDisabled": "無効",
"intervalHours": "{{hours}} 時間",
"intervalDays": "{{days}} 日",
"rename": "名前変更",
"renameSuccess": "バックアップの名前を変更しました",
"renameFailed": "名前変更に失敗しました",
"namePlaceholder": "新しい名前を入力"
},
"webdavSync": {
"title": "WebDAV クラウド同期",
+15 -2
View File
@@ -230,7 +230,11 @@
},
"data": {
"title": "数据管理",
"description": "导入导出本地配置与备份恢复"
"description": "导入导出本地配置数据"
},
"backup": {
"title": "备份与恢复",
"description": "管理自动备份,查看和恢复数据库快照"
},
"cloudSync": {
"title": "云同步",
@@ -306,7 +310,16 @@
"confirmMessage": "恢复到此备份将覆盖当前数据库。恢复前会自动创建安全备份。",
"restoreSuccess": "恢复成功!安全备份已创建",
"restoreFailed": "恢复失败",
"safetyBackupId": "安全备份ID"
"safetyBackupId": "安全备份ID",
"intervalLabel": "自动备份间隔",
"retainLabel": "备份保留数量",
"intervalDisabled": "禁用",
"intervalHours": "{{hours}} 小时",
"intervalDays": "{{days}} 天",
"rename": "重命名",
"renameSuccess": "备份重命名成功",
"renameFailed": "重命名失败",
"namePlaceholder": "输入新名称"
},
"webdavSync": {
"title": "WebDAV 云同步",