diff --git a/src/lib/components/workflow-actions.svelte b/src/lib/components/workflow-actions.svelte index 7dfd88e8eb..23c9e57b09 100644 --- a/src/lib/components/workflow-actions.svelte +++ b/src/lib/components/workflow-actions.svelte @@ -199,6 +199,7 @@ routeForWorkflowStart({ namespace, workflowId: workflow.id, + runId: workflow.runId, taskQueue: workflow.taskQueue, workflowType: workflow.name, }), @@ -234,6 +235,7 @@ routeForWorkflowStart({ namespace, workflowId: workflow.id, + runId: workflow.runId, taskQueue: workflow.taskQueue, workflowType: workflow.name, }), diff --git a/src/lib/components/workflow/start-workflow-button.svelte b/src/lib/components/workflow/start-workflow-button.svelte index 4f58280bb0..5f349bf179 100644 --- a/src/lib/components/workflow/start-workflow-button.svelte +++ b/src/lib/components/workflow/start-workflow-button.svelte @@ -8,12 +8,14 @@ export let namespace: string; export let workflowId: string; + export let runId: string; export let taskQueue: string; export let workflowType: string; $: href = routeForWorkflowStart({ namespace, workflowId, + runId, taskQueue, workflowType, }); diff --git a/src/lib/components/workflow/workflows-summary-configurable-table/table-row.svelte b/src/lib/components/workflow/workflows-summary-configurable-table/table-row.svelte index 286dfcd5f4..cef720e10c 100644 --- a/src/lib/components/workflow/workflows-summary-configurable-table/table-row.svelte +++ b/src/lib/components/workflow/workflows-summary-configurable-table/table-row.svelte @@ -67,6 +67,7 @@ {#if !workflowCreateDisabled($page)} { + const getInitialValues = async ({ + runId, + workflowId, + workflowType, + }: { + runId: string; + workflowId: string; + workflowType: string; + }) => { const initialValues = await fetchInitialValuesForStartWorkflow({ namespace, - workflowId: id, - workflowType: type, + runId, + workflowId, + workflowType, }); input = initialValues.input; encoding.set(initialValues.encoding); diff --git a/src/lib/services/workflow-service.ts b/src/lib/services/workflow-service.ts index 2b17bf573e..73f398d656 100644 --- a/src/lib/services/workflow-service.ts +++ b/src/lib/services/workflow-service.ts @@ -656,10 +656,12 @@ export async function startWorkflow({ export const fetchInitialValuesForStartWorkflow = async ({ namespace, + runId, workflowType, workflowId, }: { namespace: string; + runId?: string; workflowType?: string; workflowId?: string; }): Promise<{ @@ -682,15 +684,18 @@ export const fetchInitialValuesForStartWorkflow = async ({ details: '', }; try { - let query = ''; - if (workflowType && workflowId) { - query = `WorkflowType = "${workflowType}" AND WorkflowId = "${workflowId}"`; - } else if (workflowType) { - query = `WorkflowType = "${workflowType}"`; - } else if (workflowId) { - query = `WorkflowId = "${workflowId}"`; + const searchParams = []; + if (runId) { + searchParams.push(`RunId = "${runId}"`); + } + if (workflowType) { + searchParams.push(`WorkflowType = "${workflowType}"`); + } + if (workflowId) { + searchParams.push(`WorkflowId = "${workflowId}"`); } + const query = searchParams.join(' AND '); const route = routeForApi('workflows', { namespace }); const workflows = await requestFromAPI( route, diff --git a/src/lib/utilities/route-for.ts b/src/lib/utilities/route-for.ts index 828396af62..8097460aad 100644 --- a/src/lib/utilities/route-for.ts +++ b/src/lib/utilities/route-for.ts @@ -94,15 +94,22 @@ export const routeForWorkflows = (parameters: NamespaceParameter): string => { }; type StartWorkflowParameters = NamespaceParameter & - Partial<{ workflowId: string; taskQueue: string; workflowType: string }>; + Partial<{ + workflowId: string; + runId: string; + taskQueue: string; + workflowType: string; + }>; export const routeForWorkflowStart = ({ namespace, workflowId, + runId, taskQueue, workflowType, }: StartWorkflowParameters): string => { return toURL(`${routeForNamespace({ namespace })}/workflows/start-workflow`, { workflowId: workflowId || '', + runId: runId || '', taskQueue: taskQueue || '', workflowType: workflowType || '', });