diff --git a/src/components/cards/CardsOverview.svelte b/src/components/cards/CardsOverview.svelte
index e23a3073..20a97ab0 100644
--- a/src/components/cards/CardsOverview.svelte
+++ b/src/components/cards/CardsOverview.svelte
@@ -3,6 +3,7 @@
import { RunnerCardService } from "@odit/lfk-client-js";
import store from "../../store";
import Toastify from "toastify-js";
+ import { DataHandler, Datatable, Th, ThFilter } from "@vincjo/datatables";
import CardsEmptyState from "./CardsEmptyState.svelte";
import CardDetailModal from "./CardDetailModal.svelte";
import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte";
@@ -11,271 +12,192 @@
export let editable = {};
export let original_data = {};
export let current_cards = [];
- $: filtered_cards = current_cards.filter(function (c) {
- if (
- c.code.toLowerCase().includes(searchvalue_lowercase) ||
- c.runner?.firstname.toLowerCase().includes(searchvalue_lowercase) ||
- c.runner?.middlename.toLowerCase().includes(searchvalue_lowercase) ||
- c.runner?.lastname.toLowerCase().includes(searchvalue_lowercase) ||
- should_display_based_on_id(c.id)
- ) {
- return true;
- }
- });
- $: searchvalue = "";
- $: searchvalue_lowercase = searchvalue.toLowerCase();
+ const handler = new DataHandler(current_cards, { rowsPerPage: 50 });
+ const rows = handler.getRows();
$: active_deletes = [];
- $: cards_show = current_cards.some((r) => r.is_selected === true);
- $: generate_cards = current_cards.filter((r) => r.is_selected === true);
+ $: cards_show = generate_cards.length > 0;
+ $: generate_cards = [];
const cards_promise = RunnerCardService.runnerCardControllerGetAll().then(
(val) => {
current_cards = val;
+ handler.setRows(val);
}
);
- function should_display_based_on_id(id) {
- if (searchvalue.toString().slice(-1) === "*") {
- return id.toString().startsWith(searchvalue.replace("*", ""));
- }
- return id.toString() === searchvalue;
- }
const getRunnerLabel = (option) =>
- option?.firstname + " " + (option?.middlename || "") + " " + (option?.lastname || "{$_('non-blanko')}");
+ option?.firstname +
+ " " +
+ (option?.middlename || "") +
+ " " +
+ (option?.lastname || "{$_('non-blanko')}");
function open_edit_modal(card) {
- if(card.runner?.id){
+ if (card.runner?.id) {
runner = Object.assign(
{ runner },
{ label: getRunnerLabel(card.runner), value: card.runner }
);
card.runner = card.runner.id;
- }
- else{
- card.runner=null;
- runner = null
+ } else {
+ card.runner = null;
+ runner = null;
}
editable = Object.assign(editable, card);
original_data = Object.assign(original_data, card);
edit_modal_open = true;
}
-// -----------------
- let scrollTop = 0;
- $: rendered = filtered_cards;
- let innerHeight = 0;
- let ele;
- $: updateSlice(scrollTop);
- $: innerHeight = `${filtered_cards.length * 25}px`;
- $: if (ele) updateSlice();
- function updateSlice() {
- const height = ele ? parseInt(ele.clientHeight) : 100;
- const init = scrollTop / 25;
- const end = Math.ceil((scrollTop + height) / 25);
- rendered = filtered_cards.slice(init, end + 15);
- }
- function updateScroll($event) {
- scrollTop = $event.target.scrollTop;
- }
-
-
-{#if store.state.jwtinfo.userdetails.permissions.includes('CARD:UPDATE')}
+{#if store.state.jwtinfo.userdetails.permissions.includes("CARD:UPDATE")}
{$_('loading-cards')}
-{$_('this-might-take-a-moment')}
+ role="alert" + > +{$_("loading-cards")}
+{$_("this-might-take-a-moment")}
- + { - const newstate = !current_cards.some((r) => r.is_selected === true); - current_cards = current_cards.map((r) => { - r.is_selected = newstate; - return r; - }); + if (generate_cards.length != current_cards.length) { + generate_cards = current_cards; + } else { + generate_cards = []; + } }} - class="underline cursor-pointer select-none">{#if current_cards.some((r) => r.is_selected === true)} - {$_('deselect-all')} - {:else}{$_('select-all')}{/if} - - | -- {$_('code')} - | -- {$_('runner')} - | -- {$_('status')} - | -- {$_('action')} + /> | +{$_('code')} | +{$_('runner')} | +{$_('status')} | +{$_("action")} | +
---|---|---|---|---|---|---|---|---|
+ | ||||||||
- - | -
- {card.code}
- |
-
-
- {#if card.runner}
- {card.runner.firstname}
- {card.runner.middlename || ''}
- {card.runner.lastname}
- {:else}{$_('non-blanko')}{/if}
-
- |
-
-
- {#if card.enabled}
- {$_('enabled')}
- {:else}
- {$_('disabled')}
- {/if}
-
- |
-
- {#if active_deletes[card.id] === true}
- - - - | - {:else} -- - {#if store.state.jwtinfo.userdetails.permissions.includes('CARD:DELETE')} - - {/if} - | - {/if} -|||
+ i.id == row.id) + .length > 0} + on:click={() => { + if ( + generate_cards.findIndex((i) => i.id == row.id) == -1 + ) { + generate_cards.push(row); + generate_cards = generate_cards; + } else { + generate_cards = generate_cards.filter( + (r) => r.id != row.id + ); + } + console.log(generate_cards); + }} + /> + | +{row.code} | +{row.runner} | +{row.enabled} | ++ {#if active_deletes[row.id] === true} + + + {:else} + {$_("details")} + {#if store.state.jwtinfo.userdetails.permissions.includes("CARD:DELETE")} + + {/if} + {/if} + | +