Add viewer database import and clarify backup actions.

Pairs export with validated .db restore, documents the difference from game
save imports, and renames the JSON upload button to Import game backup.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-19 23:06:59 +02:00
parent defc98dec2
commit 7656578b72
9 changed files with 214 additions and 7 deletions
+12 -1
View File
@@ -21,8 +21,9 @@
"langDe": "Deutsch"
},
"actions": {
"importBackup": "Backup importieren",
"importBackup": "Spiel-Backup importieren",
"exportViewer": "Viewer exportieren",
"importViewer": "Viewer importieren",
"compare": "Vergleichen",
"dismiss": "Schließen"
},
@@ -224,6 +225,16 @@
"copied": "Kopiert!",
"copyPrompt": "Viewer-Link kopieren:"
},
"viewerDb": {
"title": "Viewer-Backup",
"helpTitle": "Was ist das?",
"helpBody": "Der Viewer speichert importierte Spiel-Backups, Verlaufsdiagramme und Ziele in einer SQLite-Datenbank auf dem Server. Export lädt diese Datenbank als Backup herunter. Import stellt sie wieder her und ersetzt alle aktuellen Viewer-Daten. Das ist nicht dasselbe wie ein Spiel-Backup (.json) importieren.",
"exportHint": "SQLite-Datenbank mit allen Snapshots, Verläufen und Zielen herunterladen",
"importConfirm": "Alle aktuellen Viewer-Daten (Snapshots, Verlauf, Ziele) werden durch die importierte .db-Datei ersetzt. Fortfahren?",
"importSuccess": "Viewer wiederhergestellt: {snapshots} Snapshot(s), {goals} Ziel(e).",
"importFailed": "Viewer konnte nicht importiert werden",
"invalidFile": "Bitte eine .db-Datei auswählen (Viewer-Export)."
},
"goals": {
"filterAll": "Alle",
"filterOpen": "Offen",
+12 -1
View File
@@ -21,8 +21,9 @@
"langDe": "Deutsch"
},
"actions": {
"importBackup": "Import backup",
"importBackup": "Import game backup",
"exportViewer": "Export viewer",
"importViewer": "Import viewer",
"compare": "Compare",
"dismiss": "Dismiss"
},
@@ -224,6 +225,16 @@
"copied": "Copied!",
"copyPrompt": "Copy your viewer link:"
},
"viewerDb": {
"title": "Viewer backup",
"helpTitle": "What is this?",
"helpBody": "The viewer stores imported game backups, history charts, and goals in a SQLite database on the server. Export downloads that database as a backup. Import restores it and replaces all current viewer data. This is not the same as importing a game save (.json).",
"exportHint": "Download the SQLite database with all snapshots, history, and goals",
"importConfirm": "All current viewer data (snapshots, history, goals) will be replaced by the imported .db file. Continue?",
"importSuccess": "Viewer restored: {snapshots} snapshot(s), {goals} goal(s).",
"importFailed": "Could not import viewer database",
"invalidFile": "Please select a .db file (viewer export)."
},
"goals": {
"filterAll": "All",
"filterOpen": "Open",