[arvados-workbench2] updated: 2.7.0-246-g88526cf5

git repository hosting git at public.arvados.org
Thu Dec 7 14:47:14 UTC 2023


Summary of changes:
 .../multiselect-toolbar/MultiselectToolbar.tsx     | 15 ++--------
 .../ms-toolbar-action-filters.ts                   | 34 ++++++++++++++++++----
 src/store/multiselect/multiselect-actions.tsx      | 30 ++++++++++++++++++-
 src/store/process-panel/process-panel-actions.ts   |  7 +++--
 src/store/trash/trash-actions.ts                   |  1 -
 .../action-sets/process-resource-action-set.ts     |  4 +--
 src/views-components/context-menu/context-menu.tsx |  4 +--
 .../ms-collection-action-set.ts                    |  5 ++--
 .../multiselect-toolbar/ms-menu-actions.ts         |  1 +
 .../multiselect-toolbar/ms-process-action-set.ts   | 34 +++++++++++++++++-----
 .../multiselect-toolbar/ms-project-action-set.ts   |  3 +-
 .../multiselect-toolbar/ms-workflow-action-set.ts  |  3 +-
 .../process-panel/process-details-attributes.tsx   |  6 ++--
 13 files changed, 105 insertions(+), 42 deletions(-)

       via  88526cf5d128a3bcac9b6bd88ffb859f314503b8 (commit)
       via  73e8a8225a4a702e3392da9ac9bb50ff479377c0 (commit)
      from  2f53f965f3038c6d7f3a258da6c7a071daae42b0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 88526cf5d128a3bcac9b6bd88ffb859f314503b8
Author: Lisa Knox <lisaknox83 at gmail.com>
Date:   Thu Dec 7 09:46:49 2023 -0500

    21128: fixed process menu Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox at curii.com>

diff --git a/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts b/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts
index af8a52a9..71b56572 100644
--- a/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts
+++ b/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts
@@ -11,7 +11,7 @@ import {
     msFilterGroupActionFilter,
     msFrozenProjectActionFilter,
 } from 'views-components/multiselect-toolbar/ms-project-action-set';
-import { msProcessActionSet, msCommonProcessActionFilter } from 'views-components/multiselect-toolbar/ms-process-action-set';
+import { msProcessActionSet, msCommonProcessActionFilter, msAdminProcessActionFilter, msRunningProcessActionFilter } from 'views-components/multiselect-toolbar/ms-process-action-set';
 import { msWorkflowActionSet, msWorkflowActionFilter, msReadOnlyWorkflowActionFilter } from 'views-components/multiselect-toolbar/ms-workflow-action-set';
 import { ResourceKind } from 'models/resource';
 
@@ -63,7 +63,23 @@ export enum msMenuResourceKind {
     SEARCH_RESULTS = 'SearchResults',
 }
 
-const { COLLECTION, COLLECTION_ADMIN, READONLY_COLLECTION, PROCESS, PROCESS_ADMIN, PROJECT, PROJECT_ADMIN, FROZEN_PROJECT, FROZEN_PROJECT_ADMIN, READONLY_PROJECT, FILTER_GROUP, WORKFLOW, READONLY_WORKFLOW } = msMenuResourceKind;
+const {
+    COLLECTION,
+    COLLECTION_ADMIN,
+    READONLY_COLLECTION,
+    PROCESS_RESOURCE,
+    RUNNING_PROCESS_RESOURCE,
+    RUNNING_PROCESS_ADMIN,
+    PROCESS_ADMIN,
+    PROJECT,
+    PROJECT_ADMIN,
+    FROZEN_PROJECT,
+    FROZEN_PROJECT_ADMIN,
+    READONLY_PROJECT,
+    FILTER_GROUP,
+    WORKFLOW,
+    READONLY_WORKFLOW,
+} = msMenuResourceKind;
 
 export type TMultiselectActionsFilters = Record<string, [MultiSelectMenuActionSet, Set<string>]>;
 
