From c73fa2d2849a3843b2c63f85d923940660621dcd Mon Sep 17 00:00:00 2001 From: Guilhem Date: Tue, 25 Feb 2025 15:37:40 +0000 Subject: [PATCH] fix pagination handling and filter refreshes --- .../auditLogs/AuditLogsFilters.svelte | 31 ++++++++++++++----- .../auditLogs/AuditLogsTable.svelte | 3 +- .../(root)/(logged)/audit_logs/+page.svelte | 5 +++ 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/frontend/src/lib/components/auditLogs/AuditLogsFilters.svelte b/frontend/src/lib/components/auditLogs/AuditLogsFilters.svelte index 1da413f9159aa..13dff237b1521 100644 --- a/frontend/src/lib/components/auditLogs/AuditLogsFilters.svelte +++ b/frontend/src/lib/components/auditLogs/AuditLogsFilters.svelte @@ -27,7 +27,8 @@ export let logs: AuditLog[] = [] export let username: string = 'all' - export let pageIndex: number | undefined = 0 + export let pageIndex: number | undefined = 1 + export let hasMore: boolean = false export let before: string | undefined = undefined export let after: string | undefined = undefined export let perPage: number | undefined = 100 @@ -77,6 +78,7 @@ actionKind, allWorkspaces: scope === 'all_workspaces' }) + hasMore = logs.length > 0 && logs.length === perPage loading = false } @@ -109,12 +111,12 @@ .sort() } - $: { - if ($workspaceStore && refresh) { - loadUsers() - loadResources() - loadLogs(username, pageIndex, perPage, before, after, operation, resource, actionKind, scope) - } + $: $workspaceStore && refresh && refreshLogs() + + function refreshLogs() { + loadUsers() + loadResources() + loadLogs(username, pageIndex, perPage, before, after, operation, resource, actionKind, scope) } function updateQueryParams({ @@ -158,6 +160,9 @@ } const query = '?' + queryParams.join('&') goto(query) + + pageIndex = 1 + loadLogs(username, 1, perPage, before, after, operation, resource, actionKind, scope) } function updatePageQueryParams(pageIndex?: number | undefined) { @@ -184,6 +189,18 @@ const query = '?' + queryParams.join('&') goto(query) + + loadLogs( + username, + pageIndex ?? 1, + perPage, + before, + after, + operation, + resource, + actionKind, + scope + ) } $: updateQueryParams({ diff --git a/frontend/src/lib/components/auditLogs/AuditLogsTable.svelte b/frontend/src/lib/components/auditLogs/AuditLogsTable.svelte index 60c85ebefdc4c..601fb9c567467 100644 --- a/frontend/src/lib/components/auditLogs/AuditLogsTable.svelte +++ b/frontend/src/lib/components/auditLogs/AuditLogsTable.svelte @@ -13,6 +13,7 @@ export let logs: AuditLog[] = [] export let pageIndex: number | undefined = 1 export let perPage: number | undefined = 100 + export let hasMore: boolean = true export let actionKind: string | undefined = undefined export let operation: string | undefined = undefined export let selectedId: number | undefined = undefined @@ -69,8 +70,8 @@ paginated rounded={false} size="sm" + {hasMore} bind:perPage - shouldHidePagination={logs?.length === 0} > ID diff --git a/frontend/src/routes/(root)/(logged)/audit_logs/+page.svelte b/frontend/src/routes/(root)/(logged)/audit_logs/+page.svelte index 1ea129871529e..0c9791eefcd7d 100644 --- a/frontend/src/routes/(root)/(logged)/audit_logs/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/audit_logs/+page.svelte @@ -18,6 +18,7 @@ let username: string = $page.url.searchParams.get('username') ?? 'all' let pageIndex: number | undefined = Number($page.url.searchParams.get('page')) || 0 let before: string | undefined = $page.url.searchParams.get('before') ?? undefined + let hasMore: boolean = false let after: string | undefined = $page.url.searchParams.get('after') ?? undefined let perPage: number | undefined = Number($page.url.searchParams.get('perPage')) || 100 let operation: string = $page.url.searchParams.get('operation') ?? 'all' @@ -61,6 +62,7 @@ bind:pageIndex bind:perPage bind:scope + bind:hasMore />
@@ -75,6 +77,7 @@ bind:operation bind:resource bind:scope + bind:hasMore /> @@ -100,6 +103,7 @@ bind:operation bind:usernameFilter={username} bind:resourceFilter={resource} + bind:hasMore on:select={(e) => { selectedId = e.detail }} @@ -114,6 +118,7 @@