diff --git a/src/components/cards/CardsOverview.svelte b/src/components/cards/CardsOverview.svelte index 5c845099..dd6eb7e3 100644 --- a/src/components/cards/CardsOverview.svelte +++ b/src/components/cards/CardsOverview.svelte @@ -5,13 +5,18 @@ import Toastify from "toastify-js"; import CardsEmptyState from "./CardsEmptyState.svelte"; import CardDetailModal from "./CardDetailModal.svelte"; + import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte"; export let edit_modal_open = false; export let runner = {}; export let editable = {}; export let original_data = {}; + export let current_cards = []; $: searchvalue = ""; $: active_deletes = []; - export let current_cards = []; + $: cards_show = current_cards.some( + (r) => r.is_selected === true + ); + $: generate_cards = current_cards.filter((r) => r.is_selected === true); const cards_promise = RunnerCardService.runnerCardControllerGetAll().then( (val) => { current_cards = val; @@ -53,6 +58,7 @@ {/if} {#if store.state.jwtinfo.userdetails.permissions.includes('CARD:GET')} +{JSON.stringify(generate_cards)} {#await cards_promise}
++ { + const newstate = !current_cards.some((r) => r.is_selected === true); + current_cards = current_cards.map((r) => { + r.is_selected = newstate; + return r; + }); + }} + class="underline cursor-pointer select-none">{#if current_cards.some((r) => r.is_selected === true)} + {$_('deselect-all')} + {:else}{$_('select-all')}{/if} + + | @@ -115,6 +142,12 @@ searchvalue.toLowerCase() ) || should_display_based_on_id(card.id)} |
---|---|
+ + |
{card.code}
|
diff --git a/src/components/pdf_generation/GenerateRunnerCards.svelte b/src/components/pdf_generation/GenerateRunnerCards.svelte
new file mode 100644
index 00000000..68c4b4f4
--- /dev/null
+++ b/src/components/pdf_generation/GenerateRunnerCards.svelte
@@ -0,0 +1,305 @@
+
+
+{#if cards_show}
+