1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { ContextMenuActionSet } from "../context-menu-action-set";
6 import { FileCopyIcon, FileMoveIcon, RemoveIcon, RenameIcon } from "components/icon/icon";
7 import { DownloadCollectionFileAction } from "../actions/download-collection-file-action";
8 import { openFileRemoveDialog, openRenameFileDialog } from 'store/collection-panel/collection-panel-files/collection-panel-files-actions';
9 import { CollectionFileViewerAction } from 'views-components/context-menu/actions/collection-file-viewer-action';
10 import { CollectionCopyToClipboardAction } from "../actions/collection-copy-to-clipboard-action";
11 import { openCollectionPartialMoveToExistingCollectionDialog, openCollectionPartialMoveToNewCollectionDialog } from "store/collections/collection-partial-move-actions";
12 import { openCollectionPartialCopyToExistingCollectionDialog, openCollectionPartialCopyToNewCollectionDialog } from "store/collections/collection-partial-copy-actions";
14 export const readOnlyCollectionDirectoryItemActionSet: ContextMenuActionSet = [[
16 name: "Copy item into new collection",
18 execute: (dispatch, resource) => {
19 dispatch<any>(openCollectionPartialCopyToNewCollectionDialog(resource));
23 name: "Copy item into existing collection",
25 execute: (dispatch, resource) => {
26 dispatch<any>(openCollectionPartialCopyToExistingCollectionDialog(resource));
30 component: CollectionFileViewerAction,
31 execute: () => { return; },
34 component: CollectionCopyToClipboardAction,
35 execute: () => { return; },
39 export const readOnlyCollectionFileItemActionSet: ContextMenuActionSet = [[
41 component: DownloadCollectionFileAction,
42 execute: () => { return; }
44 ...readOnlyCollectionDirectoryItemActionSet.reduce((prev, next) => prev.concat(next), []),
47 const writableActionSet: ContextMenuActionSet = [[
49 name: "Move item into new collection",
51 execute: (dispatch, resource) => {
52 dispatch<any>(openCollectionPartialMoveToNewCollectionDialog(resource));
56 name: "Move item into existing collection",
58 execute: (dispatch, resource) => {
59 dispatch<any>(openCollectionPartialMoveToExistingCollectionDialog(resource));
65 execute: (dispatch, resource) => {
66 dispatch<any>(openRenameFileDialog({
69 path: resource.uuid.split('/').slice(1).join('/') }));
75 execute: (dispatch, resource) => {
76 dispatch<any>(openFileRemoveDialog(resource.uuid));
81 export const collectionDirectoryItemActionSet: ContextMenuActionSet = readOnlyCollectionDirectoryItemActionSet.concat(writableActionSet);
83 export const collectionFileItemActionSet: ContextMenuActionSet = readOnlyCollectionFileItemActionSet.concat(writableActionSet);