@@ -71,19 +87,25 @@ const allActionNames = (actionSet: MultiSelectMenuActionSet): Set<string> => new
 
 export const multiselectActionsFilters: TMultiselectActionsFilters = {
     [COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter],
+    [COLLECTION_ADMIN]: [msCollectionActionSet, allActionNames(msCollectionActionSet)],
     [READONLY_COLLECTION]: [msCollectionActionSet, msReadOnlyCollectionActionFilter],
     [ResourceKind.COLLECTION]: [msCollectionActionSet, msCommonCollectionActionFilter],
-    [COLLECTION_ADMIN]: [msCollectionActionSet, allActionNames(msCollectionActionSet)],
-    [PROCESS]: [msProcessActionSet, msCommonProcessActionFilter],
+
+    [PROCESS_RESOURCE]: [msProcessActionSet, msCommonProcessActionFilter],
+    [PROCESS_ADMIN]: [msProcessActionSet, msAdminProcessActionFilter],
+    [RUNNING_PROCESS_RESOURCE]: [msProcessActionSet, msRunningProcessActionFilter],
+    [RUNNING_PROCESS_ADMIN]: [msProcessActionSet, allActionNames(msProcessActionSet)],
     [ResourceKind.PROCESS]: [msProcessActionSet, msCommonProcessActionFilter],
-    [PROCESS_ADMIN]: [msProcessActionSet, msCommonProcessActionFilter],
+    
     [PROJECT]: [msProjectActionSet, msCommonProjectActionFilter],
-    [ResourceKind.PROJECT]: [msProjectActionSet, msCommonProjectActionFilter],
     [PROJECT_ADMIN]: [msProjectActionSet, allActionNames(msProjectActionSet)],
     [FROZEN_PROJECT]: [msProjectActionSet, msFrozenProjectActionFilter],
     [FROZEN_PROJECT_ADMIN]: [msProjectActionSet, msFrozenProjectActionFilter], 
     [READONLY_PROJECT]: [msProjectActionSet, msReadOnlyProjectActionFilter],
+    [ResourceKind.PROJECT]: [msProjectActionSet, msCommonProjectActionFilter],
+    
     [FILTER_GROUP]: [msProjectActionSet, msFilterGroupActionFilter],
+    
     [WORKFLOW]: [msWorkflowActionSet, msWorkflowActionFilter],
     [READONLY_WORKFLOW]: [msWorkflowActionSet, msReadOnlyWorkflowActionFilter],
 };
