Merge 'main' into 20382-process-action-menu-cancel
authorLisa Knox <lisaknox83@gmail.com>
Thu, 19 Oct 2023 17:47:33 +0000 (13:47 -0400)
committerLisa Knox <lisaknox83@gmail.com>
Thu, 19 Oct 2023 17:47:33 +0000 (13:47 -0400)
 refs #20382

 Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox@curii.com>

1  2 
src/index.tsx
src/store/context-menu/context-menu-actions.ts
src/views-components/context-menu/action-sets/process-resource-action-set.ts
src/views-components/context-menu/context-menu.tsx
src/views/process-panel/process-panel.tsx

diff --cc src/index.tsx
Simple merge
index dc35ab68394587aae03289f1db9269d4b77b597f,f846d25ba5089b8abfa859edfecd72d4ff07581f..4cad2962f0f85125260c95ad36dbdf923376f021
@@@ -23,7 -23,7 +23,8 @@@ import { GroupContentsResource } from "
  import { LinkResource } from "models/link";
  import { resourceIsFrozen } from "common/frozen-resources";
  import { ProjectResource } from "models/project";
 +import { getProcess } from "store/processes/process";
+ import { filterCollectionFilesBySelection } from "store/collection-panel/collection-panel-files/collection-panel-files-state";
  
  export const contextMenuActions = unionize({
      OPEN_CONTEXT_MENU: ofType<{ position: ContextMenuPosition; resource: ContextMenuResource }>(),
@@@ -67,7 -69,8 +70,9 @@@ export const openContextMenu = (event: 
  
  export const openCollectionFilesContextMenu =
      (event: React.MouseEvent<HTMLElement>, isWritable: boolean) => (dispatch: Dispatch, getState: () => RootState) => {
 +        const isCollectionFileSelected = JSON.stringify(getState().collectionPanelFiles).includes('"selected":true');
+         const selectedCount = filterCollectionFilesBySelection(getState().collectionPanelFiles, true).length;
+         const multiple = selectedCount > 1;
          dispatch<any>(
              openContextMenu(event, {
                  name: "",
index 3d057d42fd29a4e7418d7aa14f418482756206d0,7d039b13d75d752c7095115f295d604151b7f1ad..7d85518d2d217050dfbbe6a0e7d6f0c92576f10a
@@@ -143,25 -128,3 +143,25 @@@ export const processResourceAdminAction
          },
      ],
  ];
-             execute: (dispatch, resource) => {
-                 dispatch<any>(togglePublicFavorite(resource)).then(() => {
 +
 +export const runningProcessResourceAdminActionSet: ContextMenuActionSet = [
 +    [
 +        ...processResourceActionSet.reduce((prev, next) => prev.concat(next), []),
 +        {
 +            component: TogglePublicFavoriteAction,
 +            name: "Add to public favorites",
-             execute: (dispatch, resource) => {
-                 dispatch<any>(cancelRunningWorkflow(resource.uuid));
++            execute: (dispatch, resources) => {
++                dispatch<any>(togglePublicFavorite(resources[0])).then(() => {
 +                    dispatch<any>(publicFavoritePanelActions.REQUEST_ITEMS());
 +                });
 +            },
 +        },
 +        {
 +            name: "CANCEL",
 +            icon: StopIcon,
++            execute: (dispatch, resources) => {
++                dispatch<any>(cancelRunningWorkflow(resources[0].uuid));
 +            },
 +        },
 +    ],
 +];
index d3d8caf2def5b914696740241125e90bd19fcad5,f9e02540eb92a62b931c34798faace31aa9fb843..6c1d4a71165fd30217b4ff64f1d0ff4fe1a3fc4e
@@@ -19,9 -19,8 +19,9 @@@ import 
      loadNodeJson,
  } from "store/process-panel/process-panel-actions";
  import { cancelRunningWorkflow, resumeOnHoldWorkflow, startWorkflow } from "store/processes/processes-actions";
- import { navigateToLogCollection, setProcessLogsPanelFilter } from "store/process-logs-panel/process-logs-panel-actions";
- import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
 +import { isProcessCancelable } from "store/processes/process";
+ import { navigateToLogCollection, pollProcessLogs, setProcessLogsPanelFilter } from "store/process-logs-panel/process-logs-panel-actions";
+ import { snackbarActions, SnackbarKind } from "store/snackbar/snackbar-actions";
  
  const mapStateToProps = ({ router, auth, resources, processPanel, processLogsPanel }: RootState): ProcessPanelRootDataProps => {
      const uuid = getProcessPanelCurrentUuid(router) || "";