19504: Display main process breadcrumb when viewing subprocess output collection
authorStephen Smith <stephen@curii.com>
Wed, 16 Nov 2022 18:24:26 +0000 (13:24 -0500)
committerStephen Smith <stephen@curii.com>
Wed, 16 Nov 2022 18:24:26 +0000 (13:24 -0500)
Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen@curii.com>

src/store/breadcrumbs/breadcrumbs-actions.ts

index d3ea7d23ce50d89b56ec63f8b0a371538540b052..f482c1d48ae28cf4007fc9e702cee0f13540089a 100644 (file)
@@ -38,23 +38,16 @@ const resourceToBreadcrumbIcon = (resource: CollectionResource | ContainerReques
     switch (resource.kind) {
         case ResourceKind.PROJECT:
             return ProjectIcon;
-            break;
-
         case ResourceKind.PROCESS:
             return ProcessBreadcrumbIcon;
-            break;
-
         case ResourceKind.COLLECTION:
             return CollectionIcon;
-            break;
-
         default:
             return undefined;
-            break;
     }
 }
 
-const resourceToBreadcrumb = (resource: CollectionResource | ContainerRequestResource | GroupResource) => ({
+const resourceToBreadcrumb = (resource: CollectionResource | ContainerRequestResource | GroupResource): Breadcrumb => ({
     label: resource.name,
     uuid: resource.uuid,
     icon: resourceToBreadcrumbIcon(resource),
@@ -80,6 +73,8 @@ export const setSidePanelBreadcrumbs = (uuid: string) =>
             const collectionItem = item ? item : await services.collectionService.get(currentUuid);
             const parentProcessItem = await getCollectionParent(collectionItem)(services);
             if (parentProcessItem) {
+                const mainProcessItem = await getProcessParent(parentProcessItem)(services);
+                mainProcessItem && breadcrumbs.push(resourceToBreadcrumb(mainProcessItem));
                 breadcrumbs.push(resourceToBreadcrumb(parentProcessItem));
             }
             dispatch(setBreadcrumbs(breadcrumbs, collectionItem));
@@ -120,6 +115,8 @@ export const setCategoryBreadcrumbs = (uuid: string, category: string) =>
             const collectionItem = item ? item : await services.collectionService.get(currentUuid);
             const parentProcessItem = await getCollectionParent(collectionItem)(services);
             if (parentProcessItem) {
+                const mainProcessItem = await getProcessParent(parentProcessItem)(services);
+                mainProcessItem && breadcrumbs.push(resourceToBreadcrumb(mainProcessItem));
                 breadcrumbs.push(resourceToBreadcrumb(parentProcessItem));
             }
             dispatch(setBreadcrumbs(breadcrumbs, collectionItem));