From 8f0c7e369e85bafc6cd2da826c5eef18201419b4 Mon Sep 17 00:00:00 2001 From: Ibrahim Mammadov Date: Thu, 5 Sep 2024 12:35:29 +0200 Subject: [PATCH 1/8] Update page number indicator --- src/lib/components/Table/TablePagination.svelte | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/lib/components/Table/TablePagination.svelte b/src/lib/components/Table/TablePagination.svelte index 977f69f3..be2c7ac1 100644 --- a/src/lib/components/Table/TablePagination.svelte +++ b/src/lib/components/Table/TablePagination.svelte @@ -117,11 +117,7 @@
{#if $pageCount > 0} - {#if $pageCount == 1} - 1 page - {:else} - {$pageCount} pages - {/if} + Page {$pageIndex + 1} of {$pageCount} {:else} No pages {/if} From 325c2e9c6d8f29dde62ee5ff4800cbf393f99e3e Mon Sep 17 00:00:00 2001 From: Ibrahim Mammadov Date: Tue, 10 Sep 2024 13:10:16 +0200 Subject: [PATCH 2/8] Update structure of server-side config for server-side table --- .../table/examples/TableServer.svelte | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/src/routes/components/table/examples/TableServer.svelte b/src/routes/components/table/examples/TableServer.svelte index 26bd2ccf..74fb25e5 100644 --- a/src/routes/components/table/examples/TableServer.svelte +++ b/src/routes/components/table/examples/TableServer.svelte @@ -1,8 +1,10 @@
- + {#if serverTableConfig} +
+ {/if} From fcfdd7524d27df3eccd76f42730ad729421c1ef1 Mon Sep 17 00:00:00 2001 From: Ibrahim Mammadov Date: Tue, 10 Sep 2024 13:11:14 +0200 Subject: [PATCH 3/8] Fix errors on client-side search and show no rows available if no rows found in a configured table --- src/lib/components/Table/TableContent.svelte | 28 +++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/lib/components/Table/TableContent.svelte b/src/lib/components/Table/TableContent.svelte index 25acae66..35153fdf 100644 --- a/src/lib/components/Table/TableContent.svelte +++ b/src/lib/components/Table/TableContent.svelte @@ -389,9 +389,12 @@
{ - if (!sendModel) throw new Error('Server-side configuration is missing'); + if (serverSide && !sendModel) { + throw new Error('Server-side configuration is missing'); + } else { + sendModel.q = searchValue; + } - sendModel.q = searchValue; $filterValue = searchValue; }} > @@ -407,10 +410,13 @@ id="{tableId}-searchReset" class="absolute right-3 items-center" on:click|preventDefault={() => { - if (!sendModel) throw new Error('Server-side configuration is missing'); + if (serverSide && !sendModel) { + throw new Error('Server-side configuration is missing'); + } else { + sendModel.q = ''; + } searchValue = ''; - sendModel.q = ''; $filterValue = ''; }}> @@ -420,10 +426,13 @@ id="{tableId}-searchSubmit" class="btn variant-filled-primary" on:click|preventDefault={() => { - if (!sendModel) throw new Error('Server-side configuration is missing'); + if (serverSide && !sendModel) { + throw new Error('Server-side configuration is missing'); + } else { + sendModel.q = searchValue; + } $filterValue = searchValue; - sendModel.q = searchValue; }}>Search @@ -564,6 +573,13 @@ {/each}
+ {#if $pageRows.length === 0} +
+ No rows available +
+ {/if}
{:else} From 1ac33c7d0caeb0ffa818af862bea1bb877dba12b Mon Sep 17 00:00:00 2001 From: Ibrahim Mammadov Date: Tue, 10 Sep 2024 13:11:29 +0200 Subject: [PATCH 4/8] Fix text breaking issue --- src/routes/components/table/docs/TableExamplesDocs.svelte | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/routes/components/table/docs/TableExamplesDocs.svelte b/src/routes/components/table/docs/TableExamplesDocs.svelte index fc21fa95..963355f2 100644 --- a/src/routes/components/table/docs/TableExamplesDocs.svelte +++ b/src/routes/components/table/docs/TableExamplesDocs.svelte @@ -13,7 +13,7 @@ import TableServer from '../examples/TableServer.svelte'; -
+

Examples

@@ -30,7 +30,8 @@
-
+
+

Server-side tables

From 88aa4b5f0275879092c2ac95c965748966f6aba9 Mon Sep 17 00:00:00 2001 From: Ibrahim Mammadov Date: Mon, 23 Sep 2024 13:21:46 +0200 Subject: [PATCH 5/8] Add new actions to keep track of the state of Facets and options --- src/lib/components/Facets/Facets.svelte | 65 +++++++++++++++++++------ 1 file changed, 49 insertions(+), 16 deletions(-) diff --git a/src/lib/components/Facets/Facets.svelte b/src/lib/components/Facets/Facets.svelte index 24d9f85f..f4fa6e5c 100644 --- a/src/lib/components/Facets/Facets.svelte +++ b/src/lib/components/Facets/Facets.svelte @@ -11,18 +11,14 @@ export let showAll = false; export let open = false; - let selected: { [key: string]: SelectedFacetGroup }; - let selectedItems: { - [key: string]: { - [key: string]: boolean; - }; - } = {}; - let selectedGroups: { [key: string]: boolean } = {}; + export const showMore = (groupName: string) => { + const group: SelectedFacetGroup = selected[groupName]; - const dispatch = createEventDispatcher(); + dispatch('showMoreOpenChange', { + group: group.name, + open: true + }); - const modalStore = getModalStore(); - const showMore = (group: SelectedFacetGroup) => { modalStore.trigger({ type: 'component', title: `${group.displayName}`, @@ -37,14 +33,50 @@ }); }; + let selected: { [key: string]: SelectedFacetGroup }; + let selectedItems: { + [key: string]: { + [key: string]: boolean; + }; + } = {}; + let selectedGroups: { [key: string]: boolean } = {}; + + const dispatch = createEventDispatcher(); + + const modalStore = getModalStore(); + const handleSave = (group: SelectedFacetGroup) => { - Object.keys(group.children).forEach((key) => { - selectedItems[group.name][key] = group.children[key].selected || false; + const { name: groupName, children } = group; + + dispatch('showMoreOpenChange', { + group: groupName, + open: false }); + + for (const key in children) { + const selectedValue = children[key].selected || false; + selectedItems[groupName][key] = selectedValue; + + if (selected[groupName].children[key].selected !== selectedValue) { + selected[groupName].children[key].selected = selectedValue; + } + } + + dispatch('showMoreSelect', [ + { + parent: groupName, + selected: Object.keys(children).map((key) => children[key].selected) + } + ]); + modalStore.close(); }; - const handleCancel = () => { + const handleCancel = (groupName: string) => { + dispatch('showMoreOpenChange', { + group: groupName, + open: false + }); modalStore.close(); }; @@ -75,9 +107,10 @@ }); } - changed.length && dispatch('change', changed); + changed.length && dispatch('facetSelect', changed); }; + // Keeping the sorting function, but stays unused for now const sortOptions = () => { // Sort facets in a descending order if count exits, or sort alphabetically Object.keys(selected).forEach((group) => { @@ -139,7 +172,7 @@ }); $: displayedGroups = structuredClone($groups); - $: selectedItems, mapSelected('items'), sortOptions(); + $: selectedItems, mapSelected('items'); // sortOptions(); // Sorting is not used for now $: selectedGroups, mapSelected('groups'); @@ -177,7 +210,7 @@ {#if group.children.length > 5} - showMore(group.name)}>more {/if} From 5745e4e6c3a179992c4318f564a070eb8c49eed4 Mon Sep 17 00:00:00 2001 From: Ibrahim Mammadov Date: Mon, 23 Sep 2024 13:22:19 +0200 Subject: [PATCH 6/8] Add group name when cancelling to properly dispatch the showMoreOpenChange(false) action --- src/lib/components/Facets/ShowMore.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/components/Facets/ShowMore.svelte b/src/lib/components/Facets/ShowMore.svelte index 41067b65..24598fbe 100644 --- a/src/lib/components/Facets/ShowMore.svelte +++ b/src/lib/components/Facets/ShowMore.svelte @@ -3,7 +3,7 @@ export let group: SelectedFacetGroup; export let handleSave: (group: SelectedFacetGroup) => {}; - export let handleCancel: () => {}; + export let handleCancel: (groupName: string) => {}; let selected = structuredClone(group.children); @@ -25,7 +25,7 @@ const onCancel = () => { console.log(selected, group.children); selected = structuredClone(group.children); - handleCancel(); + handleCancel(group.name); }; const gridClass = (items: any[]) => { From 748d204b4ec75a691805cfa94950eab71ac03b3c Mon Sep 17 00:00:00 2001 From: Ibrahim Mammadov Date: Mon, 23 Sep 2024 13:22:38 +0200 Subject: [PATCH 7/8] Update actions --- .../facets/examples/FacetsGroupSelection.svelte | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/routes/components/facets/examples/FacetsGroupSelection.svelte b/src/routes/components/facets/examples/FacetsGroupSelection.svelte index c0d2864f..2407bda4 100644 --- a/src/routes/components/facets/examples/FacetsGroupSelection.svelte +++ b/src/routes/components/facets/examples/FacetsGroupSelection.svelte @@ -15,6 +15,13 @@ svelte={facetsGroupSelectionSvelte} data={facetsNoGroupSelectionData} > - console.log(e)} /> + console.log(e)} + on:showMoreSelect={(e) => console.log(e)} + on:showMoreOpenChange={(e) => console.log(e)} + />
From 7dfb4378c4ca2fdbbbd149e4f007078e2ced99c7 Mon Sep 17 00:00:00 2001 From: Ibrahim Mammadov Date: Mon, 23 Sep 2024 13:23:00 +0200 Subject: [PATCH 8/8] Rename action --- .../components/facets/examples/FacetsNoGroupSelection.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/components/facets/examples/FacetsNoGroupSelection.svelte b/src/routes/components/facets/examples/FacetsNoGroupSelection.svelte index ef32a66f..f98fd089 100644 --- a/src/routes/components/facets/examples/FacetsNoGroupSelection.svelte +++ b/src/routes/components/facets/examples/FacetsNoGroupSelection.svelte @@ -15,6 +15,6 @@ svelte={facetsNoGroupSelectionSvelte} data={facetsNoGroupSelectionData} > - console.log(e)} /> + console.log(e)} />