From 3069a7d530cd94a68e2d2f030f3b5527dab0676a Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Fri, 31 Jan 2025 19:25:50 +0100 Subject: [PATCH] fix: improve history and saved inputs rever mechanism --- backend/windmill-api/openapi.yaml | 2 +- frontend/src/lib/components/FlowPreviewContent.svelte | 7 ++++++- frontend/src/lib/components/HistoricInputs.svelte | 6 +----- frontend/src/lib/components/SavedInputsPicker.svelte | 3 --- frontend/src/lib/components/SavedInputsV2.svelte | 5 +++++ .../src/lib/components/SchemaFormWithArgPicker.svelte | 11 +++++++++++ .../src/lib/components/flows/content/FlowInput.svelte | 7 ++++++- .../lib/components/schema/InputSelectedBadge.svelte | 2 +- .../(root)/(logged)/flows/get/[...path]/+page.svelte | 10 ++++++++-- .../(logged)/scripts/get/[...hash]/+page.svelte | 10 +++++++++- 10 files changed, 48 insertions(+), 15 deletions(-) diff --git a/backend/windmill-api/openapi.yaml b/backend/windmill-api/openapi.yaml index 5fee4cd50271a..0f3765793e36c 100644 --- a/backend/windmill-api/openapi.yaml +++ b/backend/windmill-api/openapi.yaml @@ -4444,7 +4444,7 @@ paths: /w/{workspace}/scripts/delete/p/{path}: post: - summary: delete all scripts at a given path (require admin) + summary: delete script at a given path (require admin) operationId: deleteScriptByPath tags: - script diff --git a/frontend/src/lib/components/FlowPreviewContent.svelte b/frontend/src/lib/components/FlowPreviewContent.svelte index c9ab9c04f09a1..50732cc8e2bc7 100644 --- a/frontend/src/lib/components/FlowPreviewContent.svelte +++ b/frontend/src/lib/components/FlowPreviewContent.svelte @@ -161,6 +161,7 @@ $: selectedJobStep !== undefined && onSelectedJobStepChange() let renderCount: number = 0 + let schemaFormWithArgPicker: SchemaFormWithArgPicker | undefined = undefined @@ -324,6 +325,7 @@
- + schemaFormWithArgPicker?.resetSelected()} + {inputSelected} + />
{ - if (selected) { - resetSelected(true) - } - }} >
diff --git a/frontend/src/lib/components/SavedInputsPicker.svelte b/frontend/src/lib/components/SavedInputsPicker.svelte index 2fbb7ca143139..01dd996a906b5 100644 --- a/frontend/src/lib/components/SavedInputsPicker.svelte +++ b/frontend/src/lib/components/SavedInputsPicker.svelte @@ -194,9 +194,6 @@
{ - resetSelected(true) - }} > {#if !noButton}
diff --git a/frontend/src/lib/components/SavedInputsV2.svelte b/frontend/src/lib/components/SavedInputsV2.svelte index 536d35a04348a..627959573da57 100644 --- a/frontend/src/lib/components/SavedInputsV2.svelte +++ b/frontend/src/lib/components/SavedInputsV2.svelte @@ -18,6 +18,11 @@ export let isValid: boolean export let args: object + export function resetSelected() { + historicInputs?.resetSelected(true) + savedInputsPicker?.resetSelected(true) + } + let savedArgs: any = undefined let runnableType: RunnableType | undefined = undefined let savedInputsPicker: SavedInputsPicker | undefined = undefined diff --git a/frontend/src/lib/components/SchemaFormWithArgPicker.svelte b/frontend/src/lib/components/SchemaFormWithArgPicker.svelte index 176221497ca9a..320591e557615 100644 --- a/frontend/src/lib/components/SchemaFormWithArgPicker.svelte +++ b/frontend/src/lib/components/SchemaFormWithArgPicker.svelte @@ -19,6 +19,13 @@ const dispatch = createEventDispatcher() + export function resetSelected() { + console.log('resetSelected') + historicInputs?.resetSelected(true) + savedInputsPicker?.resetSelected(true) + captureTable?.resetSelected(true) + } + const getDropdownItems = () => { return [ { @@ -71,7 +78,9 @@ let dropdownItems: any let rightPanelOpen = false + let savedInputsPicker: SavedInputsPicker | undefined = undefined let loading = false + let captureTable: CaptureTable | undefined = undefined let historicInputs: HistoricInputs | undefined = undefined $: selectedTab, (dropdownItems = getDropdownItems()) @@ -119,6 +128,7 @@ {runnableId} {runnableType} {previewArgs} + bind:this={savedInputsPicker} on:select={(e) => { dispatch('select', { payload: e.detail, type: 'saved' }) }} @@ -138,6 +148,7 @@ on:select={(e) => { dispatch('select', { payload: e.detail, type: 'captures' }) }} + bind:this={captureTable} isFlow={true} headless={true} addButton={false} diff --git a/frontend/src/lib/components/flows/content/FlowInput.svelte b/frontend/src/lib/components/flows/content/FlowInput.svelte index 8c76412bbd3c6..ddd10204d76d8 100644 --- a/frontend/src/lib/components/flows/content/FlowInput.svelte +++ b/frontend/src/lib/components/flows/content/FlowInput.svelte @@ -308,6 +308,7 @@ savedPreviewArgs = undefined } } + let historicInputs: HistoricInputs | undefined = undefined @@ -348,6 +349,7 @@ {diff} disableDnd={!!previewSchema} on:rejectChange={(e) => { + console.log('rejectChange') rejectChange(e.detail).then(() => { updatePreviewSchema(selectedSchema) }) @@ -422,7 +424,9 @@ size="xs" startIcon={{ icon: X }} shortCut={{ key: 'esc', withoutModifier: true }} - nonCaptureEvent + on:click={() => { + historicInputs?.resetSelected(true) + }} />
{:else} @@ -460,6 +464,7 @@ }} > { diff --git a/frontend/src/lib/components/schema/InputSelectedBadge.svelte b/frontend/src/lib/components/schema/InputSelectedBadge.svelte index 493235294cc7e..fce85ccf5deae 100644 --- a/frontend/src/lib/components/schema/InputSelectedBadge.svelte +++ b/frontend/src/lib/components/schema/InputSelectedBadge.svelte @@ -24,7 +24,7 @@ size="xs2" startIcon={{ icon: X }} shortCut={{ key: 'esc', withoutModifier: true }} - nonCaptureEvent + on:click />
diff --git a/frontend/src/routes/(root)/(logged)/flows/get/[...path]/+page.svelte b/frontend/src/routes/(root)/(logged)/flows/get/[...path]/+page.svelte index aa26013684ae5..6425c3d5a3cdd 100644 --- a/frontend/src/routes/(root)/(logged)/flows/get/[...path]/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/flows/get/[...path]/+page.svelte @@ -344,7 +344,7 @@ let stepDetail: FlowModule | string | undefined = undefined let token = 'TOKEN_TO_CREATE' let rightPaneSelected = 'saved_inputs' - + let savedInputsV2: SavedInputsV2 | undefined = undefined let flowHistory: FlowHistory | undefined = undefined @@ -449,7 +449,12 @@
- + { + savedInputsV2?.resetSelected() + }} + {inputSelected} + />
- + { + savedInputsV2?.resetSelected() + }} + {inputSelected} + /> {#if args}