X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/fd49462a5a09e107b7bb5c0ef8635db328b399b8..41f6f1e495c82fcfa79b87cf718fa2e9cd91c726:/src/store/context-menu/context-menu-actions.ts diff --git a/src/store/context-menu/context-menu-actions.ts b/src/store/context-menu/context-menu-actions.ts index 59a6813b..1116949a 100644 --- a/src/store/context-menu/context-menu-actions.ts +++ b/src/store/context-menu/context-menu-actions.ts @@ -20,6 +20,7 @@ import { ProcessResource } from 'models/process'; import { CollectionResource } from 'models/collection'; import { GroupClass, GroupResource } from 'models/group'; import { GroupContentsResource } from 'services/groups-service/groups-service'; +import { LinkResource } from 'models/link'; export const contextMenuActions = unionize({ OPEN_CONTEXT_MENU: ofType<{ position: ContextMenuPosition, resource: ContextMenuResource }>(), @@ -40,6 +41,7 @@ export type ContextMenuResource = { outputUuid?: string; workflowUuid?: string; storageClassesDesired?: string[]; + properties?: { [key: string]: string | string[] }; }; export const isKeyboardClick = (event: React.MouseEvent) => event.nativeEvent.detail === 0; @@ -188,11 +190,35 @@ export const openProcessContextMenu = (event: React.MouseEvent, pro description: res.description, outputUuid: res.outputUuid || '', workflowUuid: res.properties.workflowUuid || '', - menuKind: ContextMenuKind.PROCESS + menuKind: ContextMenuKind.PROCESS_RESOURCE })); } }; +export const openPermissionEditContextMenu = (event: React.MouseEvent, link: LinkResource) => + (dispatch: Dispatch, getState: () => RootState) => { + if (link) { + dispatch(openContextMenu(event, { + name: link.name, + uuid: link.uuid, + kind: link.kind, + menuKind: ContextMenuKind.PERMISSION_EDIT, + ownerUuid: link.ownerUuid, + })); + } + }; + +export const openUserContextMenu = (event: React.MouseEvent, user: UserResource) => + (dispatch: Dispatch, getState: () => RootState) => { + dispatch(openContextMenu(event, { + name: '', + uuid: user.uuid, + ownerUuid: user.ownerUuid, + kind: user.kind, + menuKind: ContextMenuKind.USER + })); + }; + export const resourceUuidToContextMenuKind = (uuid: string, readonly = false) => (dispatch: Dispatch, getState: () => RootState) => { const { isAdmin: isAdminUser, uuid: userUuid } = getState().auth.user!;