feat(export): direct download of the complete archive from the Exportera tab (#1632)

The full-archive ZIP endpoint (SIE + reports + all documents) has existed
since the settings/backup page, but lost its UI when that page became a
redirect: the BackupDownloadForm component was orphaned and the download
was API-only. Resurface it the way the export tab already works: a
"Komplett arkiv" ImportRow (owner/admin only, matching the route's role
gate) opening a small centered dialog like the SIE export next to it,
with scope choice, fiscal-year picker, include-documents toggle, live
size estimate, 413 handling, and a #full-archive deep link.

The orphaned form and its dead settings_backup_download i18n namespace
are deleted; its logic lives on in components/import/FullArchiveDialog.
Over-limit copy now points at the existing cloud sync instead of
promising it "in a later version".

Co-authored-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Jakob Wennberg
2026-08-17 09:49:13 +02:00
committed by GitHub
co-authored by Jakob Wennberg Claude Fable 5
parent c897a906df
commit 44c3116357
6 changed files with 342 additions and 494 deletions
+23 -33
View File
@@ -2409,39 +2409,6 @@
"fyllnadsinbetalning_label": "Fyllnadsinbetalning",
"fyllnadsinbetalning_help": "Extra inbetalning av preliminärskatt för att undvika kostnadsränta på kvarskatt. Belopp över 30 000 kr senast den 12:e i andra månaden efter beskattningsåret, resten senast den 3:e i femte månaden."
},
"settings_backup_download": {
"create_backup_title": "Skapa backup",
"scope_label": "Omfattning",
"scope_all_label": "Hela historiken",
"scope_all_desc": "Alla räkenskapsår och verifikationer",
"scope_period_label": "En period",
"scope_period_desc": "Välj ett specifikt räkenskapsår",
"recommended": "Rekommenderas",
"fiscal_year_label": "Räkenskapsår",
"no_fiscal_years": "Inga räkenskapsår",
"include_docs_label": "Inkludera kvitton och underlag",
"include_docs_help": "Bilagor till verifikationer (kvitton, fakturor, PDF:er) packas med i ZIP:en. Stäng av för en mindre backup med bara bokföringsdata.",
"calculating_size": "Beräknar storlek…",
"estimated_size": "Uppskattad storlek:",
"attachment_singular": "bilaga",
"attachment_plural": "bilagor",
"size_will_calculate": "Storlek beräknas när omfattning är vald.",
"over_limit_message": "Arkivet är större än {limit} och kan inte laddas ner direkt. Välj en enskild period eller stäng av bilagor tills vidare: automatisk molnsynkronisering kommer i senare version.",
"creating_backup": "Skapar backup…",
"create_and_download": "Skapa och ladda ner",
"last_download": "Senaste nedladdning",
"toast_too_large_title": "Arkivet är för stort för direktnedladdning",
"toast_too_large_with_size": "Ditt arkiv är cirka {size} MB. Exportera en period i taget tills vidare: automatisk molnsynkronisering kommer i senare version.",
"toast_too_large_generic": "Exportera en period i taget tills vidare: automatisk molnsynkronisering kommer i senare version.",
"error_create_archive": "Kunde inte skapa arkivet",
"toast_backup_created": "Säkerhetsbackup skapad",
"toast_backup_failed": "Kunde inte skapa säkerhetsbackup",
"toast_try_again": "Försök igen.",
"cloud_sync_title": "Molnsynkronisering",
"cloud_sync_disabled_help": "Aktivera tillägget \"Molnsynkronisering\" för att koppla Google Drive och ladda upp säkerhetsbackupen med ett klick.",
"periods_load_failed": "Räkenskapsåren kunde inte läsas in, så en enskild period kan inte väljas just nu. Hela historiken går fortfarande att ladda ner.",
"periods_load_retry": "Försök igen"
},
"settings_api_keys": {
"title": "API-nycklar",
"description": "Hantera nycklar för MCP-klienter (Claude, Cursor) och andra integrationer.",
@@ -7081,6 +7048,29 @@
"export_sie_dialog_description": "Ladda ner bokföringen som SIE4-fil för revisorn eller för flytt till ett annat system.",
"cloud_row_title": "Molnsynkronisering",
"cloud_row_description": "Löpande säkerhetskopia av arkivet till Google Drive",
"export_archive_title": "Komplett arkiv",
"export_archive_description": "Hela bokföringen som ZIP: SIE, rapporter och alla underlag",
"archive_dialog_description": "Ladda ner ett komplett arkiv till din dator, med SIE-filer, rapporter och alla underlag ordnade per verifikat.",
"archive_scope_label": "Omfattning",
"archive_scope_all": "Hela historiken",
"archive_scope_period": "Ett räkenskapsår",
"archive_include_docs_label": "Inkludera kvitton och underlag",
"archive_include_docs_help": "Bilagor till verifikationer (kvitton, fakturor, PDF:er) packas med i ZIP:en. Stäng av för ett mindre arkiv med bara bokföringsdata.",
"archive_calculating_size": "Beräknar storlek…",
"archive_estimated_size": "Uppskattad storlek:",
"archive_attachment_singular": "bilaga",
"archive_attachment_plural": "bilagor",
"archive_size_pending": "Storlek beräknas när omfattning är vald.",
"archive_over_limit": "Arkivet är större än {limit} och kan inte laddas ner direkt. Välj ett enskilt räkenskapsår, stäng av bilagor eller använd Molnsynkronisering som klarar större arkiv.",
"archive_download_button": "Skapa och ladda ner",
"archive_creating": "Skapar arkiv…",
"archive_last_download": "Senaste nedladdning",
"archive_toast_too_large_title": "Arkivet är för stort för direktnedladdning",
"archive_toast_too_large_with_size": "Ditt arkiv är cirka {size} MB. Ladda ner ett räkenskapsår i taget, eller använd Molnsynkronisering som klarar större arkiv.",
"archive_toast_too_large_generic": "Ladda ner ett räkenskapsår i taget, eller använd Molnsynkronisering som klarar större arkiv.",
"archive_toast_created": "Arkivet har laddats ner",
"archive_toast_failed": "Kunde inte skapa arkivet",
"archive_error_fallback": "Försök igen.",
"help_text": "Här samlas alla vägar in och ut: bankkoppling, filimporter och flytt från andra system, samt export av SIE och säkerhetskopior. Varje import granskas innan något bokförs.",
"pgnote": "Varje import går genom samma steg: ladda upp, mappa kolumner, granska, resultat. Inget bokförs utan att du ser det först.",
"sie_history_title": "Tidigare SIE-importer",