diff --git a/src/views-components/multiselect-toolbar/ms-menu-actions.ts b/src/views-components/multiselect-toolbar/ms-menu-actions.ts
index b9420997..6bb930b9 100644
--- a/src/views-components/multiselect-toolbar/ms-menu-actions.ts
+++ b/src/views-components/multiselect-toolbar/ms-menu-actions.ts
@@ -24,6 +24,7 @@ export enum MultiSelectMenuActionNames {
     MOVE_TO_TRASH = 'Move to trash',
     ADD_TO_PUBLIC_FAVORITES = 'Add to public favorites',
     API_DETAILS = 'API Details',
+    CANCEL = 'CANCEL',
     COPY_AND_RERUN_PROCESS = 'Copy and re-run process',
     COPY_TO_CLIPBOARD = 'Copy to clipboard',
     DELETE_WORKFLOW = 'Delete Worflow',
diff --git a/src/views-components/multiselect-toolbar/ms-process-action-set.ts b/src/views-components/multiselect-toolbar/ms-process-action-set.ts
index a5a4f0fb..7802ad81 100644
--- a/src/views-components/multiselect-toolbar/ms-process-action-set.ts
+++ b/src/views-components/multiselect-toolbar/ms-process-action-set.ts
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { MoveToIcon, RemoveIcon, ReRunProcessIcon, OutputIcon, RenameIcon } from "components/icon/icon";
+import { MoveToIcon, RemoveIcon, ReRunProcessIcon, OutputIcon, RenameIcon, StopIcon } from "components/icon/icon";
 import { openMoveProcessDialog } from "store/processes/process-move-actions";
 import { openCopyProcessDialog } from "store/processes/process-copy-actions";
 import { openRemoveProcessDialog } from "store/processes/processes-actions";
@@ -10,6 +10,7 @@ import { MultiSelectMenuAction, MultiSelectMenuActionSet, msCommonActionSet } fr
 import { MultiSelectMenuActionNames } from "views-components/multiselect-toolbar/ms-menu-actions";
 import { openProcessUpdateDialog } from "store/processes/process-update-actions";
 import { msNavigateToOutput } from "store/multiselect/multiselect-actions";
+import { cancelRunningWorkflow } from "store/processes/processes-actions";
 
 const msCopyAndRerunProcess: MultiSelectMenuAction = {
     name: MultiSelectMenuActionNames.COPY_AND_RERUN_PROCESS,
@@ -65,6 +66,16 @@ const msEditProcess: MultiSelectMenuAction = {
     },
 }
 
+const msCancelProcess: MultiSelectMenuAction = {
+    name: MultiSelectMenuActionNames.CANCEL,
+    icon: StopIcon,
+    hasAlts: false,
+    isForMulti: false,
+    execute: (dispatch, resources) => {
+        dispatch<any>(cancelRunningWorkflow(resources[0].uuid));
+    },
+}
+
 export const msProcessActionSet: MultiSelectMenuActionSet = [
     [
         ...msCommonActionSet,
@@ -72,10 +83,16 @@ export const msProcessActionSet: MultiSelectMenuActionSet = [
         msRemoveProcess,
         msMoveTo,
         msViewOutputs,
-        msEditProcess
+        msEditProcess,
+        msCancelProcess
     ]
 ];
 
-const { MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, ADD_TO_PUBLIC_FAVORITES, OUTPUTS, EDIT_PROCESS } = MultiSelectMenuActionNames
+const { MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, ADD_TO_PUBLIC_FAVORITES, OUTPUTS, EDIT_PROCESS, CANCEL } = MultiSelectMenuActionNames
+
+export const msCommonProcessActionFilter = new Set([MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, OUTPUTS, EDIT_PROCESS ]);
+export const msRunningProcessActionFilter = new Set([MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, OUTPUTS, EDIT_PROCESS, CANCEL ]);
+
+export const msReadOnlyProcessActionFilter = new Set([COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, OUTPUTS ]);
+export const msAdminProcessActionFilter = new Set([MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, ADD_TO_PUBLIC_FAVORITES, OUTPUTS, EDIT_PROCESS ]);
 
-export const msCommonProcessActionFilter = new Set([MOVE_TO, REMOVE, COPY_AND_RERUN_PROCESS, ADD_TO_FAVORITES, OPEN_IN_NEW_TAB, VIEW_DETAILS, API_DETAILS, SHARE, ADD_TO_PUBLIC_FAVORITES, OUTPUTS, EDIT_PROCESS ]);

commit 73e8a8225a4a702e3392da9ac9bb50ff479377c0
Author: Lisa Knox <lisaknox83 at gmail.com>
Date:   Wed Dec 6 11:22:00 2023 -0500

    21128: fixed navToOutput and circular deps Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox at curii.com>

diff --git a/src/components/multiselect-toolbar/MultiselectToolbar.tsx b/src/components/multiselect-toolbar/MultiselectToolbar.tsx
index fc97dbfe..079078f8 100644
--- a/src/components/multiselect-toolbar/MultiselectToolbar.tsx
+++ b/src/components/multiselect-toolbar/MultiselectToolbar.tsx
@@ -13,7 +13,8 @@ import { ContextMenuResource } from "store/context-menu/context-menu-actions";
 import { Resource, ResourceKind, extractUuidKind } from "models/resource";
 import { getResource } from "store/resources/resources";
 import { ResourcesState } from "store/resources/resources";
-import { MultiSelectMenuAction, MultiSelectMenuActionSet, MultiSelectMenuActionNames } from "views-components/multiselect-toolbar/ms-menu-actions";
+import { MultiSelectMenuAction, MultiSelectMenuActionSet } from "views-components/multiselect-toolbar/ms-menu-actions";
+import { MultiSelectMenuActionNames } from "views-components/multiselect-toolbar/ms-menu-actions";
 import { ContextMenuAction } from "views-components/context-menu/context-menu-action-set";
 import { multiselectActionsFilters, TMultiselectActionsFilters, msMenuResourceKind } from "./ms-toolbar-action-filters";
 import { kindToActionSet, findActionByName } from "./ms-kind-action-differentiator";
@@ -32,6 +33,7 @@ import { CollectionResource } from "models/collection";
 import { getProcess } from "store/processes/process";
 import { Process } from "store/processes/process";
 import { PublicFavoritesState } from "store/public-favorites/public-favorites-reducer";
+import { isExactlyOneSelected } from "store/multiselect/multiselect-actions";
 
 type CssRules = "root" | "button" | "iconContainer";
 
@@ -267,17 +269,6 @@ function selectActionsByKind(currentResourceKinds: Array<string>, filterSet: TMu
     });
 }
 
