Add presets actions to run-process-panel
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Fri, 7 Dec 2018 15:23:10 +0000 (16:23 +0100)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Fri, 7 Dec 2018 15:23:10 +0000 (16:23 +0100)
Feature #14490

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/store/run-process-panel/run-process-panel-actions.ts

index f1d2d2fd55aab72f72e03907f9e2460157cb4720..786dedaa5c4c7c44baa8d3b5f5e6df77fb8c2536 100644 (file)
@@ -25,6 +25,7 @@ export const runProcessPanelActions = unionize({
     SET_STEP_CHANGED: ofType<boolean>(),
     SET_WORKFLOWS: ofType<WorkflowResource[]>(),
     SET_SELECTED_WORKFLOW: ofType<WorkflowResource>(),
+    SET_WORKFLOW_PRESETS: ofType<WorkflowResource[]>(),
     SEARCH_WORKFLOWS: ofType<string>(),
     RESET_RUN_PROCESS_PANEL: ofType<{}>(),
 });
@@ -76,12 +77,20 @@ export const setWorkflow = (workflow: WorkflowResource, isWorkflowChanged = true
         if (isStepChanged && isWorkflowChanged) {
             dispatch(runProcessPanelActions.SET_STEP_CHANGED(false));
             dispatch(runProcessPanelActions.SET_SELECTED_WORKFLOW(workflow));
+            dispatch<any>(loadPresets(workflow.uuid));
         }
         if (!isWorkflowChanged) {
             dispatch(runProcessPanelActions.SET_SELECTED_WORKFLOW(workflow));
         }
     };
 
+const loadPresets = (workflowUuid: string) =>
+    async (dispatch: Dispatch<any>, _: () => RootState, { workflowService }: ServiceRepository) => {
+        const { items } = await workflowService.presets(workflowUuid);
+        dispatch(runProcessPanelActions.SET_WORKFLOW_PRESETS(items));
+    };
+
+
 export const goToStep = (step: number) =>
     (dispatch: Dispatch, getState: () => RootState) => {
         if (step === 1) {