diff --git a/src/components/scans/DeleteScanModal.svelte b/src/components/scans/DeleteScanModal.svelte new file mode 100644 index 00000000..45ac2d0c --- /dev/null +++ b/src/components/scans/DeleteScanModal.svelte @@ -0,0 +1,110 @@ + + +{#if modal_open} +
{ + modal_open = false; + }} + > +
+ +
+{/if} diff --git a/src/components/scans/ScansOverview.svelte b/src/components/scans/ScansOverview.svelte index 94e78d09..52fc0318 100644 --- a/src/components/scans/ScansOverview.svelte +++ b/src/components/scans/ScansOverview.svelte @@ -22,6 +22,7 @@ import { runnerFilter, statusFilter } from "../shared/tablefilters"; import CardRunner from "../cards/CardRunner.svelte"; import ScanValid from "./ScanValid.svelte"; + import DeleteScanModal from "./DeleteScanModal.svelte"; $: selectedScans = $table?.getSelectedRowModel().rows.map((row) => row.original) || []; @@ -29,7 +30,6 @@ $table?.getSelectedRowModel().rows.map((row) => row.index) || []; $: active_delete = undefined; - $: active_deletes = []; export let current_scans = []; const scans_promise = ScanService.scanControllerGetAll().then((val) => { current_scans = val; @@ -154,8 +154,28 @@ getSortedRowModel: getSortedRowModel(), }); const table = createSvelteTable(options); + async function deleteScan(scan_id) { + await ScanService.scanControllerRemove(scan_id, true); + current_scans = current_scans.filter((r) => r.id !== scan_id); + options.update((options) => ({ + ...options, + data: current_scans, + })); + Toastify({ + text: $_("scan-deleted"), + duration: 3500, + backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", + }).showToast(); + } + { + deleteScan(event.detail.id); + }} +/> {#if store.state.jwtinfo.userdetails.permissions.includes("SCAN:GET")} {#await scans_promise}
{:else} + {#if selected.length > 0} + + {/if}
diff --git a/src/locales/de.json b/src/locales/de.json index 4c9a5479..c16502c2 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -478,6 +478,8 @@ "cards-deleted": "Karten gelöscht", "please-confirm-the-deletion-of-runner": "Bitte bestätige die Löschung der Läufer:in", "runner-deleted": "Läufer:in gelöscht", + "scan-deleted": "Scan gelöscht", + "please-confirm-the-deletion-of-scan": "Bitte bestätige die Löschung des Scans", "please-confirm-the-deletion-of-card": "Bitte bestätige die Löschung der Karte", "card": "Läuferkarte" } diff --git a/src/locales/en.json b/src/locales/en.json index ea733426..d82784a9 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -478,6 +478,8 @@ "cards-deleted": "Cards deleted", "please-confirm-the-deletion-of-runner": "Please confirm the deletion of this runner", "runner-deleted": "runner deleted", + "scan-deleted": "scan deleted", + "please-confirm-the-deletion-of-scan": "Please confirm the deletion of scan", "please-confirm-the-deletion-of-card": "Please confirm the deletion of this card", "card": "card" }