//
// SPDX-License-Identifier: AGPL-3.0
-import { MoveToIcon, CopyIcon } from "components/icon/icon";
+import { MoveToIcon, CopyIcon, RenameIcon } from "components/icon/icon";
import { openMoveCollectionDialog } from "store/collections/collection-move-actions";
import { openCollectionCopyDialog, openMultiCollectionCopyDialog } from "store/collections/collection-copy-actions";
import { toggleCollectionTrashed } from "store/trash/trash-actions";
import { ContextMenuResource } from "store/context-menu/context-menu-actions";
-import { MultiSelectMenuActionSet, MultiSelectMenuActionNames } from "./ms-menu-actions";
+import { msCommonActionSet, MultiSelectMenuActionSet, MultiSelectMenuActionNames, MultiSelectMenuAction } from "./ms-menu-actions";
import { TrashIcon } from "components/icon/icon";
+import { openCollectionUpdateDialog } from "store/collections/collection-update-actions";
+
+const { MAKE_A_COPY, MOVE_TO, ADD_TO_TRASH, EDIT_COLLECTION } = MultiSelectMenuActionNames;
+
+const msCopyCollection: MultiSelectMenuAction = {
+ name: MultiSelectMenuActionNames.MAKE_A_COPY,
+ icon: CopyIcon,
+ hasAlts: false,
+ isForMulti: true,
+ execute: (dispatch, [...resources]) => {
+ if (resources[0].fromContextMenu || resources.length === 1) dispatch<any>(openCollectionCopyDialog(resources[0]));
+ else dispatch<any>(openMultiCollectionCopyDialog(resources[0]));
+ },
+}
+
+const msMoveCollection: MultiSelectMenuAction = {
+ name: MultiSelectMenuActionNames.MOVE_TO,
+ icon: MoveToIcon,
+ hasAlts: false,
+ isForMulti: true,
+ execute: (dispatch, resources) => dispatch<any>(openMoveCollectionDialog(resources[0])),
+}
+
+const msToggleTrashAction: MultiSelectMenuAction = {
+ name: MultiSelectMenuActionNames.ADD_TO_TRASH,
+ icon: TrashIcon,
+ isForMulti: true,
+ hasAlts: false,
+ execute: (dispatch, resources: ContextMenuResource[]) => {
+ for (const resource of [...resources]) {
+ dispatch<any>(toggleCollectionTrashed(resource.uuid, resource.isTrashed!!));
+ }
+ },
+}
+
+const msEditCollection: MultiSelectMenuAction = {
+ icon: RenameIcon,
+ hasAlts: false,
+ isForMulti: false,
+ name: "Edit collection",
+ execute: (dispatch, resources) => {
+ dispatch<any>(openCollectionUpdateDialog(resources[0]));
+ },
+}
export const msCollectionActionSet: MultiSelectMenuActionSet = [
[
- {
- name: MultiSelectMenuActionNames.MAKE_A_COPY,
- icon: CopyIcon,
- hasAlts: false,
- isForMulti: true,
- execute: (dispatch, [...resources]) => {
- if (resources[0].fromContextMenu || resources.length === 1) dispatch<any>(openCollectionCopyDialog(resources[0]));
- else dispatch<any>(openMultiCollectionCopyDialog(resources[0]));
- },
- },
- {
- name: MultiSelectMenuActionNames.MOVE_TO,
- icon: MoveToIcon,
- hasAlts: false,
- isForMulti: true,
- execute: (dispatch, resources) => dispatch<any>(openMoveCollectionDialog(resources[0])),
- },
- {
- name: MultiSelectMenuActionNames.ADD_TO_TRASH,
- icon: TrashIcon,
- isForMulti: true,
- hasAlts: false,
- execute: (dispatch, resources: ContextMenuResource[]) => {
- for (const resource of [...resources]) {
- dispatch<any>(toggleCollectionTrashed(resource.uuid, resource.isTrashed!!));
- }
- },
- },
+ ...msCommonActionSet,
+ msCopyCollection,
+ msMoveCollection,
+ msToggleTrashAction,
+ msEditCollection
],
];
+
+//edit collection
\ No newline at end of file
VIEW_DETAILS,
API_DETAILS,
OPEN_W_3RD_PARTY_CLIENT,
- EDIT_PPROJECT,
+ EDIT_PROJECT,
SHARE,
MOVE_TO,
ADD_TO_TRASH,
} = MultiSelectMenuActionNames;
const msEditProjectAction = {
- name: EDIT_PPROJECT,
+ name: EDIT_PROJECT,
icon: RenameIcon,
hasAlts: false,
isForMulti: false,
ADD_TO_TRASH,
API_DETAILS,
COPY_TO_CLIPBOARD,
- EDIT_PPROJECT,
+ EDIT_PROJECT,
FREEZE_PROJECT,
MOVE_TO,
NEW_PROJECT,
]);
export const msReadOnlyProjectActionFilter = new Set<string>([ADD_TO_FAVORITES, API_DETAILS, COPY_TO_CLIPBOARD, OPEN_IN_NEW_TAB, OPEN_W_3RD_PARTY_CLIENT, VIEW_DETAILS,]);
export const msFrozenProjectActionFilter = new Set<string>([ADD_TO_FAVORITES, API_DETAILS, COPY_TO_CLIPBOARD, OPEN_IN_NEW_TAB, OPEN_W_3RD_PARTY_CLIENT, VIEW_DETAILS, SHARE, FREEZE_PROJECT])
-export const msFilterGroupActionFilter = new Set<string>([ADD_TO_FAVORITES, API_DETAILS, COPY_TO_CLIPBOARD, OPEN_IN_NEW_TAB, OPEN_W_3RD_PARTY_CLIENT, VIEW_DETAILS, SHARE, ADD_TO_TRASH, EDIT_PPROJECT, MOVE_TO])
+export const msFilterGroupActionFilter = new Set<string>([ADD_TO_FAVORITES, API_DETAILS, COPY_TO_CLIPBOARD, OPEN_IN_NEW_TAB, OPEN_W_3RD_PARTY_CLIENT, VIEW_DETAILS, SHARE, ADD_TO_TRASH, EDIT_PROJECT, MOVE_TO])