From bacdbbbf20bb3a44cf130a3fb6eef375734835e6 Mon Sep 17 00:00:00 2001 From: Diego Imbert Date: Thu, 5 Feb 2026 17:19:31 +0100 Subject: [PATCH] prettier cards --- frontend/src/lib/components/RunsPage.svelte | 174 ++++++++------- .../lib/components/runs/JobRunsPreview.svelte | 4 +- .../src/lib/components/runs/RunsTable.svelte | 208 +++++++++--------- 3 files changed, 198 insertions(+), 188 deletions(-) diff --git a/frontend/src/lib/components/RunsPage.svelte b/frontend/src/lib/components/RunsPage.svelte index cffb94c0e0..d2c5c9a2d8 100644 --- a/frontend/src/lib/components/RunsPage.svelte +++ b/frontend/src/lib/components/RunsPage.svelte @@ -776,96 +776,110 @@ {/if} -
+
-
- -
- {#if jobs} - - {:else} -
- {#each new Array(8) as _} - - {/each} -
- {/if} -
-
-
- { - localStorage.setItem('auto_refresh_in_runs', autoRefresh ? 'true' : 'false') - }} - options={{ right: 'Auto-refresh' }} - textClass="whitespace-nowrap" - /> - filters.per_page, + (newPerPage) => { + filters.per_page = newPerPage + if (newPerPage > (jobs?.length ?? 1000)) loadExtra() + } } - } - onCreateItem={(v) => (filters.per_page = parseInt(v))} - items={[ - { value: 25, label: '25' }, - { value: 100, label: '100' }, - { value: 1000, label: '1000' }, - { value: 10000, label: '10000' } - ]} - transformInputSelectedText={(_, v) => `${v} / page`} - /> + onCreateItem={(v) => (filters.per_page = parseInt(v))} + items={[ + { value: 25, label: '25' }, + { value: 100, label: '100' }, + { value: 1000, label: '1000' }, + { value: 10000, label: '10000' } + ]} + transformInputSelectedText={(_, v) => `${v} / page`} + /> +
0}> - {#if selectionMode === 're-run'} - - {:else if selectedIds.length === 1} - {#if selectedIds[0] === '-'} -
There is no information available for this job
- {:else} - +
+ {#if selectionMode === 're-run'} + + {:else if selectedIds.length === 1} + {#if selectedIds[0] === '-'} +
There is no information available for this job
+ {:else} + + {/if} + {:else if selectedIds.length > 1} +
There are {selectedIds.length} jobs selected. Choose 1 to see detailed information
{/if} - {:else if selectedIds.length > 1} -
There are {selectedIds.length} jobs selected. Choose 1 to see detailed information
- {/if} +
{/if} + + diff --git a/frontend/src/lib/components/runs/JobRunsPreview.svelte b/frontend/src/lib/components/runs/JobRunsPreview.svelte index e28e20f8df..629de3f0ca 100644 --- a/frontend/src/lib/components/runs/JobRunsPreview.svelte +++ b/frontend/src/lib/components/runs/JobRunsPreview.svelte @@ -109,8 +109,8 @@ bind:this={jobLoader} /> -
-
+
+
{#if job} {@const isFlow = job?.job_kind == 'flow' || isFlowPreview(job?.job_kind)} { - computeHeight() - }) const dispatch = createEventDispatcher() let scrollToIndex = $state(0) @@ -196,14 +189,12 @@ const showTag = $derived(containerWidth > 700) - computeHeight()} /> -
-
+
- {#if jobs?.length == 0 && (!showExternalJobs || externalJobs?.length == 0)} -
No jobs found for the selected filters.
- {:else} - - {#snippet header()}{/snippet} - {#snippet item({ index, style })} -
- {#if flatJobs} - {@const jobOrDate = flatJobs[index]} +
+ {#if jobs?.length == 0 && (!showExternalJobs || externalJobs?.length == 0)} +
No jobs found for the selected filters.
+ {:else} + + {#snippet header()}{/snippet} + {#snippet item({ index, style })} +
+ {#if flatJobs} + {@const jobOrDate = flatJobs[index]} - {#if jobOrDate} - {#if jobOrDate?.type === 'date'} -
- {jobOrDate.date} -
+ {#if jobOrDate} + {#if jobOrDate?.type === 'date'} +
+ {jobOrDate.date} +
+ {:else} +
+ { + const jobId = jobOrDate.job.id + if (selectionMode) { + if (selectedIds.includes(jobOrDate.job.id)) { + selectedIds = selectedIds.filter((id) => id != jobId) + } else { + selectedIds.push(jobId) + selectedIds = selectedIds + } + } else { + if ( + JSON.stringify(selectedIds) !== JSON.stringify([jobOrDate.job.id]) || + selectedWorkspace !== jobOrDate.job.workspace_id + ) { + selectedWorkspace = jobOrDate.job.workspace_id + selectedIds = [jobOrDate.job.id] + dispatch('select') + } else { + selectedIds = [] + selectedWorkspace = undefined + dispatch('select') + } + } + }} + {activeLabel} + on:filterByLabel + on:filterByPath + on:filterByUser + on:filterByFolder + on:filterByConcurrencyKey + on:filterBySchedule + on:filterByWorker + {containerWidth} + /> +
+ {/if} {:else} -
- { - const jobId = jobOrDate.job.id - if (selectionMode) { - if (selectedIds.includes(jobOrDate.job.id)) { - selectedIds = selectedIds.filter((id) => id != jobId) - } else { - selectedIds.push(jobId) - selectedIds = selectedIds - } - } else { - if ( - JSON.stringify(selectedIds) !== JSON.stringify([jobOrDate.job.id]) || - selectedWorkspace !== jobOrDate.job.workspace_id - ) { - selectedWorkspace = jobOrDate.job.workspace_id - selectedIds = [jobOrDate.job.id] - dispatch('select') - } else { - selectedIds = [] - selectedWorkspace = undefined - dispatch('select') - } - } - }} - {activeLabel} - on:filterByLabel - on:filterByPath - on:filterByUser - on:filterByFolder - on:filterByConcurrencyKey - on:filterBySchedule - on:filterByWorker - {containerWidth} - /> -
+ {JSON.stringify(jobOrDate)} {/if} {:else} - {JSON.stringify(jobOrDate)} +
+
...
+
...
+
...
+
...
+
{/if} - {:else} -
-
...
-
...
-
...
-
...
-
- {/if} -
- {/snippet} - {#snippet footer()} -
{#if !lastFetchWentToEnd && jobs && jobs.length >= perPage} - - {/if}
- {/snippet} -
- {/if} +
+ {/snippet} + {#snippet footer()} +
{#if !lastFetchWentToEnd && jobs && jobs.length >= perPage} + + {/if}
+ {/snippet} + + {/if} +