From 53b945c72fa5b30f03eff8bb83f8f25d85d79b07 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Wed, 12 Apr 2023 20:14:04 +0200 Subject: [PATCH] Moved update card logic to overview --- src/components/cards/CardDetailModal.svelte | 8 +------- src/components/cards/CardsOverview.svelte | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/components/cards/CardDetailModal.svelte b/src/components/cards/CardDetailModal.svelte index e156e942..622e268a 100644 --- a/src/components/cards/CardDetailModal.svelte +++ b/src/components/cards/CardDetailModal.svelte @@ -7,7 +7,6 @@ import Toastify from "toastify-js"; import { createEventDispatcher } from "svelte"; export let edit_modal_open; - export let current_cards; export let runner = {}; export let editable = {}; export let original_data = {}; @@ -30,9 +29,6 @@ $: enabled = true; $: processed_last_submit = true; const dispatch = createEventDispatcher(); - function dataUpdated() { - dispatch('dataUpdated',); - } RunnerService.runnerControllerGetAll().then((val) => { runners = val.map((r) => { return { label: getRunnerLabel(r), value: r }; @@ -75,9 +71,7 @@ duration: 500, backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)", }).showToast(); - current_cards[current_cards.findIndex((c) => c.id === id)] = result; - current_cards = current_cards; - dataUpdated(); + dispatch('dataUpdated', {card: result}); }) .catch((err) => { // diff --git a/src/components/cards/CardsOverview.svelte b/src/components/cards/CardsOverview.svelte index 256c8005..219bfe2f 100644 --- a/src/components/cards/CardsOverview.svelte +++ b/src/components/cards/CardsOverview.svelte @@ -116,6 +116,12 @@ const table = createSvelteTable(options); function open_edit_modal(card) { + const getRunnerLabel = (option) => + option.firstname + + " " + + (option.middlename || "") + + " " + + option.lastname; if (card.runner?.id) { runner = Object.assign( { runner }, @@ -134,13 +140,19 @@ {#if store.state.jwtinfo.userdetails.permissions.includes("CARD:UPDATE")} { - //TODO: + on:dataUpdated={(event) => { + current_cards[ + current_cards.findIndex((c) => c.id === event.detail.card.id) + ] = event.detail.card; + current_cards = current_cards; + options.update((options) => ({ + ...options, + data: current_cards, + })); }} /> {/if}