{#snippet runsHint()} All past and schedule executions of scripts and flows, including previews. You only see your own runs or runs of groups you belong to unless you are an admin. {/snippet} {#snippet runsFilter(cls: string)} {/snippet} {#snippet filterRow()} {@render runsFilter('relative w-full min-w-0')} {/snippet} {#snippet headerActions()}
{ jobsFilter('waiting') }} onJobsSuspended={() => { jobsFilter('suspended') }} small />
{#if !filterBelow}{@render runsFilter('relative w-[18rem] shrink-0')}{/if} jobsLoader?.loadJobs(true)} loading={jobsLoader?.loading} items={runsTimeframes} bind:value={_timeframe.val} />
{#if !hosted} {/if} {/snippet} { const func = askingForConfirmation?.onConfirm await func?.(forceCancelInPopup) askingForConfirmation = undefined }} type={askingForConfirmation?.type} loading={askingForConfirmation?.loading} on:canceled={() => { askingForConfirmation = undefined }} > {#if askingForConfirmation?.description}

{askingForConfirmation.description}

{/if} {#if askingForConfirmation?.preContent}
{askingForConfirmation.preContent}
{#if forceCancelInPopup}

Force cancel is enabled. This is dangerous, only do this if you have no alternatives. Instead of being gracefully cancelled, all jobs will be immediately sent to the completed job table regardless of them being processed or not or part of running flows. You may end up in an inconsistent state.

{/if} {/if}
{#if selectedIds.length === 1} {#if selectedIds[0] === '-'}
There is no information available for this job
{:else} {#await import('$lib/components/runs/JobRunsPreview.svelte') then JobRunsPreview} {/await} {/if} {/if}
{ if (!hosted) reset() }} /> {#if $operatingWorkspace && !$roleCaps.visibility.runs} {:else}
{#if hosted}
{@render headerActions()}
{:else} {/if}
{#snippet extra()} {#if warnJobLimit} {warnJobLimitMsg} {/if} {/snippet} {#if graph !== 'RunChart'} perPage.val, (newPerPage) => { perPage.val = newPerPage if (newPerPage > (jobs?.length ?? 1000)) loadExtra() } } onCreateItem={(v) => (perPage.val = parseInt(v))} items={[ { value: 25, label: '25' }, { value: 100, label: '100' }, { value: 1000, label: '1000' }, { value: 10000, label: '10000' } ]} transformInputSelectedText={(_, v) => `${v} / page`} />
{/snippet} {#snippet sidePanel()}
{#if manualSelectionMode === 'cancel'}
{:else if manualSelectionMode === 'resolve'}

Resolving keeps the run's status but marks it as handled in the runs list.

{:else if batchRerunOptionsIsOpen} {@render batchRerunOptions()} {:else if selectedIds.length === 1} {#if selectedIds[0] === '-'}
There is no information available for this job
{:else} {@render jobPreview()} {/if} {:else if selectedIds.length > 1}
{selectedIds.length} jobs selected
{/if}
{/snippet} {#snippet runPage()} {@render runPageFrame(runPageBody)} {/snippet} {#snippet runPagePlaceholder()} {@render runPageFrame(runPageSkeleton)} {/snippet} {#snippet runPageFrame(body: Snippet)}
{@render body()}
{/snippet} {#snippet runPageBody()} {#if batchRerunOptionsIsOpen} {@render batchRerunOptions()} {:else if selectedIds[0] === '-'}
There is no information available for this job
{:else if selectedIds.length === 1} {@render jobPreview(runPageSkeleton)} {/if} {/snippet} {#snippet runPageSkeleton()} {/snippet} {#snippet batchRerunOptions()}
{#if filterMatchedIds}
{filterMatchedIds.length} jobs match the filters, re-run at most rerunLimit?.toString() ?? '', (v) => setRerunLimit(v ? parseInt(v.toString()) : undefined) } />
{#if filters.val.resolved === 'unresolved'} Oldest first. Re-run jobs are marked resolved, so the next batch starts where this one stops. {:else}
Resolved runs are included, so the next batch will pick these same jobs again.
{/if}
{/if}
{#await import('$lib/components/runs/BatchReRunOptionsPane.svelte') then BatchReRunOptionsPane} ((batchRerunOptionsIsOpen = false), (manualSelectionMode = undefined))} onConfirm={async (options) => { await onReRunSelectedJobs(options) }} /> {/await}
{/snippet} {#snippet jobPreview(pending?: Snippet)} {#await import('$lib/components/runs/JobRunsPreview.svelte')} {@render pending?.()} {:then JobRunsPreview} jobsLoader?.loadJobs(true, true)} /> {/await} {/snippet}