From 1c84bcae35eebb91571c06d38f1c93a81564cf6c Mon Sep 17 00:00:00 2001 From: Christoph Kluge Date: Tue, 29 Apr 2025 18:40:44 +0200 Subject: [PATCH] add filterBuffer for seamless view switch --- web/frontend/src/Jobs.root.svelte | 6 +++++- web/frontend/src/generic/JobCompare.svelte | 3 ++- web/frontend/src/generic/JobList.svelte | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/web/frontend/src/Jobs.root.svelte b/web/frontend/src/Jobs.root.svelte index 718ccda..57f0b5b 100644 --- a/web/frontend/src/Jobs.root.svelte +++ b/web/frontend/src/Jobs.root.svelte @@ -36,6 +36,7 @@ export let roles; let filterComponent; // see why here: https://stackoverflow.com/questions/58287729/how-can-i-export-a-function-from-a-svelte-component-that-changes-a-value-in-the + let filterBuffer = []; let jobList, jobCompare, matchedListJobs, @@ -100,6 +101,7 @@ selectedCluster = detail.filters[0]?.cluster ? detail.filters[0].cluster.eq : null; + filterBuffer = [...detail.filters] if (showCompare) { jobCompare.queryJobs(detail.filters); } else { @@ -131,7 +133,7 @@ @@ -146,12 +148,14 @@ bind:sorting bind:matchedListJobs bind:showFootprint + {filterBuffer} /> {:else} {/if} diff --git a/web/frontend/src/generic/JobCompare.svelte b/web/frontend/src/generic/JobCompare.svelte index 9ba1bbf..17da18f 100644 --- a/web/frontend/src/generic/JobCompare.svelte +++ b/web/frontend/src/generic/JobCompare.svelte @@ -32,9 +32,10 @@ } export let matchedCompareJobs = 0; + export let filterBuffer = []; export let metrics = ccconfig.plot_list_selectedMetrics; - let filter = []; + let filter = [...filterBuffer]; const sorting = { field: "startTime", type: "col", order: "DESC" }; /* GQL */ diff --git a/web/frontend/src/generic/JobList.svelte b/web/frontend/src/generic/JobList.svelte index b31a496..03044f0 100644 --- a/web/frontend/src/generic/JobList.svelte +++ b/web/frontend/src/generic/JobList.svelte @@ -38,12 +38,13 @@ export let matchedListJobs = 0; export let metrics = ccconfig.plot_list_selectedMetrics; export let showFootprint; + export let filterBuffer = []; let usePaging = ccconfig.job_list_usePaging let itemsPerPage = usePaging ? ccconfig.plot_list_jobsPerPage : 10; let page = 1; let paging = { itemsPerPage, page }; - let filter = []; + let filter = [...filterBuffer]; let lastFilter = []; let lastSorting = null; let triggerMetricRefresh = false;