X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/92308b1b044dee2970c4409a0da660ccbecce945..3ed6fab9c3ec7ca31133e4d4c750d546727b1847:/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..2706315179 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 @@ -3,19 +3,19 @@ // 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 { 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,28 +23,28 @@ import { freezeProject, unfreezeProject } from "store/projects/project-lock-acti export const toggleFavoriteAction = { component: ToggleFavoriteAction, - name: 'ToggleFavoriteAction', - execute: (dispatch, resource) => { - dispatch(toggleFavorite(resource)).then(() => { + name: "ToggleFavoriteAction", + 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)); - } + execute: (dispatch, resources) => { + dispatch(openInNewTabAction(resources[0])); + }, }; export const copyToClipboardMenuAction = { icon: Link, name: "Copy to clipboard", - execute: (dispatch, resource) => { - dispatch(copyToClipboardAction(resource)); - } + execute: (dispatch, resources) => { + dispatch(copyToClipboardAction(resources)); + }, }; export const viewDetailsAction = { @@ -52,121 +52,122 @@ export const viewDetailsAction = { name: "View details", execute: dispatch => { dispatch(toggleDetailsPanel()); - } -} + }, +}; export const advancedAction = { icon: AdvancedIcon, name: "API Details", - execute: (dispatch, resource) => { - dispatch(openAdvancedTabDialog(resource.uuid)); - } -} + 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)); - } -} + execute: (dispatch, resources) => { + dispatch(openWebDavS3InfoDialog(resources[0].uuid)); + }, +}; export const editProjectAction = { icon: RenameIcon, name: "Edit project", - execute: (dispatch, resource) => { - dispatch(openProjectUpdateDialog(resource)); - } -} + execute: (dispatch, resources) => { + dispatch(openProjectUpdateDialog(resources[0])); + }, +}; export const shareAction = { icon: ShareIcon, name: "Share", - execute: (dispatch, { uuid }) => { - dispatch(openSharingDialog(uuid)); - } -} + execute: (dispatch, resources) => { + dispatch(openSharingDialog(resources[0].uuid)); + }, +}; export const moveToAction = { icon: MoveToIcon, name: "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: "ToggleTrashAction", + 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: "ToggleLockAction", + 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, -]]; + }, +}; + +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, + ], +];