From 86dba8691348993a0889dc12fed80adfa263b2f9 Mon Sep 17 00:00:00 2001 From: HugoCasa Date: Fri, 20 Dec 2024 21:13:27 +0100 Subject: [PATCH] fix frontend checks for script and flow preview jobs (#4961) --- .../lib/components/ExecutionDuration.svelte | 3 ++- .../components/FlowStatusViewerInner.svelte | 8 ++------ .../src/lib/components/TestJobLoader.svelte | 3 ++- .../apps/editor/AppEditorHeader.svelte | 5 +++-- .../src/lib/components/runs/JobPreview.svelte | 10 +++++----- frontend/src/lib/components/runs/RunRow.svelte | 16 +++++++++++----- frontend/src/lib/utils.ts | 10 ++++++++++ .../(root)/(logged)/run/[...run]/+page.svelte | 18 ++++++++++-------- 8 files changed, 45 insertions(+), 28 deletions(-) diff --git a/frontend/src/lib/components/ExecutionDuration.svelte b/frontend/src/lib/components/ExecutionDuration.svelte index aa42d428ce..3be235583b 100644 --- a/frontend/src/lib/components/ExecutionDuration.svelte +++ b/frontend/src/lib/components/ExecutionDuration.svelte @@ -1,5 +1,6 @@ @@ -110,7 +117,7 @@ {#if job && 'duration_ms' in job && job.duration_ms != undefined} (Ran in {msToReadableTime( job.duration_ms - )}{#if job.job_kind == 'flow' || job.job_kind == 'flowpreview'} total{/if}) + )}{#if job.job_kind == 'flow' || isFlowPreview(job.job_kind)} total{/if}) {/if} {#if job && (job.self_wait_time_ms || job.aggregate_wait_time_ms)} ) - {:else} Waiting for executor (created ) {/if} @@ -176,7 +182,7 @@ {/if} - {:else if 'job_kind' in job && job.job_kind == 'preview'} + {:else if 'job_kind' in job && isScriptPreview(job.job_kind)} Preview without path {:else if 'job_kind' in job && job.job_kind == 'dependencies'} diff --git a/frontend/src/lib/utils.ts b/frontend/src/lib/utils.ts index 7dde9aeb2d..22f8518ac8 100644 --- a/frontend/src/lib/utils.ts +++ b/frontend/src/lib/utils.ts @@ -1089,3 +1089,13 @@ export function validateFileExtension(ext: string) { const validExtensionRegex = /^[a-zA-Z0-9]+([._][a-zA-Z0-9]+)*$/ return validExtensionRegex.test(ext) } + +export function isFlowPreview(job_kind: Job['job_kind'] | undefined) { + return !!job_kind && (job_kind === 'flowpreview' || job_kind === 'flownode') +} + +export function isScriptPreview(job_kind: Job['job_kind'] | undefined) { + return ( + !!job_kind && (job_kind === 'preview' || job_kind === 'flowscript' || job_kind === 'appscript') + ) +} diff --git a/frontend/src/routes/(root)/(logged)/run/[...run]/+page.svelte b/frontend/src/routes/(root)/(logged)/run/[...run]/+page.svelte index 02bc163746..7a350b7733 100644 --- a/frontend/src/routes/(root)/(logged)/run/[...run]/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/run/[...run]/+page.svelte @@ -19,6 +19,8 @@ displayDate, emptyString, encodeState, + isFlowPreview, + isScriptPreview, truncateHash, truncateRev } from '$lib/utils' @@ -288,7 +290,7 @@ } function forkPreview() { - if (job?.job_kind == 'flowpreview') { + if (isFlowPreview(job?.job_kind)) { $initialArgsStore = job?.args const state = { flow: { value: job?.raw_flow }, @@ -355,7 +357,7 @@ -{#if (job?.job_kind == 'flow' || job?.job_kind == 'flowpreview') && job?.['running'] && job?.parent_job == undefined} +{#if (job?.job_kind == 'flow' || isFlowPreview(job?.job_kind)) && job?.['running'] && job?.parent_job == undefined} @@ -472,7 +474,7 @@ {@const stem = `/${job?.job_kind}s`} {@const isScript = job?.job_kind === 'script'} {@const viewHref = `${stem}/get/${isScript ? job?.script_hash : job?.script_path}`} - {#if (job?.job_kind == 'flow' || job?.job_kind == 'flowpreview') && job?.['running'] && job?.parent_job == undefined} + {#if (job?.job_kind == 'flow' || isFlowPreview(job?.job_kind)) && job?.['running'] && job?.parent_job == undefined}
@@ -488,7 +490,7 @@
{/if} - {#if job?.job_kind === 'flowpreview' || job?.job_kind === 'preview'} + {#if isFlowPreview(job?.job_kind) || isScriptPreview(job?.job_kind)} {/if} {#if persistentScriptDefinition !== undefined} @@ -833,8 +835,8 @@

Scheduled to be executed later: {displayDate(job?.['scheduled_for'])}

{/if} - {#if job?.job_kind !== 'flow' && job?.job_kind !== 'flowpreview' && job?.job_kind !== 'singlescriptflow' && job?.job_kind !== 'flownode'} - {#if ['python3', 'bun', 'deno'].includes(job?.language ?? '') && (job?.job_kind == 'script' || job?.job_kind == 'preview')} + {#if job?.job_kind !== 'flow' && job?.job_kind !== 'singlescriptflow' && !isFlowPreview(job?.job_kind)} + {#if ['python3', 'bun', 'deno'].includes(job?.language ?? '') && (job?.job_kind == 'script' || isScriptPreview(job?.job_kind))} {/if}
@@ -854,7 +856,7 @@ Result Logs Metrics - {#if job?.job_kind == 'preview'} + {#if isScriptPreview(job?.job_kind)} Code {/if}