From 22589e4729baaecbdbf7a60c2a26194d6a541fab Mon Sep 17 00:00:00 2001 From: Marcel Date: Mon, 18 May 2026 13:14:32 +0200 Subject: [PATCH] feat(admin): surface skipped file count in ImportStatusCard Adds SkippedFile to the local ImportStatus type and updates ImportStatusCard to show an amber skipped-count section with a collapsible filename list in the DONE state. Only rendered when skipped > 0. i18n keys added for de/en/es. Co-Authored-By: Claude Sonnet 4.6 --- frontend/messages/de.json | 1 + frontend/messages/en.json | 1 + frontend/messages/es.json | 1 + .../admin/system/ImportStatusCard.svelte | 15 ++++++ .../system/ImportStatusCard.svelte.test.ts | 51 +++++++++++++++++++ frontend/src/routes/admin/system/types.ts | 7 +++ 6 files changed, 76 insertions(+) diff --git a/frontend/messages/de.json b/frontend/messages/de.json index 03d63f48..55e93d40 100644 --- a/frontend/messages/de.json +++ b/frontend/messages/de.json @@ -350,6 +350,7 @@ "admin_system_import_status_running": "Import läuft…", "admin_system_import_status_done": "Import abgeschlossen", "admin_system_import_status_done_label": "Dokumente verarbeitet", + "admin_system_import_skipped_label": "übersprungen", "admin_system_import_status_failed": "Import fehlgeschlagen", "admin_system_import_failed_no_spreadsheet": "Keine Tabellendatei gefunden.", "admin_system_import_failed_internal": "Interner Fehler beim Import.", diff --git a/frontend/messages/en.json b/frontend/messages/en.json index d52ddbf5..1ace8196 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -350,6 +350,7 @@ "admin_system_import_status_running": "Import running…", "admin_system_import_status_done": "Import complete", "admin_system_import_status_done_label": "Documents processed", + "admin_system_import_skipped_label": "skipped", "admin_system_import_status_failed": "Import failed", "admin_system_import_failed_no_spreadsheet": "No spreadsheet file found.", "admin_system_import_failed_internal": "Import failed due to an internal error.", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 177dcdff..286faf5b 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -350,6 +350,7 @@ "admin_system_import_status_running": "Importación en curso…", "admin_system_import_status_done": "Importación completada", "admin_system_import_status_done_label": "Documentos procesados", + "admin_system_import_skipped_label": "omitidos", "admin_system_import_status_failed": "Importación fallida", "admin_system_import_failed_no_spreadsheet": "No se encontró ninguna hoja de cálculo.", "admin_system_import_failed_internal": "Error interno durante la importación.", diff --git a/frontend/src/routes/admin/system/ImportStatusCard.svelte b/frontend/src/routes/admin/system/ImportStatusCard.svelte index 01b565c4..a7cbba65 100644 --- a/frontend/src/routes/admin/system/ImportStatusCard.svelte +++ b/frontend/src/routes/admin/system/ImportStatusCard.svelte @@ -48,6 +48,21 @@ const failureMessage = $derived(

{m.admin_system_import_status_done()}

+ {#if importStatus.skipped > 0} +
+ +

{importStatus.skipped}

+

+ {m.admin_system_import_skipped_label()} +

+
+
    + {#each importStatus.skippedFiles as { filename, reason } (filename)} +
  • {filename} — {reason}
  • + {/each} +
+
+ {/if}