X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d8a3b5fdd6f606800e9b321acb3fca10c5183cb9..e6e51406134e71d493f5258917915136709bcda2:/src/views-components/context-menu/action-sets/collection-files-item-action-set.ts diff --git a/src/views-components/context-menu/action-sets/collection-files-item-action-set.ts b/src/views-components/context-menu/action-sets/collection-files-item-action-set.ts index 4c6874c6ae..03674665de 100644 --- a/src/views-components/context-menu/action-sets/collection-files-item-action-set.ts +++ b/src/views-components/context-menu/action-sets/collection-files-item-action-set.ts @@ -2,37 +2,69 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { ContextMenuActionSet } from "../context-menu-action-set"; -import { RenameIcon, RemoveIcon } from "~/components/icon/icon"; -import { DownloadCollectionFileAction } from "../actions/download-collection-file-action"; -import { openFileRemoveDialog, openRenameFileDialog } from '~/store/collection-panel/collection-panel-files/collection-panel-files-actions'; -import { CollectionFileViewerAction } from '~/views-components/context-menu/actions/collection-file-viewer-action'; +import { ContextMenuActionSet } from '../context-menu-action-set'; +import { RemoveIcon, RenameIcon } from 'components/icon/icon'; +import { DownloadCollectionFileAction } from '../actions/download-collection-file-action'; +import { openFileRemoveDialog, openRenameFileDialog } from 'store/collection-panel/collection-panel-files/collection-panel-files-actions'; +import { CollectionFileViewerAction } from 'views-components/context-menu/actions/collection-file-viewer-action'; +import { CollectionCopyToClipboardAction } from '../actions/collection-copy-to-clipboard-action'; +export const readOnlyCollectionDirectoryItemActionSet: ContextMenuActionSet = [ + [ + { + component: CollectionFileViewerAction, + execute: () => { + return; + }, + }, + { + component: CollectionCopyToClipboardAction, + execute: () => { + return; + }, + }, + ], +]; -export const readOnlyCollectionFilesItemActionSet: ContextMenuActionSet = [[ - { - component: DownloadCollectionFileAction, - execute: () => { return; } - }, - { - component: CollectionFileViewerAction, - execute: () => { return; }, - } -]]; +export const readOnlyCollectionFileItemActionSet: ContextMenuActionSet = [ + [ + { + component: DownloadCollectionFileAction, + execute: () => { + return; + }, + }, + ...readOnlyCollectionDirectoryItemActionSet.reduce((prev, next) => prev.concat(next), []), + ], +]; -export const collectionFilesItemActionSet: ContextMenuActionSet = readOnlyCollectionFilesItemActionSet.concat([[ - { - name: "Rename", - icon: RenameIcon, - execute: (dispatch, resource) => { - dispatch(openRenameFileDialog({ name: resource.name, id: resource.uuid })); - } - }, - { - name: "Remove", - icon: RemoveIcon, - execute: (dispatch, resource) => { - dispatch(openFileRemoveDialog(resource.uuid)); - } - } -]]); \ No newline at end of file +const writableActionSet: ContextMenuActionSet = [ + [ + { + name: 'Rename', + icon: RenameIcon, + execute: (dispatch, resources) => { + resources.forEach((resource) => + dispatch( + openRenameFileDialog({ + name: resource.name, + id: resource.uuid, + path: resource.uuid.split('/').slice(1).join('/'), + }) + ) + ); + }, + }, + { + name: 'Remove', + icon: RemoveIcon, + execute: (dispatch, resources) => { + resources.forEach((resource) => dispatch(openFileRemoveDialog(resource.uuid))); + }, + }, + ], +]; + +export const collectionDirectoryItemActionSet: ContextMenuActionSet = readOnlyCollectionDirectoryItemActionSet.concat(writableActionSet); + +export const collectionFileItemActionSet: ContextMenuActionSet = readOnlyCollectionFileItemActionSet.concat(writableActionSet);