15672: Uses process context menu on subprocess panel.
authorLucas Di Pentima <lucas@di-pentima.com.ar>
Fri, 20 Dec 2019 23:14:58 +0000 (20:14 -0300)
committerLucas Di Pentima <lucas@di-pentima.com.ar>
Fri, 20 Dec 2019 23:14:58 +0000 (20:14 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas@di-pentima.com.ar>

src/views/subprocess-panel/subprocess-panel-root.tsx
src/views/subprocess-panel/subprocess-panel.tsx

index 2d37ccb36d02d5dd41dabaeb01a53fb8f33f02a8..a8ce60756bce12a399db15e5d4298d1b1fd5893a 100644 (file)
@@ -16,6 +16,7 @@ import { SUBPROCESS_PANEL_ID } from '~/store/subprocess-panel/subprocess-panel-a
 import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view';
 import { createTree } from '~/models/tree';
 import { getInitialProcessStatusFilters } from '~/store/resource-type-filters/resource-type-filters';
+import { ResourcesState } from '~/store/resources/resources';
 
 export enum SubprocessPanelColumnNames {
     NAME = "Name",
@@ -63,12 +64,12 @@ export const subprocessPanelColumns: DataColumns<string> = [
 ];
 
 export interface SubprocessPanelDataProps {
-    isAdmin: boolean;
+    resources: ResourcesState;
 }
 
 export interface SubprocessPanelActionProps {
     onItemClick: (item: string) => void;
-    onContextMenu: (event: React.MouseEvent<HTMLElement>, item: string, isAdmin: boolean) => void;
+    onContextMenu: (event: React.MouseEvent<HTMLElement>, item: string, resources: ResourcesState) => void;
     onItemDoubleClick: (item: string) => void;
 }
 
@@ -84,7 +85,7 @@ export const SubprocessPanelRoot = (props: SubprocessPanelProps) => {
         id={SUBPROCESS_PANEL_ID}
         onRowClick={props.onItemClick}
         onRowDoubleClick={props.onItemDoubleClick}
-        onContextMenu={(event, item) => props.onContextMenu(event, item, props.isAdmin)}
+        onContextMenu={(event, item) => props.onContextMenu(event, item, props.resources)}
         contextMenuColumn={true}
         dataTableDefaultView={
             <DataTableDefaultView
index cf1de9af789b8cadb77b08135636686d38da1032..81bd54d4f71281a2935595f0e83054edacc48570 100644 (file)
@@ -4,26 +4,18 @@
 
 import { Dispatch } from "redux";
 import { connect } from "react-redux";
-import { openContextMenu, resourceKindToContextMenuKind } from '~/store/context-menu/context-menu-actions';
+import { openProcessContextMenu } from '~/store/context-menu/context-menu-actions';
 import { SubprocessPanelRoot, SubprocessPanelActionProps, SubprocessPanelDataProps } from '~/views/subprocess-panel/subprocess-panel-root';
-import { ResourceKind } from '~/models/resource';
 import { RootState } from "~/store/store";
 import { navigateTo } from "~/store/navigation/navigation-action";
 import { loadDetailsPanel } from "~/store/details-panel/details-panel-action";
 import { getProcess } from "~/store/processes/process";
 
 const mapDispatchToProps = (dispatch: Dispatch): SubprocessPanelActionProps => ({
-    onContextMenu: (event, resourceUuid, isAdmin) => {
-        const menuKind = resourceKindToContextMenuKind(resourceUuid, isAdmin);
-        const resource = getProcess(resourceUuid);
-        if (menuKind && resource) {
-            dispatch<any>(openContextMenu(event, {
-                name: resource.name,
-                uuid: resourceUuid,
-                ownerUuid: '',
-                kind: ResourceKind.PROCESS,
-                menuKind
-            }));
+    onContextMenu: (event, resourceUuid, resources) => {
+        const process = getProcess(resourceUuid)(resources);
+        if (process) {
+            dispatch<any>(openProcessContextMenu(event, process));
         }
     },
     onItemClick: (uuid: string) => {
@@ -35,7 +27,7 @@ const mapDispatchToProps = (dispatch: Dispatch): SubprocessPanelActionProps => (
 });
 
 const mapStateToProps = (state: RootState): SubprocessPanelDataProps => ({
-    isAdmin: state.auth.user ? state.auth.user.isAdmin : false
+    resources: state.resources
 });
 
 export const SubprocessPanel = connect(mapStateToProps, mapDispatchToProps)(SubprocessPanelRoot);
\ No newline at end of file