19482: Fix context menu, breadcrumbs
[arvados-workbench2.git] / src / store / workbench / workbench-actions.ts
index b2da727b6615820d63639a67be27dcada870dc68..cd15111308238fa8187f67f8902c268fc4fb55f2 100644 (file)
@@ -32,6 +32,7 @@ import {
     setGroupDetailsBreadcrumbs,
     setGroupsBreadcrumbs,
     setProcessBreadcrumbs,
+    setWorkflowBreadcrumbs,
     setSharedWithMeBreadcrumbs,
     setSidePanelBreadcrumbs,
     setTrashBreadcrumbs,
@@ -579,11 +580,25 @@ export const loadProcess = (uuid: string) =>
     handleFirstTimeLoad(async (dispatch: Dispatch, getState: () => RootState) => {
         dispatch<any>(loadProcessPanel(uuid));
         const process = await dispatch<any>(processesActions.loadProcess(uuid));
-        await dispatch<any>(
-            activateSidePanelTreeItem(process.containerRequest.ownerUuid)
-        );
-        dispatch<any>(setProcessBreadcrumbs(uuid));
-        dispatch<any>(loadDetailsPanel(uuid));
+        if (process) {
+            await dispatch<any>(
+                activateSidePanelTreeItem(process.containerRequest.ownerUuid)
+            );
+            dispatch<any>(setProcessBreadcrumbs(uuid));
+            dispatch<any>(loadDetailsPanel(uuid));
+        }
+    });
+
+export const loadRegisteredWorkflow = (uuid: string) =>
+    handleFirstTimeLoad(async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+        const workflow = await services.workflowService.get(uuid);
+        if (workflow) {
+            dispatch<any>(updateResources([workflow]));
+            await dispatch<any>(
+                activateSidePanelTreeItem(workflow.ownerUuid)
+            );
+            dispatch<any>(setWorkflowBreadcrumbs(uuid));
+        }
     });
 
 export const updateProcess =
@@ -662,6 +677,7 @@ export const copyProcess =
                         kind: SnackbarKind.SUCCESS,
                     })
                 );
+                dispatch<any>(navigateTo(process.uuid));
             } catch (e) {
                 dispatch(
                     snackbarActions.OPEN_SNACKBAR({