diff --git a/backend/windmill-worker/src/handle_child.rs b/backend/windmill-worker/src/handle_child.rs index 48441c83c1..82f708be49 100644 --- a/backend/windmill-worker/src/handle_child.rs +++ b/backend/windmill-worker/src/handle_child.rs @@ -459,7 +459,6 @@ pub async fn write_lines( let w_id = w_id.to_string(); let job_id = job_id.clone(); let pg_log_total_size = pg_log_total_size.clone(); - (do_write, write_result) = tokio::spawn(async move { append_job_logs( &job_id, diff --git a/frontend/src/lib/components/HistoricInputs.svelte b/frontend/src/lib/components/HistoricInputs.svelte index ac79c0479b..e202952de7 100644 --- a/frontend/src/lib/components/HistoricInputs.svelte +++ b/frontend/src/lib/components/HistoricInputs.svelte @@ -3,7 +3,7 @@ import { sendUserToast } from '$lib/utils.js' import RunningJobSchemaPicker from '$lib/components/schema/RunningJobSchemaPicker.svelte' import { createEventDispatcher, onDestroy } from 'svelte' - import JobLoader from './runs/JobLoader.svelte' + import JobsLoader from './runs/JobsLoader.svelte' import { DataTable } from '$lib/components/table' import HistoricList from './HistoricList.svelte' import { Loader2 } from 'lucide-svelte' @@ -100,7 +100,7 @@ {#if runnableId} - {#if runnableId} - { + onDone: (items) => { let lastRow = -1 if (datasource?.rowCount && datasource.rowCount <= params.endRow) { @@ -306,10 +306,10 @@ params.failCallback() } }, - cancel: () => { + onCancel: () => { params.failCallback() }, - error: () => { + onError: (error) => { params.failCallback() } }) diff --git a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte index a0f9d7f16a..387065b197 100644 --- a/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte +++ b/frontend/src/lib/components/apps/components/helpers/RunnableComponent.svelte @@ -549,7 +549,8 @@ noToast = true, inlineScriptOverride?: InlineScript, setRunnableJobEditorPanel?: boolean, - dynamicArgsOverride?: Record + dynamicArgsOverride?: Record, + callbacks?: RunnableCallback ): Promise { try { if (cancellableRun && !dynamicArgsOverride) { @@ -560,7 +561,8 @@ noToast, inlineScriptOverride, setRunnableJobEditorPanel, - dynamicArgsOverride + dynamicArgsOverride, + callbacks ) } } catch (e) { diff --git a/frontend/src/lib/components/runs/JobLoader.svelte b/frontend/src/lib/components/runs/JobsLoader.svelte similarity index 100% rename from frontend/src/lib/components/runs/JobLoader.svelte rename to frontend/src/lib/components/runs/JobsLoader.svelte diff --git a/frontend/src/routes/(root)/(logged)/runs/[...path]/+page.svelte b/frontend/src/routes/(root)/(logged)/runs/[...path]/+page.svelte index 5bed9116d6..18ca461b65 100644 --- a/frontend/src/routes/(root)/(logged)/runs/[...path]/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/runs/[...path]/+page.svelte @@ -31,7 +31,7 @@ import RunsQueue from '$lib/components/runs/RunsQueue.svelte' import { twMerge } from 'tailwind-merge' import ManuelDatePicker from '$lib/components/runs/ManuelDatePicker.svelte' - import JobLoader from '$lib/components/runs/JobLoader.svelte' + import JobsLoader from '$lib/components/runs/JobsLoader.svelte' import { AlertTriangle, Calendar, ChevronDown, Clock } from 'lucide-svelte' import ConcurrentJobsChart from '$lib/components/ConcurrentJobsChart.svelte' import ToggleButtonGroup from '$lib/components/common/toggleButton-v2/ToggleButtonGroup.svelte' @@ -198,7 +198,7 @@ } let innerWidth = $state(window.innerWidth) - let jobLoader: JobLoader | undefined = $state(undefined) + let jobsLoader: JobsLoader | undefined = $state(undefined) let externalJobs: Job[] | undefined = $state(undefined) let graph: 'RunChart' | 'ConcurrencyChart' = $state( @@ -342,7 +342,7 @@ if (resultError == '' && argError == '') { filterTimeout && clearTimeout(filterTimeout) filterTimeout = setTimeout(() => { - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }, 2000) } } @@ -359,7 +359,7 @@ batchReRunOptions = { flow: {}, script: {} } selectionMode = false selectedWorkspace = undefined - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) } async function loadUsernames(): Promise { @@ -548,7 +548,7 @@ requestBody: uuidsToCancel }) selectedIds = [] - jobLoader?.loadJobs(minTs, maxTs, true, true) + jobsLoader?.loadJobs(minTs, maxTs, true, true) sendUserToast(`Canceled ${uuids.length} jobs`) selectionMode = false } @@ -653,7 +653,7 @@ selectedIds = [] batchReRunOptions = { flow: {}, script: {} } - jobLoader?.loadJobs(minTs, maxTs, true, true) + jobsLoader?.loadJobs(minTs, maxTs, true, true) selectionMode = false } @@ -689,8 +689,8 @@ } async function loadExtra() { - if (jobLoader) { - lastFetchWentToEnd = await jobLoader.loadExtraJobs() + if (jobsLoader) { + lastFetchWentToEnd = await jobsLoader.loadExtraJobs() console.log(lastFetchWentToEnd) } } @@ -772,7 +772,7 @@ }) - @@ -982,7 +982,7 @@ minTs = e.detail.min.toISOString() maxTs = e.detail.max.toISOString() manualDatePicker?.resetChoice() - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }} on:pointClicked={(e) => { runsTable?.scrollToRun(e.detail) @@ -997,7 +997,7 @@ on:zoom={async (e) => { minTs = e.detail.min.toISOString() maxTs = e.detail.max.toISOString() - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }} /> {/if} @@ -1071,14 +1071,14 @@ minTs = new Date(detail).toISOString() calendarChangeTimeout && clearTimeout(calendarChangeTimeout) calendarChangeTimeout = setTimeout(() => { - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }, 1000) }} on:clear={async () => { minTs = undefined calendarChangeTimeout && clearTimeout(calendarChangeTimeout) calendarChangeTimeout = setTimeout(() => { - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }, 1000) }} /> @@ -1100,14 +1100,14 @@ maxTs = new Date(detail).toISOString() calendarChangeTimeout && clearTimeout(calendarChangeTimeout) calendarChangeTimeout = setTimeout(() => { - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }, 1000) }} on:clear={async () => { maxTs = undefined calendarChangeTimeout && clearTimeout(calendarChangeTimeout) calendarChangeTimeout = setTimeout(() => { - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }, 1000) }} /> @@ -1119,7 +1119,7 @@ { lastFetchWentToEnd = false - jobLoader?.loadJobs(minTs, maxTs, true, true) + jobsLoader?.loadJobs(minTs, maxTs, true, true) }} bind:minTs bind:maxTs @@ -1311,7 +1311,7 @@ minTs = e.detail.min.toISOString() maxTs = e.detail.max.toISOString() manualDatePicker?.resetChoice() - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }} on:pointClicked={(e) => { runsTable?.scrollToRun(e.detail) @@ -1326,7 +1326,7 @@ on:zoom={async (e) => { minTs = e.detail.min.toISOString() maxTs = e.detail.max.toISOString() - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }} /> {/if} @@ -1405,14 +1405,14 @@ minTs = new Date(detail).toISOString() calendarChangeTimeout && clearTimeout(calendarChangeTimeout) calendarChangeTimeout = setTimeout(() => { - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }, 1000) }} on:clear={async () => { minTs = undefined calendarChangeTimeout && clearTimeout(calendarChangeTimeout) calendarChangeTimeout = setTimeout(() => { - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }, 1000) }} /> @@ -1435,14 +1435,14 @@ maxTs = new Date(detail).toISOString() calendarChangeTimeout && clearTimeout(calendarChangeTimeout) calendarChangeTimeout = setTimeout(() => { - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }, 1000) }} on:clear={async () => { maxTs = undefined calendarChangeTimeout && clearTimeout(calendarChangeTimeout) calendarChangeTimeout = setTimeout(() => { - jobLoader?.loadJobs(minTs, maxTs, true) + jobsLoader?.loadJobs(minTs, maxTs, true) }, 1000) }} /> @@ -1454,7 +1454,7 @@ { lastFetchWentToEnd = false - jobLoader?.loadJobs(minTs, maxTs, true, true) + jobsLoader?.loadJobs(minTs, maxTs, true, true) }} bind:this={manualDatePicker} bind:minTs