15768: fixed delete multi process bug Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa...
authorLisa Knox <lisaknox83@gmail.com>
Tue, 5 Sep 2023 16:56:17 +0000 (12:56 -0400)
committerLisa Knox <lisaknox83@gmail.com>
Tue, 5 Sep 2023 16:56:17 +0000 (12:56 -0400)
src/store/processes/processes-actions.ts
src/views-components/context-menu/action-sets/process-resource-action-set.ts
src/views-components/context-menu/context-menu.tsx

index 18d95911507fdf715a19e552c13ac40a7e83f75f..ed951525c80b376fb096ec9281841e1b4df85bea 100644 (file)
@@ -26,6 +26,7 @@ import { ContainerRequestResource, ContainerRequestState } from "models/containe
 import { FilterBuilder } from "services/api/filter-builder";
 import { selectedToArray } from "components/multiselect-toolbar/MultiselectToolbar";
 import { Resource, ResourceKind } from "models/resource";
+import { ContextMenuResource } from "store/context-menu/context-menu-actions";
 
 export const loadProcess =
     (containerRequestUuid: string) =>
@@ -286,7 +287,7 @@ export const getOutputParameters = (data: any): CommandOutputParameter[] => {
 };
 
 export const openRemoveProcessDialog =
-    (uuid: string, numOfProcesses: Number) => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+    (resource: ContextMenuResource, numOfProcesses: Number) => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
         const confirmationText =
             numOfProcesses === 1
                 ? "Are you sure you want to remove this process?"
@@ -300,7 +301,8 @@ export const openRemoveProcessDialog =
                     title: titleText,
                     text: confirmationText,
                     confirmButtonLabel: "Remove",
-                    uuid,
+                    uuid: resource.uuid,
+                    resource,
                 },
             })
         );
@@ -309,8 +311,13 @@ export const openRemoveProcessDialog =
 export const REMOVE_PROCESS_DIALOG = "removeProcessDialog";
 
 export const removeProcessPermanently = (uuid: string) => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+    const resource = getState().dialog.removeProcessDialog.data.resource;
     const checkedList = getState().multiselect.checkedList;
-    const uuidsToRemove: string[] = selectedToArray(checkedList);
+
+    const uuidsToRemove: string[] = resource.isSingle ? [resource.uuid] : selectedToArray(checkedList);
+
+    //if no items in checkedlist && no items passed in, default to normal context menu behavior
+    if (!uuidsToRemove.length) uuidsToRemove.push(uuid);
 
     const processesToRemove = uuidsToRemove
         .map(uuid => getResource(uuid)(getState().resources) as Resource)
index b4674951a5b3bd36866b99c0fb7b35e6fa6343d3..aceebe066b44badc8318cea8d71021b6c993f3de 100644 (file)
@@ -112,7 +112,7 @@ export const processResourceActionSet: ContextMenuActionSet = [
             name: "Remove",
             icon: RemoveIcon,
             execute: (dispatch, resources) => {
-                dispatch<any>(openRemoveProcessDialog(resources[0].uuid, resources.length));
+                dispatch<any>(openRemoveProcessDialog(resources[0], resources.length));
             },
         },
     ],
index 8f8e82328152eba50f4c25b69e845fecc75bd9ee..e7bfff9e090cca915225accd50ef11d8ce830877 100644 (file)
@@ -52,7 +52,6 @@ const mapDispatchToProps = (dispatch: Dispatch): ActionProps => ({
 const handleItemClick = memoize(
     (resource: DataProps["resource"], onItemClick: ActionProps["onItemClick"]): ContextMenuProps["onItemClick"] =>
         item => {
-            console.log("clisky");
             onItemClick(item, { ...resource, isSingle: true } as ContextMenuResource);
         }
 );