From 8ffe8eff0623767809cdc49ea15cf2d30b609285 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 12 Apr 2023 20:43:08 +0200 Subject: [PATCH] Basic card delete modal --- src/components/cards/CardsOverview.svelte | 38 +++--- src/components/cards/DeleteCardModal.svelte | 128 ++++++++++++++++++++ src/locales/de.json | 4 +- src/locales/en.json | 4 +- 4 files changed, 157 insertions(+), 17 deletions(-) create mode 100644 src/components/cards/DeleteCardModal.svelte diff --git a/src/components/cards/CardsOverview.svelte b/src/components/cards/CardsOverview.svelte index eef30384..04f6e461 100644 --- a/src/components/cards/CardsOverview.svelte +++ b/src/components/cards/CardsOverview.svelte @@ -24,6 +24,7 @@ import CardRunner from "./CardRunner.svelte"; import { onMount } from "svelte"; import { runnerFilter } from "../shared/tablefilters"; + import DeleteCardModal from "./DeleteCardModal.svelte"; export let edit_modal_open = false; export let runner = {}; @@ -131,6 +132,20 @@ edit_modal_open = true; } + async function deleteCard(delete_card_id) { + await RunnerCardService.runnerCardControllerRemove(delete_card_id, true); + current_cards = current_cards.filter((r) => r.id !== delete_card_id); + options.update((options) => ({ + ...options, + data: current_cards, + })); + Toastify({ + text: $_("card-deleted"), + duration: 3500, + backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", + }).showToast(); + } + onMount(() => { RunnerCardService.runnerCardControllerGetAll().then((val) => { current_cards = val; @@ -163,6 +178,13 @@ {/if} {#if store.state.jwtinfo.userdetails.permissions.includes("CARD:GET")} + { + deleteCard(event.detail.id); + }} + /> {#if !dataLoaded}
{ const prom = []; for (const card of selectedCards) { - prom.push( - RunnerCardService.runnerCardControllerRemove(card.id, true) - ); + prom.push(deleteCard(card.id)); } await Promise.all(prom); - Toastify({ - text: $_("cards-deleted"), - duration: 3500, - backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", - }).showToast(); - for (const card of generate_cards) { - current_cards = current_cards.filter((c) => c.id !== card.id); - } - options.update((options) => ({ - ...options, - data: current_cards, - })); }} > {$_("delete-cards")} diff --git a/src/components/cards/DeleteCardModal.svelte b/src/components/cards/DeleteCardModal.svelte new file mode 100644 index 00000000..ce2447ac --- /dev/null +++ b/src/components/cards/DeleteCardModal.svelte @@ -0,0 +1,128 @@ + + +{#if modal_open} +
{ + modal_open = false; + }} + > +
+ +
+{/if} diff --git a/src/locales/de.json b/src/locales/de.json index 561a5c7a..4c9a5479 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -477,5 +477,7 @@ "delete-cards": "Karten löschen", "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" + "runner-deleted": "Läufer:in gelöscht", + "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 e2d14fdd..ea733426 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -477,5 +477,7 @@ "delete-cards": "Delete cards", "cards-deleted": "Cards deleted", "please-confirm-the-deletion-of-runner": "Please confirm the deletion of this runner", - "runner-deleted": "runner deleted" + "runner-deleted": "runner deleted", + "please-confirm-the-deletion-of-card": "Please confirm the deletion of this card", + "card": "card" }