Harden renderer modal and upload races

This commit is contained in:
Sucukdeluxe
2026-08-13 22:52:19 +02:00
parent 1c8e9067ee
commit c54cf6b22e
6 changed files with 640 additions and 355 deletions
+19 -1
View File
@@ -41,6 +41,7 @@
['Hinweis', 'Notice'],
['Hoster-Limits automatisch hochskalieren', 'Automatically scale host limits'],
['Hoster', 'Host'],
['Versuch', 'Attempt'],
['Importieren', 'Import'],
['In Zwischenablage', 'To clipboard'],
['In diesem Lauf hochgeladen:', 'Uploaded during this run:'],
@@ -416,7 +417,7 @@
['Keine Antwort vom Hoster erhalten', 'No response received from the host'],
['Keine Einträge im Log gefunden', 'No log entries found'],
['Keine Einträge zum Exportieren.', 'No entries to export.'],
['Keine Jobs hinzugefuegt', 'No jobs added'],
['Keine Jobs hinzugefügt', 'No jobs added'],
['Keine Log-Einträge für diesen Job (entweder noch nichts passiert oder aus vorherigem Batch und schon geräumt).', 'No log entries for this job. Nothing has happened yet, or entries from a previous batch were already cleared.'],
['Keine passenden Jobs für Retry gefunden.', 'No matching jobs found for retry.'],
['Keine startbaren Jobs ausgewählt (alle laufen schon oder sind fertig).', 'No startable jobs selected because all are already running or completed.'],
@@ -592,6 +593,8 @@
['Upload-Status', 'Upload status'],
['Upload-Übersicht', 'Upload overview'],
['Upload-Wiederherstellung konnte nicht gespeichert werden', 'Upload recovery could not be saved'],
['Sitzungsbericht konnte nicht exportiert werden.', 'The session report could not be exported.'],
['Warteschlange konnte vor dem Upload-Start nicht gespeichert werden', 'The queue could not be saved before starting the upload'],
['Verlauf als CSV exportieren?\n\nOK = CSV\nAbbrechen = JSON', 'Export history as CSV?\n\nOK = CSV\nCancel = JSON'],
['Verlauf wirklich löschen?', 'Are you sure you want to delete the history?'],
['Verschlüssele und speichere Einstellungen…', 'Encrypting and saving settings…'],
@@ -647,7 +650,14 @@
const patterns = target === 'en'
? [
[/^Update v(.+) verfügbar$/, 'Update v$1 available'],
[/^1 unterbrochener Upload kann fortgesetzt werden\.$/, '1 interrupted upload can be resumed.'],
[/^(\d+) unterbrochene Uploads können fortgesetzt werden\.$/, '$1 interrupted uploads can be resumed.'],
[/^Wiederhergestellte Warteschlange startet in (.+) s \((.+) Jobs\)\.$/, 'Restored queue starts in $1 s ($2 jobs).'],
[/^(\d+) hinzugefügt$/, '$1 added'],
[/^(\d+) bereits im Batch$/, '$1 already in the batch'],
[/^(\d+) ohne gültigen Account$/, '$1 without a valid account'],
[/^Sitzungsbericht mit 1 Upload exportiert$/, 'Session report with 1 upload exported'],
[/^Sitzungsbericht mit (\d+) Uploads exportiert$/, 'Session report with $1 uploads exported'],
[/^Login ok, Upload-Form bereit \(Dateifeld: (.+)\)$/, 'Login successful, upload form ready (file field: $1)'],
[/^Klartext-Backup ist kein gültiges JSON: (.+)$/, 'Plain JSON backup is not valid JSON: $1'],
[/^Export fehlgeschlagen: (.+)$/, (_, detail) => `Export failed: ${translateErrorDetail(detail)}`],
@@ -758,6 +768,14 @@
[/^Import failed: (.+)$/, (_, detail) => `Import fehlgeschlagen: ${translateErrorDetail(detail)}`],
[/^Initialization failed: (.+)$/, (_, detail) => `Initialisierung fehlgeschlagen: ${translateErrorDetail(detail)}`],
[/^Update v(.+) available$/, 'Update v$1 verfügbar'],
[/^1 interrupted upload can be resumed\.$/, '1 unterbrochener Upload kann fortgesetzt werden.'],
[/^(\d+) interrupted uploads can be resumed\.$/, '$1 unterbrochene Uploads können fortgesetzt werden.'],
[/^Restored queue starts in (.+) s \((.+) jobs\)\.$/, 'Wiederhergestellte Warteschlange startet in $1 s ($2 Jobs).'],
[/^(\d+) added$/, '$1 hinzugefügt'],
[/^(\d+) already in the batch$/, '$1 bereits im Batch'],
[/^(\d+) without a valid account$/, '$1 ohne gültigen Account'],
[/^Session report with 1 upload exported$/, 'Sitzungsbericht mit 1 Upload exportiert'],
[/^Session report with (\d+) uploads exported$/, 'Sitzungsbericht mit $1 Uploads exportiert'],
[/^Sleep in (\d+)s\.\.\.$/, 'Ruhezustand in $1s...'],
[/^Shut down in (\d+)s\.\.\.$/, 'Herunterfahren in $1s...'],
[/^Restart in (\d+)s\.\.\.$/, 'Neustart in $1s...'],