X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4c551ecb7e6c888f783708604cfa3f8f340de03e..f83344568cb070f716527288abe88a4ec5b0c305:/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 4bab12acbd..65ddcff2c7 100644 --- a/src/store/context-menu/context-menu-actions.ts +++ b/src/store/context-menu/context-menu-actions.ts @@ -14,6 +14,10 @@ import { isSidePanelTreeCategory } from '~/store/side-panel-tree/side-panel-tree import { extractUuidKind, ResourceKind } from '~/models/resource'; import { Process } from '~/store/processes/process'; import { RepositoryResource } from '~/models/repositories'; +import { SshKeyResource } from '~/models/ssh-key'; +import { VirtualMachinesResource } from '~/models/virtual-machines'; +import { KeepServiceResource } from '~/models/keep-services'; +import { NodeResource } from '~/models/node'; export const contextMenuActions = unionize({ OPEN_CONTEXT_MENU: ofType<{ position: ContextMenuPosition, resource: ContextMenuResource }>(), @@ -32,8 +36,9 @@ export type ContextMenuResource = { isTrashed?: boolean; index?: number }; -export const isKeyboardClick = (event: React.MouseEvent) => - event.nativeEvent.detail === 0; + +export const isKeyboardClick = (event: React.MouseEvent) => event.nativeEvent.detail === 0; + export const openContextMenu = (event: React.MouseEvent, resource: ContextMenuResource) => (dispatch: Dispatch) => { event.preventDefault(); @@ -61,16 +66,59 @@ export const openCollectionFilesContextMenu = (event: React.MouseEvent, index: number, repository: RepositoryResource) => +export const openRepositoryContextMenu = (event: React.MouseEvent, repository: RepositoryResource) => (dispatch: Dispatch, getState: () => RootState) => { - dispatch(openContextMenu(event, { - name: '', - uuid: repository.uuid, - ownerUuid: repository.ownerUuid, - kind: ResourceKind.REPOSITORY, - menuKind: ContextMenuKind.REPOSITORY, - index - })); + dispatch(openContextMenu(event, { + name: '', + uuid: repository.uuid, + ownerUuid: repository.ownerUuid, + kind: ResourceKind.REPOSITORY, + menuKind: ContextMenuKind.REPOSITORY + })); + }; + +export const openVirtualMachinesContextMenu = (event: React.MouseEvent, repository: VirtualMachinesResource) => + (dispatch: Dispatch, getState: () => RootState) => { + dispatch(openContextMenu(event, { + name: '', + uuid: repository.uuid, + ownerUuid: repository.ownerUuid, + kind: ResourceKind.VIRTUAL_MACHINE, + menuKind: ContextMenuKind.VIRTUAL_MACHINE + })); + }; + +export const openSshKeyContextMenu = (event: React.MouseEvent, sshKey: SshKeyResource) => + (dispatch: Dispatch) => { + dispatch(openContextMenu(event, { + name: '', + uuid: sshKey.uuid, + ownerUuid: sshKey.ownerUuid, + kind: ResourceKind.SSH_KEY, + menuKind: ContextMenuKind.SSH_KEY + })); + }; + +export const openKeepServiceContextMenu = (event: React.MouseEvent, keepService: KeepServiceResource) => + (dispatch: Dispatch) => { + dispatch(openContextMenu(event, { + name: '', + uuid: keepService.uuid, + ownerUuid: keepService.ownerUuid, + kind: ResourceKind.KEEP_SERVICE, + menuKind: ContextMenuKind.KEEP_SERVICE + })); + }; + +export const openComputeNodeContextMenu = (event: React.MouseEvent, computeNode: NodeResource) => + (dispatch: Dispatch) => { + dispatch(openContextMenu(event, { + name: '', + uuid: computeNode.uuid, + ownerUuid: computeNode.ownerUuid, + kind: ResourceKind.NODE, + menuKind: ContextMenuKind.NODE + })); }; export const openRootProjectContextMenu = (event: React.MouseEvent, projectUuid: string) =>