From b375eb7f05d9862716f5c27ef8450043453c52ba Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Fri, 20 May 2022 16:58:48 -0400 Subject: [PATCH] 19143: Make workflows show up in projects view WIP Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- src/common/labels.ts | 2 ++ src/index.tsx | 2 ++ src/store/context-menu/context-menu-actions.ts | 2 ++ src/store/resource-type-filters/resource-type-filters.ts | 8 +++++++- src/views-components/context-menu/context-menu.tsx | 3 ++- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/common/labels.ts b/src/common/labels.ts index 682513fb..e784cec0 100644 --- a/src/common/labels.ts +++ b/src/common/labels.ts @@ -23,6 +23,8 @@ export const resourceLabel = (type: string, subtype = '') => { return "Group"; case ResourceKind.VIRTUAL_MACHINE: return "Virtual Machine"; + case ResourceKind.WORKFLOW: + return "Workflow"; default: return "Unknown"; } diff --git a/src/index.tsx b/src/index.tsx index f928ea8a..03840d49 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -62,6 +62,7 @@ import { linkActionSet } from 'views-components/context-menu/action-sets/link-ac import { loadFileViewersConfig } from 'store/file-viewers/file-viewers-actions'; import { filterGroupAdminActionSet, projectAdminActionSet } from 'views-components/context-menu/action-sets/project-admin-action-set'; import { permissionEditActionSet } from 'views-components/context-menu/action-sets/permission-edit-action-set'; +import { workflowActionSet } from 'views-components/context-menu/action-sets/workflow-action-set'; import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions"; import { openNotFoundDialog } from './store/not-found-panel/not-found-panel-action'; import { storeRedirects } from './common/redirect-to'; @@ -102,6 +103,7 @@ addMenuActionSet(ContextMenuKind.PROCESS_ADMIN, processResourceAdminActionSet); addMenuActionSet(ContextMenuKind.PROJECT_ADMIN, projectAdminActionSet); addMenuActionSet(ContextMenuKind.FILTER_GROUP_ADMIN, filterGroupAdminActionSet); addMenuActionSet(ContextMenuKind.PERMISSION_EDIT, permissionEditActionSet); +addMenuActionSet(ContextMenuKind.WORKFLOW, workflowActionSet); storeRedirects(); diff --git a/src/store/context-menu/context-menu-actions.ts b/src/store/context-menu/context-menu-actions.ts index bc7f94b0..3e239fee 100644 --- a/src/store/context-menu/context-menu-actions.ts +++ b/src/store/context-menu/context-menu-actions.ts @@ -261,6 +261,8 @@ export const resourceUuidToContextMenuKind = (uuid: string, readonly = false) => return ContextMenuKind.ROOT_PROJECT; case ResourceKind.LINK: return ContextMenuKind.LINK; + case ResourceKind.WORKFLOW: + return ContextMenuKind.WORKFLOW; default: return; } diff --git a/src/store/resource-type-filters/resource-type-filters.ts b/src/store/resource-type-filters/resource-type-filters.ts index a39807d5..b1c52e4f 100644 --- a/src/store/resource-type-filters/resource-type-filters.ts +++ b/src/store/resource-type-filters/resource-type-filters.ts @@ -27,6 +27,7 @@ export enum ObjectTypeFilter { PROJECT = 'Project', PROCESS = 'Process', COLLECTION = 'Data collection', + WORKFLOW = 'Workflow', } export enum GroupTypeFilter { @@ -62,6 +63,7 @@ export const getSimpleObjectTypeFilters = pipe( initFilter(ObjectTypeFilter.PROJECT), initFilter(ObjectTypeFilter.PROCESS), initFilter(ObjectTypeFilter.COLLECTION), + initFilter(ObjectTypeFilter.WORKFLOW), ); // Using pipe() with more than 7 arguments makes the return type be 'any', @@ -84,6 +86,8 @@ export const getInitialResourceTypeFilters = pipe( initFilter(CollectionTypeFilter.OUTPUT_COLLECTION, ObjectTypeFilter.COLLECTION), initFilter(CollectionTypeFilter.LOG_COLLECTION, ObjectTypeFilter.COLLECTION), ), + initFilter(ObjectTypeFilter.WORKFLOW) + ); export const getInitialProcessTypeFilters = pipe( @@ -130,6 +134,8 @@ const objectTypeToResourceKind = (type: ObjectTypeFilter) => { return ResourceKind.PROCESS; case ObjectTypeFilter.COLLECTION: return ResourceKind.COLLECTION; + case ObjectTypeFilter.WORKFLOW: + return ResourceKind.WORKFLOW; } }; @@ -273,7 +279,7 @@ export const serializeSimpleObjectTypeFilters = (filters: Tree { +export const buildProcessStatusFilters = (fb: FilterBuilder, activeStatusFilter: string, resourcePrefix?: string): FilterBuilder => { switch (activeStatusFilter) { case ProcessStatusFilter.ONHOLD: { fb.addDistinct('state', ContainerRequestState.FINAL, resourcePrefix); diff --git a/src/views-components/context-menu/context-menu.tsx b/src/views-components/context-menu/context-menu.tsx index 6f3a4389..4766259a 100644 --- a/src/views-components/context-menu/context-menu.tsx +++ b/src/views-components/context-menu/context-menu.tsx @@ -70,7 +70,7 @@ export const addMenuActionSet = (name: string, itemSet: ContextMenuActionSet) => const emptyActionSet: ContextMenuActionSet = []; const getMenuActionSet = (resource?: ContextMenuResource): ContextMenuActionSet => ( - resource ? menuActionSets.get(resource.menuKind) || emptyActionSet : emptyActionSet + resource ? menuActionSets.get(resource.menuKind) || emptyActionSet : emptyActionSet ); export enum ContextMenuKind { @@ -110,4 +110,5 @@ export enum ContextMenuKind { GROUP_MEMBER = "GroupMember", PERMISSION_EDIT = "PermissionEdit", LINK = "Link", + WORKFLOW = "Workflow", } -- 2.30.2