From 14d64b6070d98e6368da5709e9ff8221e8a621c7 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Thu, 16 Feb 2023 15:05:41 +0100 Subject: [PATCH] add group filtering to table ref #146 --- src/components/runners/RunnersOverview.svelte | 108 +++++++++--------- src/components/runners/ThFilterGroup.svelte | 34 ++++++ 2 files changed, 86 insertions(+), 56 deletions(-) create mode 100644 src/components/runners/ThFilterGroup.svelte diff --git a/src/components/runners/RunnersOverview.svelte b/src/components/runners/RunnersOverview.svelte index 51496409..e772871e 100644 --- a/src/components/runners/RunnersOverview.svelte +++ b/src/components/runners/RunnersOverview.svelte @@ -5,25 +5,20 @@ RunnerTeamService, RunnerOrganizationService, } from "@odit/lfk-client-js"; + import ThFilterGroup from "./ThFilterGroup.svelte"; + import { DataHandler, Datatable, Th, ThFilter } from "@vincjo/datatables"; import store from "../../store"; - import RunnersEmptyState from "./RunnersEmptyState.svelte"; - import Select from "svelte-select"; import GenerateSponsoringContracts from "../pdf_generation/GenerateSponsoringContracts.svelte"; import GenerateRunnerCards from "../pdf_generation/GenerateRunnerCards.svelte"; import GenerateRunnerCertificates from "../pdf_generation/GenerateRunnerCertificates.svelte"; - let pageLoaded = false; - $: searchvalue = ""; $: active_deletes = []; export let current_runners = []; + const handler = new DataHandler(current_runners, { rowsPerPage: 50 }); + const rows = handler.getRows(); const runners_promise = RunnerService.runnerControllerGetAll().then((val) => { + console.log(val); current_runners = val; - pageLoaded = true; }); - $: selectedFilter_teams = null; - $: selectedFilter = null; - $: filter__teams = selectedFilter_teams || []; - $: filter__orgs = selectedFilter || []; - $: filterGroupIDs = filter__teams.concat(filter__orgs).map((i) => i.value); $: sponsoring_contracts_show = current_runners.some( (r) => r.is_selected === true ); @@ -47,10 +42,6 @@ RunnerOrganizationService.runnerOrganizationControllerGetAll().then((val) => { orgs = val; }); - // === - import { DataHandler, Datatable, Th, ThFilter } from "@vincjo/datatables"; - const handler = new DataHandler(current_runners, { rowsPerPage: 50 }); - const rows = handler.getRows(); {#if store.state.jwtinfo.userdetails.permissions.includes("RUNNER:GET")} @@ -98,7 +89,7 @@ - + @@ -133,47 +124,48 @@ {/if} {row.distance / 1000} km - - + + {#if active_deletes[row.id] === true} + + + {:else} + {$_("details")} + {#if store.state.jwtinfo.userdetails.permissions.includes("RUNNER:DELETE")} + + {/if} + {/if} + {/each} @@ -186,6 +178,10 @@ thead { background: #fff; } + thead { + position: sticky; + inset-block-start: 0; + } tbody td { padding: 4px; } diff --git a/src/components/runners/ThFilterGroup.svelte b/src/components/runners/ThFilterGroup.svelte new file mode 100644 index 00000000..3c466c6f --- /dev/null +++ b/src/components/runners/ThFilterGroup.svelte @@ -0,0 +1,34 @@ + + + + +