-export const isExactlyOneSelected = (checkedList: TCheckedList) => {
-    let tally = 0;
-    let current = '';
-    for (const uuid in checkedList) {
-        if (checkedList[uuid] === true) {
-            tally++;
-            current = uuid;
-        }
-    }
-    return tally === 1 ? current : null
-};
 
 //--------------------------------------------------//
 
diff --git a/src/store/multiselect/multiselect-actions.tsx b/src/store/multiselect/multiselect-actions.tsx
index 9b564486..a246ddbc 100644
--- a/src/store/multiselect/multiselect-actions.tsx
+++ b/src/store/multiselect/multiselect-actions.tsx
@@ -3,7 +3,14 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { TCheckedList } from "components/data-table/data-table";
-import { isExactlyOneSelected } from "components/multiselect-toolbar/MultiselectToolbar";
+import { ContainerRequestResource } from "models/container-request";
+import { Dispatch } from "redux";
+import { navigateTo } from "store/navigation/navigation-action";
+import { snackbarActions } from "store/snackbar/snackbar-actions";
+import { RootState } from "store/store";
+import { ServiceRepository } from "services/services";
+import { SnackbarKind } from "store/snackbar/snackbar-actions";
+import { ContextMenuResource } from 'store/context-menu/context-menu-actions';
 
 export const multiselectActionContants = {
     TOGGLE_VISIBLITY: "TOGGLE_VISIBLITY",
@@ -16,6 +23,27 @@ export const multiselectActionContants = {
     REMOVE_DISABLED: 'REMOVE_DISABLED',
 };
 
+export const msNavigateToOutput = (resource: ContextMenuResource | ContainerRequestResource) => async (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
+    try {
+        await services.collectionService.get(resource.outputUuid || '');
+        dispatch<any>(navigateTo(resource.outputUuid || ''));
+    } catch {
+        dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Output collection was trashed or deleted.", hideDuration: 4000, kind: SnackbarKind.WARNING }));
+    }
+};
+
+export const isExactlyOneSelected = (checkedList: TCheckedList) => {
+    let tally = 0;
+    let current = '';
+    for (const uuid in checkedList) {
+        if (checkedList[uuid] === true) {
+            tally++;
+            current = uuid;
+        }
+    }
+    return tally === 1 ? current : null
+};
+
 export const toggleMSToolbar = (isVisible: boolean) => {
     return dispatch => {
         dispatch({ type: multiselectActionContants.TOGGLE_VISIBLITY, payload: isVisible });
diff --git a/src/store/process-panel/process-panel-actions.ts b/src/store/process-panel/process-panel-actions.ts
index 81f8dd6b..2111afdb 100644
--- a/src/store/process-panel/process-panel-actions.ts
+++ b/src/store/process-panel/process-panel-actions.ts
@@ -20,6 +20,7 @@ import { CommandInputParameter, getIOParamId, WorkflowInputsData } from "models/
 import { getIOParamDisplayValue, ProcessIOParameter } from "views/process-panel/process-io-card";
 import { OutputDetails, NodeInstanceType, NodeInfo } from "./process-panel";
 import { AuthState } from "store/auth/auth-reducer";
+import { ContextMenuResource } from "store/context-menu/context-menu-actions";
 
 export const processPanelActions = unionize({
     RESET_PROCESS_PANEL: ofType<{}>(),
@@ -53,10 +54,10 @@ export const loadProcessPanel = (uuid: string) => async (dispatch: Dispatch, get
     dispatch<any>(loadSubprocessPanel());
 };
 
-export const navigateToOutput = (uuid: string) => async (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
+export const navigateToOutput = (resource: ContextMenuResource | ContainerRequestResource) => async (dispatch: Dispatch<any>, getState: () => RootState, services: ServiceRepository) => {
     try {
-        await services.collectionService.get(uuid);
-        dispatch<any>(navigateTo(uuid));
+        await services.collectionService.get(resource.outputUuid || '');
+        dispatch<any>(navigateTo(resource.outputUuid || ''));
     } catch {
         dispatch(snackbarActions.OPEN_SNACKBAR({ message: "Output collection was trashed or deleted.", hideDuration: 4000, kind: SnackbarKind.WARNING }));
     }
diff --git a/src/store/trash/trash-actions.ts b/src/store/trash/trash-actions.ts
index dd442188..f4e3d3f0 100644
--- a/src/store/trash/trash-actions.ts
+++ b/src/store/trash/trash-actions.ts
@@ -77,7 +77,6 @@ export const toggleCollectionTrashed =
         async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository): Promise<any> => {
             let errorMessage = "";
             let successMessage = "";
-            console.log('hi')
             dispatch<any>(addDisabledButton(MultiSelectMenuActionNames.MOVE_TO_TRASH))
             try {
                 if (isTrashed) {
diff --git a/src/views-components/context-menu/action-sets/process-resource-action-set.ts b/src/views-components/context-menu/action-sets/process-resource-action-set.ts
index 64b90ff4..2aa7faa1 100644
--- a/src/views-components/context-menu/action-sets/process-resource-action-set.ts
+++ b/src/views-components/context-menu/action-sets/process-resource-action-set.ts
@@ -60,8 +60,8 @@ export const readOnlyProcessResourceActionSet: ContextMenuActionSet = [
             icon: OutputIcon,
             name: "Outputs",
             execute: (dispatch, resources) => {
-                if (resources[0].outputUuid) {
-                    dispatch<any>(navigateToOutput(resources[0].outputUuid));
+                if (resources[0]) {
+                    dispatch<any>(navigateToOutput(resources[0]));
                 }
             },
         },
diff --git a/src/views-components/context-menu/context-menu.tsx b/src/views-components/context-menu/context-menu.tsx
index 2a5cccc0..877d927a 100644
--- a/src/views-components/context-menu/context-menu.tsx
+++ b/src/views-components/context-menu/context-menu.tsx
@@ -16,7 +16,7 @@ type DataProps = Pick<ContextMenuProps, "anchorEl" | "items" | "open"> & { resou
 
 const mapStateToProps = (state: RootState): DataProps => {
     const { open, position, resource } = state.contextMenu;
-
+    const fullResource = resource ? state.resources[resource?.uuid] as any : resource
     const filteredItems = getMenuActionSet(resource).map(group =>
         group.filter(item => {
             if (resource && item.filters) {
@@ -32,7 +32,7 @@ const mapStateToProps = (state: RootState): DataProps => {
         anchorEl: resource ? createAnchorAt(position) : undefined,
         items: filteredItems,
         open,
-        resource,
+        resource: fullResource,
     };
 };
 
diff --git a/src/views-components/multiselect-toolbar/ms-collection-action-set.ts b/src/views-components/multiselect-toolbar/ms-collection-action-set.ts
index cd7ce832..a8a8f457 100644
--- a/src/views-components/multiselect-toolbar/ms-collection-action-set.ts
+++ b/src/views-components/multiselect-toolbar/ms-collection-action-set.ts
@@ -7,7 +7,8 @@ import { openMoveCollectionDialog } from "store/collections/collection-move-acti
 import { openCollectionCopyDialog, openMultiCollectionCopyDialog } from "store/collections/collection-copy-actions";
 import { toggleCollectionTrashed } from "store/trash/trash-actions";
 import { ContextMenuResource } from "store/context-menu/context-menu-actions";
-import { msCommonActionSet, MultiSelectMenuActionSet, MultiSelectMenuActionNames, MultiSelectMenuAction } from "./ms-menu-actions";
+import { msCommonActionSet, MultiSelectMenuActionSet, MultiSelectMenuAction } from "./ms-menu-actions";
+import { MultiSelectMenuActionNames } from "views-components/multiselect-toolbar/ms-menu-actions";
 import { TrashIcon, Link, FolderSharedIcon } from "components/icon/icon";
 import { openCollectionUpdateDialog } from "store/collections/collection-update-actions";
 import { copyToClipboardAction } from "store/open-in-new-tab/open-in-new-tab.actions";
@@ -47,10 +48,10 @@ const msToggleTrashAction: MultiSelectMenuAction = {
 }
 
 const msEditCollection: MultiSelectMenuAction = {
+    name: MultiSelectMenuActionNames.EDIT_COLLECTION,
     icon: RenameIcon,
     hasAlts: false,
     isForMulti: false,
-    name: "Edit collection",
     execute: (dispatch, resources) => {
         dispatch<any>(openCollectionUpdateDialog(resources[0]));
     },
diff --git a/src/views-components/multiselect-toolbar/ms-process-action-set.ts b/src/views-components/multiselect-toolbar/ms-process-action-set.ts
index 467da899..a5a4f0fb 100644
--- a/src/views-components/multiselect-toolbar/ms-process-action-set.ts
+++ b/src/views-components/multiselect-toolbar/ms-process-action-set.ts
@@ -6,9 +6,10 @@ import { MoveToIcon, RemoveIcon, ReRunProcessIcon, OutputIcon, RenameIcon } from
 import { openMoveProcessDialog } from "store/processes/process-move-actions";
 import { openCopyProcessDialog } from "store/processes/process-copy-actions";
 import { openRemoveProcessDialog } from "store/processes/processes-actions";
-import { MultiSelectMenuAction, MultiSelectMenuActionSet, MultiSelectMenuActionNames, msCommonActionSet } from "./ms-menu-actions";
-import { navigateToOutput } from "store/process-panel/process-panel-actions";
+import { MultiSelectMenuAction, MultiSelectMenuActionSet, msCommonActionSet } from "./ms-menu-actions";
+import { MultiSelectMenuActionNames } from "views-components/multiselect-toolbar/ms-menu-actions";
 import { openProcessUpdateDialog } from "store/processes/process-update-actions";
+import { msNavigateToOutput } from "store/multiselect/multiselect-actions";
 
 const msCopyAndRerunProcess: MultiSelectMenuAction = {
     name: MultiSelectMenuActionNames.COPY_AND_RERUN_PROCESS,
@@ -48,8 +49,8 @@ const msViewOutputs: MultiSelectMenuAction = {
     hasAlts: false,
     isForMulti: false,
     execute: (dispatch, resources) => {
-        if (resources[0].outputUuid) {
-            dispatch<any>(navigateToOutput(resources[0].outputUuid));
+                if (resources[0]) {
+            dispatch<any>(msNavigateToOutput(resources[0]));
         }
     },
 }
diff --git a/src/views-components/multiselect-toolbar/ms-project-action-set.ts b/src/views-components/multiselect-toolbar/ms-project-action-set.ts
index c394ea90..9fafca0d 100644
--- a/src/views-components/multiselect-toolbar/ms-project-action-set.ts
+++ b/src/views-components/multiselect-toolbar/ms-project-action-set.ts
@@ -2,7 +2,8 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { MultiSelectMenuAction, MultiSelectMenuActionSet, MultiSelectMenuActionNames, msCommonActionSet } from 'views-components/multiselect-toolbar/ms-menu-actions';
+import { MultiSelectMenuAction, MultiSelectMenuActionSet, msCommonActionSet } from 'views-components/multiselect-toolbar/ms-menu-actions';
+import { MultiSelectMenuActionNames } from "views-components/multiselect-toolbar/ms-menu-actions";
 import { openMoveProjectDialog } from 'store/projects/project-move-actions';
 import { toggleProjectTrashed } from 'store/trash/trash-actions';
 import {
diff --git a/src/views-components/multiselect-toolbar/ms-workflow-action-set.ts b/src/views-components/multiselect-toolbar/ms-workflow-action-set.ts
index 4095828d..f856d9ac 100644
--- a/src/views-components/multiselect-toolbar/ms-workflow-action-set.ts
+++ b/src/views-components/multiselect-toolbar/ms-workflow-action-set.ts
@@ -4,7 +4,8 @@
 
 import { openRunProcess, deleteWorkflow } from 'store/workflow-panel/workflow-panel-actions';
 import { StartIcon, TrashIcon } from 'components/icon/icon';
-import { MultiSelectMenuAction, MultiSelectMenuActionSet, MultiSelectMenuActionNames, msCommonActionSet } from './ms-menu-actions';
+import { MultiSelectMenuAction, MultiSelectMenuActionSet, msCommonActionSet } from './ms-menu-actions';
+import { MultiSelectMenuActionNames } from "views-components/multiselect-toolbar/ms-menu-actions";
 
 const { OPEN_IN_NEW_TAB, COPY_TO_CLIPBOARD, VIEW_DETAILS, API_DETAILS, RUN_WORKFLOW, DELETE_WORKFLOW } = MultiSelectMenuActionNames;
 
diff --git a/src/views/process-panel/process-details-attributes.tsx b/src/views/process-panel/process-details-attributes.tsx
index ffacd967..1f3a73a5 100644
--- a/src/views/process-panel/process-details-attributes.tsx
+++ b/src/views/process-panel/process-details-attributes.tsx
@@ -75,12 +75,12 @@ const mapStateToProps = (state: RootState, props: { request: ProcessResource })
 };
 
 interface ProcessDetailsAttributesActionProps {
-    navigateToOutput: (uuid: string) => void;
+    navigateToOutput: (resource: ContainerRequestResource) => void;
     openWorkflow: (uuid: string) => void;
 }
 
 const mapDispatchToProps = (dispatch: Dispatch): ProcessDetailsAttributesActionProps => ({
-    navigateToOutput: (uuid) => dispatch<any>(navigateToOutput(uuid)),
+    navigateToOutput: (resource) => dispatch<any>(navigateToOutput(resource)),
     openWorkflow: (uuid) => dispatch<any>(openWorkflow(uuid)),
 });
 
@@ -156,7 +156,7 @@ export const ProcessDetailsAttributes = withStyles(styles, { withTheme: true })(
                 </Grid>
                 <Grid item xs={6}>
                     <DetailsAttribute label='Output collection' />
-                    {containerRequest.outputUuid && <span onClick={() => props.navigateToOutput(containerRequest.outputUuid!)}>
+                    {containerRequest.outputUuid && <span onClick={() => props.navigateToOutput(containerRequest!)}>
                         <CollectionName className={classes.link} uuid={containerRequest.outputUuid} />
                     </span>}
                 </Grid>

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list