From: Peter Amstutz Date: Thu, 23 Mar 2023 21:19:01 +0000 (-0400) Subject: 19482: Breadcrumbs almost work right X-Git-Tag: 2.6.0~6^2~3 X-Git-Url: https://git.arvados.org/arvados-workbench2.git/commitdiff_plain/c872f6b8420d83f2b378a274c412e3bc1865cd8c 19482: Breadcrumbs almost work right Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- diff --git a/src/store/breadcrumbs/breadcrumbs-actions.ts b/src/store/breadcrumbs/breadcrumbs-actions.ts index 7d6f182d..a7e42510 100644 --- a/src/store/breadcrumbs/breadcrumbs-actions.ts +++ b/src/store/breadcrumbs/breadcrumbs-actions.ts @@ -142,6 +142,9 @@ export const setCategoryBreadcrumbs = (uuid: string, category: string) => breadcrumbs.push(resourceToBreadcrumb(parentProcessItem)); } dispatch(setBreadcrumbs(breadcrumbs, processItem)); + } else if (uuidKind === ResourceKind.WORKFLOW) { + const workflowItem = await services.workflowService.get(currentUuid); + dispatch(setBreadcrumbs(breadcrumbs, workflowItem)); } dispatch(setBreadcrumbs(breadcrumbs)); }; @@ -206,15 +209,6 @@ export const setProcessBreadcrumbs = (processUuid: string) => } }; -export const setWorkflowBreadcrumbs = (workflowUuid: string) => - (dispatch: Dispatch, getState: () => RootState) => { - const { resources } = getState(); - const workflow = getResource(workflowUuid)(resources); - if (workflow) { - dispatch(setProjectBreadcrumbs(workflow.ownerUuid)); - } - }; - export const setGroupsBreadcrumbs = () => setBreadcrumbs([{ label: SidePanelTreeCategory.GROUPS, diff --git a/src/store/workbench/workbench-actions.ts b/src/store/workbench/workbench-actions.ts index cd151113..f4b65e63 100644 --- a/src/store/workbench/workbench-actions.ts +++ b/src/store/workbench/workbench-actions.ts @@ -32,7 +32,6 @@ import { setGroupDetailsBreadcrumbs, setGroupsBreadcrumbs, setProcessBreadcrumbs, - setWorkflowBreadcrumbs, setSharedWithMeBreadcrumbs, setSidePanelBreadcrumbs, setTrashBreadcrumbs, @@ -590,14 +589,30 @@ export const loadProcess = (uuid: string) => }); export const loadRegisteredWorkflow = (uuid: string) => - handleFirstTimeLoad(async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { - const workflow = await services.workflowService.get(uuid); - if (workflow) { - dispatch(updateResources([workflow])); - await dispatch( - activateSidePanelTreeItem(workflow.ownerUuid) - ); - dispatch(setWorkflowBreadcrumbs(uuid)); + handleFirstTimeLoad(async (dispatch: Dispatch, + getState: () => RootState, + services: ServiceRepository) => { + + const userUuid = getUserUuid(getState()); + if (userUuid) { + const match = await loadGroupContentsResource({ + uuid, + userUuid, + services, + }); + match({ + OWNED: (workflow) => { + dispatch(updateResources([workflow])); + dispatch(activateSidePanelTreeItem(workflow.ownerUuid)); + dispatch(setSidePanelBreadcrumbs(workflow.ownerUuid)); + }, + SHARED: (workflow) => { + dispatch(updateResources([workflow])); + dispatch(activateSidePanelTreeItem(workflow.ownerUuid)); + dispatch(setSharedWithMeBreadcrumbs(workflow.ownerUuid)); + }, + TRASHED: () => { } + }); } }); @@ -889,8 +904,12 @@ const loadGroupContentsResource = async (params: { resource = await params.services.collectionService.get(params.uuid); } else if (kind === ResourceKind.PROJECT) { resource = await params.services.projectService.get(params.uuid); - } else { + } else if (kind === ResourceKind.WORKFLOW) { + resource = await params.services.workflowService.get(params.uuid); + } else if (kind === ResourceKind.CONTAINER_REQUEST) { resource = await params.services.containerRequestService.get(params.uuid); + } else { + throw new Error("loadGroupContentsResource unsupported kind " + kind) } handler = groupContentsHandlers.SHARED(resource); } diff --git a/src/views-components/details-panel/workflow-details.tsx b/src/views-components/details-panel/workflow-details.tsx index 15ddbfe0..ca224b1d 100644 --- a/src/views-components/details-panel/workflow-details.tsx +++ b/src/views-components/details-panel/workflow-details.tsx @@ -130,7 +130,7 @@ export const WorkflowDetailsAttributes = connect(mapStateToProps, mapDispatchToP 0), }; - return <> + return {param.id} @@ -424,7 +424,7 @@ const ProcessIOPreview = withStyles(styles)( [classes.noBorderRow]: (i < rest.length - 1), [classes.secondaryRow]: val.secondary, }; - return + return {showLabel && } @@ -437,10 +437,10 @@ const ProcessIOPreview = withStyles(styles)( })} - ; + ; })} - ; + ; }); interface ProcessValuePreviewProps {