1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import { ContextMenuAction, ContextMenuActionSet, ContextMenuActionNames } from "views-components/context-menu/context-menu-action-set";
6 import { collectionPanelFilesAction, openMultipleFilesRemoveDialog } from "store/collection-panel/collection-panel-files/collection-panel-files-actions";
8 openCollectionPartialCopyMultipleToNewCollectionDialog,
9 openCollectionPartialCopyMultipleToExistingCollectionDialog,
10 openCollectionPartialCopyToSeparateCollectionsDialog
11 } from 'store/collections/collection-partial-copy-actions';
12 import { openCollectionPartialMoveMultipleToExistingCollectionDialog, openCollectionPartialMoveMultipleToNewCollectionDialog, openCollectionPartialMoveToSeparateCollectionsDialog } from "store/collections/collection-partial-move-actions";
13 import { FileCopyIcon, FileMoveIcon, RemoveIcon, SelectAllIcon, SelectNoneIcon } from "components/icon/icon";
15 const copyActions: ContextMenuAction[] = [
17 name: ContextMenuActionNames.COPY_SELECTED_INTO_NEW_COLLECTION,
19 execute: dispatch => {
20 dispatch<any>(openCollectionPartialCopyMultipleToNewCollectionDialog());
24 name: ContextMenuActionNames.COPY_SELECTED_INTO_EXISTING_COLLECTION,
26 execute: dispatch => {
27 dispatch<any>(openCollectionPartialCopyMultipleToExistingCollectionDialog());
32 const copyActionsMultiple: ContextMenuAction[] = [
35 name: ContextMenuActionNames.COPY_SELECTED_INTO_SEPARATE_COLLECTIONS,
37 execute: dispatch => {
38 dispatch<any>(openCollectionPartialCopyToSeparateCollectionsDialog());
43 const moveActions: ContextMenuAction[] = [
45 name: ContextMenuActionNames.MOVE_SELECTED_INTO_NEW_COLLECTION,
47 execute: dispatch => {
48 dispatch<any>(openCollectionPartialMoveMultipleToNewCollectionDialog());
52 name: ContextMenuActionNames.MOVE_SELECTED_INTO_EXISTING_COLLECTION,
54 execute: dispatch => {
55 dispatch<any>(openCollectionPartialMoveMultipleToExistingCollectionDialog());
60 const moveActionsMultiple: ContextMenuAction[] = [
63 name: ContextMenuActionNames.MOVE_SELECTED_INTO_SEPARATE_COLLECTIONS,
65 execute: dispatch => {
66 dispatch<any>(openCollectionPartialMoveToSeparateCollectionsDialog());
71 const selectActions: ContextMenuAction[] = [
73 name: ContextMenuActionNames.SELECT_ALL,
75 execute: dispatch => {
76 dispatch(collectionPanelFilesAction.SELECT_ALL_COLLECTION_FILES());
80 name: ContextMenuActionNames.UNSELECT_ALL,
82 execute: dispatch => {
83 dispatch(collectionPanelFilesAction.UNSELECT_ALL_COLLECTION_FILES());
88 const removeAction: ContextMenuAction = {
89 name: ContextMenuActionNames.REMOVE_SELECTED,
91 execute: dispatch => {
92 dispatch(openMultipleFilesRemoveDialog());
96 // These action sets are used on the multi-select actions button.
97 export const readOnlyCollectionFilesActionSet: ContextMenuActionSet = [
102 export const readOnlyCollectionFilesMultipleActionSet: ContextMenuActionSet = [
107 export const collectionFilesActionSet: ContextMenuActionSet = readOnlyCollectionFilesActionSet.concat([[
112 export const collectionFilesMultipleActionSet: ContextMenuActionSet = readOnlyCollectionFilesMultipleActionSet.concat([[
114 ...moveActionsMultiple