diff --git a/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowSchedulingTab.tsx b/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowSchedulingTab.tsx index 20dad74e06..fcb4083b70 100644 --- a/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowSchedulingTab.tsx +++ b/src/components/events/partials/ModalTabsAndPages/EventDetailsWorkflowSchedulingTab.tsx @@ -65,17 +65,38 @@ const EventDetailsWorkflowSchedulingTab = ({ return true; }; - const setInitialValues = () => { - let initialConfig = undefined; + const extractDefaultValuesFromWorkflowDefinition = (workflowId: string) => { + const defaultValues: Record = {}; + const workflowDefinition = workflowDefinitions.find(def => def.id === workflowId); + if (workflowDefinition) { + const panel = workflowDefinition.configurationPanelJson; + if (Array.isArray(panel)) { + const fieldset = panel[0].fieldset; + if (fieldset !== undefined) { + fieldset.forEach(function (field) { + defaultValues[field.name] = field.value; + }); + } + } + } + if (defaultValues.length == 0) { + console.warn("No default values extracted from workflow definition: ", workflowId); + } + return defaultValues; + }; + const setInitialValues = () => { + let configFromDatabase = undefined; if (baseWorkflow.configuration) { - initialConfig = parseBooleanInObject(baseWorkflow.configuration); + configFromDatabase = parseBooleanInObject(baseWorkflow.configuration); } - - return { - workflowDefinition: "workflowId" in workflow && !!workflow.workflowId + const workflowId = "workflowId" in workflow && !!workflow.workflowId ? workflow.workflowId - : baseWorkflow.workflowId, + : baseWorkflow.workflowId; + const initialConfigValuesFromWorkflowDef = extractDefaultValuesFromWorkflowDefinition(workflowId); + const initialConfig = { ...initialConfigValuesFromWorkflowDef, ...configFromDatabase }; + return { + workflowDefinition: workflowId, configuration: initialConfig, }; };