From f105cc0a41972261610d03015ecd5ee492dab8e2 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Wed, 12 Apr 2023 20:54:09 +0200 Subject: [PATCH] wip: delete scans --- src/components/scans/DeleteScansModal.svelte | 104 +++++++++++++++++++ src/components/scans/ScansOverview.svelte | 45 +++++++- 2 files changed, 146 insertions(+), 3 deletions(-) create mode 100644 src/components/scans/DeleteScansModal.svelte diff --git a/src/components/scans/DeleteScansModal.svelte b/src/components/scans/DeleteScansModal.svelte new file mode 100644 index 00000000..9d35c6f0 --- /dev/null +++ b/src/components/scans/DeleteScansModal.svelte @@ -0,0 +1,104 @@ + + +{#if modal_open} +
{ + modal_open = false; + }} + > +
+ +
+{/if} diff --git a/src/components/scans/ScansOverview.svelte b/src/components/scans/ScansOverview.svelte index b8e6af9b..355a8c39 100644 --- a/src/components/scans/ScansOverview.svelte +++ b/src/components/scans/ScansOverview.svelte @@ -22,13 +22,14 @@ import { runnerFilter } from "../shared/tablefilters"; import CardRunner from "../cards/CardRunner.svelte"; import ScanValid from "./ScanValid.svelte"; + import DeleteScansModal from "./DeleteScansModal.svelte"; $: selectedScans = $table?.getSelectedRowModel().rows.map((row) => row.original) || []; $: selected = $table?.getSelectedRowModel().rows.map((row) => row.index) || []; - $: active_delete = undefined; + $: delete_active = false; $: active_deletes = []; export let current_scans = []; const scans_promise = ScanService.scanControllerGetAll().then((val) => { @@ -122,10 +123,12 @@ return renderComponent(TableActions, { detailsLink: `./${info.row.original.id}`, deleteAction: () => { - active_delete = + active_deletes = [ current_scans[ current_scans.findIndex((r) => r.id == info.row.original.id) - ]; + ], + ]; + delete_active = true; }, deleteEnabled: store.state.jwtinfo.userdetails.permissions.includes("SCAN:DELETE"), @@ -153,8 +156,44 @@ 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: $_("scans-deleted"), + // duration: 3500, + // backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", + // }).showToast(); + } + async function deleteScans(scan_ids) { + scan_ids.forEach((scan_id) => { + 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: $_("scans-deleted"), + // duration: 3500, + // backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", + // }).showToast(); + } + { + deleteScans(event.detail.scans); + }} +/> {#if store.state.jwtinfo.userdetails.permissions.includes("SCAN:GET")} {#await scans_promise}