X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2508b089d2369bf57811f9f96c14c2ee22dd664f..b56396475bcae2a8a1356267120bc712538b198d:/services/workbench2/src/views-components/context-menu/action-sets/project-action-set.ts diff --git a/services/workbench2/src/views-components/context-menu/action-sets/project-action-set.ts b/services/workbench2/src/views-components/context-menu/action-sets/project-action-set.ts index 8181045ca3..1be6c8f13b 100644 --- a/services/workbench2/src/views-components/context-menu/action-sets/project-action-set.ts +++ b/services/workbench2/src/views-components/context-menu/action-sets/project-action-set.ts @@ -2,20 +2,20 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { ContextMenuActionSet } from "../context-menu-action-set"; -import { NewProjectIcon, RenameIcon, MoveToIcon, DetailsIcon, AdvancedIcon, OpenIcon, Link, FolderSharedIcon } from 'components/icon/icon'; +import { ContextMenuActionSet, ContextMenuActionNames } from "../context-menu-action-set"; +import { NewProjectIcon, RenameIcon, MoveToIcon, DetailsIcon, AdvancedIcon, OpenIcon, Link, FolderSharedIcon } from "components/icon/icon"; import { ToggleFavoriteAction } from "../actions/favorite-action"; import { toggleFavorite } from "store/favorites/favorites-actions"; import { favoritePanelActions } from "store/favorite-panel/favorite-panel-action"; -import { openMoveProjectDialog } from 'store/projects/project-move-actions'; -import { openProjectCreateDialog } from 'store/projects/project-create-actions'; -import { openProjectUpdateDialog } from 'store/projects/project-update-actions'; +import { openMoveProjectDialog } from "store/projects/project-move-actions"; +import { openProjectCreateDialog } from "store/projects/project-create-actions"; +import { openProjectUpdateDialog } from "store/projects/project-update-actions"; import { ToggleTrashAction } from "views-components/context-menu/actions/trash-action"; import { toggleProjectTrashed } from "store/trash/trash-actions"; -import { ShareIcon } from 'components/icon/icon'; +import { ShareIcon } from "components/icon/icon"; import { openSharingDialog } from "store/sharing-dialog/sharing-dialog-actions"; import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab"; -import { toggleDetailsPanel } from 'store/details-panel/details-panel-action'; +import { toggleDetailsPanel } from "store/details-panel/details-panel-action"; import { copyToClipboardAction, openInNewTabAction } from "store/open-in-new-tab/open-in-new-tab.actions"; import { openWebDavS3InfoDialog } from "store/collections/collection-info-actions"; import { ToggleLockAction } from "../actions/lock-action"; @@ -23,150 +23,151 @@ import { freezeProject, unfreezeProject } from "store/projects/project-lock-acti export const toggleFavoriteAction = { component: ToggleFavoriteAction, - name: 'ToggleFavoriteAction', - execute: (dispatch, resource) => { - dispatch(toggleFavorite(resource)).then(() => { + name: ContextMenuActionNames.ADD_TO_FAVORITES, + execute: (dispatch, resources) => { + dispatch(toggleFavorite(resources[0])).then(() => { dispatch(favoritePanelActions.REQUEST_ITEMS()); }); - } + }, }; export const openInNewTabMenuAction = { icon: OpenIcon, - name: "Open in new tab", - execute: (dispatch, resource) => { - dispatch(openInNewTabAction(resource)); - } + name: ContextMenuActionNames.OPEN_IN_NEW_TAB, + execute: (dispatch, resources) => { + dispatch(openInNewTabAction(resources[0])); + }, }; export const copyToClipboardMenuAction = { icon: Link, - name: "Copy to clipboard", - execute: (dispatch, resource) => { - dispatch(copyToClipboardAction(resource)); - } + name: ContextMenuActionNames.COPY_TO_CLIPBOARD, + execute: (dispatch, resources) => { + dispatch(copyToClipboardAction(resources)); + }, }; export const viewDetailsAction = { icon: DetailsIcon, - name: "View details", + name: ContextMenuActionNames.VIEW_DETAILS, execute: dispatch => { dispatch(toggleDetailsPanel()); - } -} + }, +}; export const advancedAction = { icon: AdvancedIcon, - name: "API Details", - execute: (dispatch, resource) => { - dispatch(openAdvancedTabDialog(resource.uuid)); - } -} + name: ContextMenuActionNames.API_DETAILS, + execute: (dispatch, resources) => { + dispatch(openAdvancedTabDialog(resources[0].uuid)); + }, +}; export const openWith3rdPartyClientAction = { icon: FolderSharedIcon, - name: "Open with 3rd party client", - execute: (dispatch, resource) => { - dispatch(openWebDavS3InfoDialog(resource.uuid)); - } -} + name: ContextMenuActionNames.OPEN_WITH_3RD_PARTY_CLIENT, + execute: (dispatch, resources) => { + dispatch(openWebDavS3InfoDialog(resources[0].uuid)); + }, +}; export const editProjectAction = { icon: RenameIcon, - name: "Edit project", - execute: (dispatch, resource) => { - dispatch(openProjectUpdateDialog(resource)); - } -} + name: ContextMenuActionNames.EDIT_PROJECT, + execute: (dispatch, resources) => { + dispatch(openProjectUpdateDialog(resources[0])); + }, +}; export const shareAction = { icon: ShareIcon, - name: "Share", - execute: (dispatch, { uuid }) => { - dispatch(openSharingDialog(uuid)); - } -} + name: ContextMenuActionNames.SHARE, + execute: (dispatch, resources) => { + dispatch(openSharingDialog(resources[0].uuid)); + }, +}; export const moveToAction = { icon: MoveToIcon, - name: "Move to", + name: ContextMenuActionNames.MOVE_TO, execute: (dispatch, resource) => { - dispatch(openMoveProjectDialog(resource)); - } -} + dispatch(openMoveProjectDialog(resource[0])); + }, +}; export const toggleTrashAction = { component: ToggleTrashAction, - name: 'ToggleTrashAction', - execute: (dispatch, resource) => { - dispatch(toggleProjectTrashed(resource.uuid, resource.ownerUuid, resource.isTrashed!!)); - } -} + name: ContextMenuActionNames.MOVE_TO_TRASH, + execute: (dispatch, resources) => { + dispatch(toggleProjectTrashed(resources[0].uuid, resources[0].ownerUuid, resources[0].isTrashed!!, resources.length > 1)); + }, +}; export const freezeProjectAction = { component: ToggleLockAction, - name: 'ToggleLockAction', - execute: (dispatch, resource) => { - if (resource.isFrozen) { - dispatch(unfreezeProject(resource.uuid)); + name: ContextMenuActionNames.FREEZE_PROJECT, + execute: (dispatch, resources) => { + if (resources[0].isFrozen) { + dispatch(unfreezeProject(resources[0].uuid)); } else { - dispatch(freezeProject(resource.uuid)); + dispatch(freezeProject(resources[0].uuid)); } - } -} + }, +}; export const newProjectAction: any = { icon: NewProjectIcon, - name: "New project", - execute: (dispatch, resource): void => { - dispatch(openProjectCreateDialog(resource.uuid)); - } -} - -export const readOnlyProjectActionSet: ContextMenuActionSet = [[ - toggleFavoriteAction, - openInNewTabMenuAction, - copyToClipboardMenuAction, - viewDetailsAction, - advancedAction, - openWith3rdPartyClientAction, -]]; - -export const filterGroupActionSet: ContextMenuActionSet = [[ - toggleFavoriteAction, - openInNewTabMenuAction, - copyToClipboardMenuAction, - viewDetailsAction, - advancedAction, - openWith3rdPartyClientAction, - editProjectAction, - shareAction, - moveToAction, - toggleTrashAction, -]]; - -export const frozenActionSet: ContextMenuActionSet = [[ - shareAction, - toggleFavoriteAction, - openInNewTabMenuAction, - copyToClipboardMenuAction, - viewDetailsAction, - advancedAction, - openWith3rdPartyClientAction, - freezeProjectAction -]]; - -export const projectActionSet: ContextMenuActionSet = [[ - toggleFavoriteAction, - openInNewTabMenuAction, - copyToClipboardMenuAction, - viewDetailsAction, - advancedAction, - openWith3rdPartyClientAction, - editProjectAction, - shareAction, - moveToAction, - toggleTrashAction, - newProjectAction, - freezeProjectAction, -]]; + name: ContextMenuActionNames.NEW_PROJECT, + execute: (dispatch, resources): void => { + dispatch(openProjectCreateDialog(resources[0].uuid)); + }, +}; + +export const readOnlyProjectActionSet: ContextMenuActionSet = [ + [toggleFavoriteAction, openInNewTabMenuAction, copyToClipboardMenuAction, viewDetailsAction, advancedAction, openWith3rdPartyClientAction], +]; + +export const filterGroupActionSet: ContextMenuActionSet = [ + [ + toggleFavoriteAction, + openInNewTabMenuAction, + copyToClipboardMenuAction, + viewDetailsAction, + advancedAction, + openWith3rdPartyClientAction, + editProjectAction, + shareAction, + moveToAction, + toggleTrashAction, + ], +]; + +export const frozenActionSet: ContextMenuActionSet = [ + [ + shareAction, + toggleFavoriteAction, + openInNewTabMenuAction, + copyToClipboardMenuAction, + viewDetailsAction, + advancedAction, + openWith3rdPartyClientAction, + freezeProjectAction, + ], +]; + +export const projectActionSet: ContextMenuActionSet = [ + [ + toggleFavoriteAction, + openInNewTabMenuAction, + copyToClipboardMenuAction, + viewDetailsAction, + advancedAction, + openWith3rdPartyClientAction, + editProjectAction, + shareAction, + moveToAction, + toggleTrashAction, + newProjectAction, + freezeProjectAction, + ], +];