21128: renamed overloaded context menu types Arvados-DCO-1.1-Signed-off-by: Lisa...
authorLisa Knox <lisaknox83@gmail.com>
Fri, 10 Nov 2023 18:53:22 +0000 (13:53 -0500)
committerLisa Knox <lisaknox83@gmail.com>
Fri, 10 Nov 2023 18:53:22 +0000 (13:53 -0500)
32 files changed:
src/components/multiselect-toolbar/MultiselectToolbar.tsx
src/components/multiselect-toolbar/ms-kind-action-differentiator.ts
src/components/multiselect-toolbar/ms-toolbar-action-filters.ts
src/views-components/context-menu/action-sets/api-client-authorization-action-set.ts
src/views-components/context-menu/action-sets/collection-action-set.ts
src/views-components/context-menu/action-sets/collection-files-action-set.ts
src/views-components/context-menu/action-sets/collection-files-item-action-set.ts
src/views-components/context-menu/action-sets/collection-files-not-selected-action-set.ts
src/views-components/context-menu/action-sets/favorite-action-set.ts
src/views-components/context-menu/action-sets/group-action-set.ts
src/views-components/context-menu/action-sets/group-member-action-set.ts
src/views-components/context-menu/action-sets/keep-service-action-set.ts
src/views-components/context-menu/action-sets/link-action-set.ts
src/views-components/context-menu/action-sets/permission-edit-action-set.ts
src/views-components/context-menu/action-sets/process-resource-action-set.ts
src/views-components/context-menu/action-sets/project-action-set.ts
src/views-components/context-menu/action-sets/project-admin-action-set.ts
src/views-components/context-menu/action-sets/repository-action-set.ts
src/views-components/context-menu/action-sets/resource-action-set.ts
src/views-components/context-menu/action-sets/root-project-action-set.ts
src/views-components/context-menu/action-sets/search-results-action-set.ts
src/views-components/context-menu/action-sets/ssh-key-action-set.ts
src/views-components/context-menu/action-sets/trash-action-set.ts
src/views-components/context-menu/action-sets/trashed-collection-action-set.ts
src/views-components/context-menu/action-sets/user-action-set.ts
src/views-components/context-menu/action-sets/virtual-machine-action-set.ts
src/views-components/context-menu/action-sets/workflow-action-set.ts
src/views-components/context-menu/context-menu-action-set.ts
src/views-components/context-menu/context-menu.tsx
src/views-components/multiselect-toolbar/ms-collection-action-set.ts
src/views-components/multiselect-toolbar/ms-process-action-set.ts
src/views-components/multiselect-toolbar/ms-project-action-set.ts

index 3d8ae0c3d315435958f71cf683826dbec6a5c827..7bc442fb59fbd718d7b2158779fd66b68caff54b 100644 (file)
@@ -13,7 +13,7 @@ import { ContextMenuResource } from "store/context-menu/context-menu-actions";
 import { Resource, extractUuidKind } from "models/resource";
 import { getResource } from "store/resources/resources";
 import { ResourcesState } from "store/resources/resources";
-import { ContextMenuAction, ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { ContextMenuActionItem, ContextMenuActionItemSet } from "views-components/context-menu/context-menu-action-set";
 import { RestoreFromTrashIcon, TrashIcon } from "components/icon/icon";
 import { multiselectActionsFilters, TMultiselectActionsFilters, contextMenuActionConsts } from "./ms-toolbar-action-filters";
 import { kindToActionSet, findActionByName } from "./ms-kind-action-differentiator";
@@ -42,7 +42,7 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
 export type MultiselectToolbarProps = {
     checkedList: TCheckedList;
     resources: ResourcesState;
-    executeMulti: (action: ContextMenuAction, checkedList: TCheckedList, resources: ResourcesState) => void;
+    executeMulti: (action: ContextMenuActionItem, checkedList: TCheckedList, resources: ResourcesState) => void;
 };
 
 export const MultiselectToolbar = connect(
@@ -130,14 +130,14 @@ function groupByKind(checkedList: TCheckedList, resources: ResourcesState): Reco
     return result;
 }
 
-function filterActions(actionArray: ContextMenuActionSet, filters: Set<string>): Array<ContextMenuAction> {
+function filterActions(actionArray: ContextMenuActionItemSet, filters: Set<string>): Array<ContextMenuActionItem> {
     return actionArray[0].filter(action => filters.has(action.name as string));
 }
 
 function selectActionsByKind(currentResourceKinds: Array<string>, filterSet: TMultiselectActionsFilters) {
-    const rawResult: Set<ContextMenuAction> = new Set();
+    const rawResult: Set<ContextMenuActionItem> = new Set();
     const resultNames = new Set();
-    const allFiltersArray: ContextMenuAction[][] = [];
+    const allFiltersArray: ContextMenuActionItem[][] = [];
     currentResourceKinds.forEach(kind => {
         if (filterSet[kind]) {
             const actions = filterActions(...filterSet[kind]);
@@ -188,7 +188,7 @@ function mapStateToProps(state: RootState) {
 
 function mapDispatchToProps(dispatch: Dispatch) {
     return {
-        executeMulti: (selectedAction: ContextMenuAction, checkedList: TCheckedList, resources: ResourcesState): void => {
+        executeMulti: (selectedAction: ContextMenuActionItem, checkedList: TCheckedList, resources: ResourcesState): void => {
             const kindGroups = groupByKind(checkedList, resources);
             switch (selectedAction.name) {
                 case contextMenuActionConsts.MOVE_TO:
index e2f643b6870e76d8f9e56b4e77ce49e679f29f80..9c79f247c99a889fce262a42bf5037290765eca5 100644 (file)
@@ -3,18 +3,18 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { ResourceKind } from "models/resource";
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { ContextMenuActionItemSet } from "views-components/context-menu/context-menu-action-set";
 import { msCollectionActionSet } from "views-components/multiselect-toolbar/ms-collection-action-set";
 import { msProjectActionSet } from "views-components/multiselect-toolbar/ms-project-action-set";
 import { msProcessActionSet } from "views-components/multiselect-toolbar/ms-process-action-set";
 
-export function findActionByName(name: string, actionSet: ContextMenuActionSet) {
+export function findActionByName(name: string, actionSet: ContextMenuActionItemSet) {
     return actionSet[0].find(action => action.name === name);
 }
 
 const { COLLECTION, PROJECT, PROCESS } = ResourceKind;
 
-export const kindToActionSet: Record<string, ContextMenuActionSet> = {
+export const kindToActionSet: Record<string, ContextMenuActionItemSet> = {
     [COLLECTION]: msCollectionActionSet,
     [PROJECT]: msProjectActionSet,
     [PROCESS]: msProcessActionSet,
index 9145a820694c7196c2676209e47cff43e327ae2d..e907bf58122accfae6c33ff9c9dda2402a60325a 100644 (file)
@@ -3,26 +3,27 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import { ResourceKind } from "models/resource";
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { ContextMenuActionItemSet } from "views-components/context-menu/context-menu-action-set";
 import { msCollectionActionSet } from "views-components/multiselect-toolbar/ms-collection-action-set";
 import { msProjectActionSet } from "views-components/multiselect-toolbar/ms-project-action-set";
 import { msProcessActionSet } from "views-components/multiselect-toolbar/ms-process-action-set";
 
-export type TMultiselectActionsFilters = Record<string, [ContextMenuActionSet, Set<string>]>;
+export type TMultiselectActionsFilters = Record<string, [ContextMenuActionItemSet, Set<string>]>;
 
 export const contextMenuActionConsts = {
     MAKE_A_COPY: "Make a copy",
     MOVE_TO: "Move to",
     TOGGLE_TRASH_ACTION: "ToggleTrashAction",
+    TOGGLE_FAVORITES_ACTION: "ToggleFavoriteAction",
     COPY_TO_CLIPBOARD: "Copy to clipboard",
     COPY_AND_RERUN_PROCESS: "Copy and re-run process",
     REMOVE: "Remove",
 };
 
-const { MOVE_TO, TOGGLE_TRASH_ACTION, REMOVE, MAKE_A_COPY } = contextMenuActionConsts;
+const { MOVE_TO, TOGGLE_TRASH_ACTION, TOGGLE_FAVORITES_ACTION, REMOVE, MAKE_A_COPY } = contextMenuActionConsts;
 
 //these sets govern what actions are on the ms toolbar for each resource kind
-const projectMSActionsFilter = new Set([MOVE_TO, TOGGLE_TRASH_ACTION]);
+const projectMSActionsFilter = new Set([MOVE_TO, TOGGLE_TRASH_ACTION, TOGGLE_FAVORITES_ACTION]);
 const processResourceMSActionsFilter = new Set([MOVE_TO, REMOVE]);
 const collectionMSActionsFilter = new Set([MAKE_A_COPY, MOVE_TO, TOGGLE_TRASH_ACTION]);
 
index 8e75d22f6714d97853f2d7061aa9167dc793a072..ff3963fefd3738a1c7a76b5bb800db62993ec41d 100644 (file)
@@ -7,10 +7,10 @@ import {
     openApiClientAuthorizationRemoveDialog,
 } from "store/api-client-authorizations/api-client-authorizations-actions";
 import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab";
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { ContextMenuActionItemSet } from "views-components/context-menu/context-menu-action-set";
 import { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
 
-export const apiClientAuthorizationActionSet: ContextMenuActionSet = [
+export const apiClientAuthorizationActionSet: ContextMenuActionItemSet = [
     [
         {
             name: "Attributes",
index 95aec9c7c94f476be3de1aa2f595040211b8d6b6..264ca5c0ca1596f4c19b8443e008a6d5878ccff6 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuAction, ContextMenuActionSet } from "../context-menu-action-set";
+import { ContextMenuActionItem, ContextMenuActionItemSet } from "../context-menu-action-set";
 import { ToggleFavoriteAction } from "../actions/favorite-action";
 import { toggleFavorite } from "store/favorites/favorites-actions";
 import {
@@ -34,7 +34,7 @@ import { togglePublicFavorite } from "store/public-favorites/public-favorites-ac
 import { publicFavoritePanelActions } from "store/public-favorites-panel/public-favorites-action";
 import { ContextMenuResource } from "store/context-menu/context-menu-actions";
 
-const toggleFavoriteAction: ContextMenuAction = {
+const toggleFavoriteAction: ContextMenuActionItem = {
     component: ToggleFavoriteAction,
     name: "ToggleFavoriteAction",
     execute: (dispatch, resources) => {
@@ -45,7 +45,7 @@ const toggleFavoriteAction: ContextMenuAction = {
         }
     },
 };
-const commonActionSet: ContextMenuActionSet = [
+const commonActionSet: ContextMenuActionItemSet = [
     [
         {
             icon: OpenIcon,
@@ -86,7 +86,7 @@ const commonActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const readOnlyCollectionActionSet: ContextMenuActionSet = [
+export const readOnlyCollectionActionSet: ContextMenuActionItemSet = [
     [
         ...commonActionSet.reduce((prev, next) => prev.concat(next), []),
         toggleFavoriteAction,
@@ -100,7 +100,7 @@ export const readOnlyCollectionActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const collectionActionSet: ContextMenuActionSet = [
+export const collectionActionSet: ContextMenuActionItemSet = [
     [
         ...readOnlyCollectionActionSet.reduce((prev, next) => prev.concat(next), []),
         {
@@ -134,7 +134,7 @@ export const collectionActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const collectionAdminActionSet: ContextMenuActionSet = [
+export const collectionAdminActionSet: ContextMenuActionItemSet = [
     [
         ...collectionActionSet.reduce((prev, next) => prev.concat(next), []),
         {
@@ -151,7 +151,7 @@ export const collectionAdminActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const oldCollectionVersionActionSet: ContextMenuActionSet = [
+export const oldCollectionVersionActionSet: ContextMenuActionItemSet = [
     [
         ...commonActionSet.reduce((prev, next) => prev.concat(next), []),
         {
index 80deb37cade38c6768421f80187ee7ac6f5a0fe7..48b8cd82704fb28863506086df4c287df244a377 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuAction, ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { ContextMenuActionItem, ContextMenuActionItemSet } from "views-components/context-menu/context-menu-action-set";
 import { collectionPanelFilesAction, openMultipleFilesRemoveDialog } from "store/collection-panel/collection-panel-files/collection-panel-files-actions";
 import {
     openCollectionPartialCopyMultipleToNewCollectionDialog,
@@ -12,7 +12,7 @@ import {
 import { openCollectionPartialMoveMultipleToExistingCollectionDialog, openCollectionPartialMoveMultipleToNewCollectionDialog, openCollectionPartialMoveToSeparateCollectionsDialog } from "store/collections/collection-partial-move-actions";
 import { FileCopyIcon, FileMoveIcon, RemoveIcon, SelectAllIcon, SelectNoneIcon } from "components/icon/icon";
 
-const copyActions: ContextMenuAction[] = [
+const copyActions: ContextMenuActionItem[] = [
     {
         name: "Copy selected into new collection",
         icon: FileCopyIcon,
@@ -29,7 +29,7 @@ const copyActions: ContextMenuAction[] = [
     },
 ];
 
-const copyActionsMultiple: ContextMenuAction[] = [
+const copyActionsMultiple: ContextMenuActionItem[] = [
     ...copyActions,
     {
         name: "Copy selected into separate collections",
@@ -40,7 +40,7 @@ const copyActionsMultiple: ContextMenuAction[] = [
     }
 ];
 
-const moveActions: ContextMenuAction[] = [
+const moveActions: ContextMenuActionItem[] = [
     {
         name: "Move selected into new collection",
         icon: FileMoveIcon,
@@ -57,7 +57,7 @@ const moveActions: ContextMenuAction[] = [
     },
 ];
 
-const moveActionsMultiple: ContextMenuAction[] = [
+const moveActionsMultiple: ContextMenuActionItem[] = [
     ...moveActions,
     {
         name: "Move selected into separate collections",
@@ -68,7 +68,7 @@ const moveActionsMultiple: ContextMenuAction[] = [
     }
 ];
 
-const selectActions: ContextMenuAction[] = [
+const selectActions: ContextMenuActionItem[] = [
     {
         name: "Select all",
         icon: SelectAllIcon,
@@ -85,7 +85,7 @@ const selectActions: ContextMenuAction[] = [
     },
 ];
 
-const removeAction: ContextMenuAction = {
+const removeAction: ContextMenuActionItem = {
     name: "Remove selected",
     icon: RemoveIcon,
     execute: dispatch => {
@@ -94,22 +94,22 @@ const removeAction: ContextMenuAction = {
 };
 
 // These action sets are used on the multi-select actions button.
-export const readOnlyCollectionFilesActionSet: ContextMenuActionSet = [
+export const readOnlyCollectionFilesActionSet: ContextMenuActionItemSet = [
     selectActions,
     copyActions,
 ];
 
-export const readOnlyCollectionFilesMultipleActionSet: ContextMenuActionSet = [
+export const readOnlyCollectionFilesMultipleActionSet: ContextMenuActionItemSet = [
     selectActions,
     copyActionsMultiple,
 ];
 
-export const collectionFilesActionSet: ContextMenuActionSet = readOnlyCollectionFilesActionSet.concat([[
+export const collectionFilesActionSet: ContextMenuActionItemSet = readOnlyCollectionFilesActionSet.concat([[
     removeAction,
     ...moveActions
 ]]);
 
-export const collectionFilesMultipleActionSet: ContextMenuActionSet = readOnlyCollectionFilesMultipleActionSet.concat([[
+export const collectionFilesMultipleActionSet: ContextMenuActionItemSet = readOnlyCollectionFilesMultipleActionSet.concat([[
     removeAction,
     ...moveActionsMultiple
 ]]);
index fb158a826d58904dd055d8b5b1e4b22aa3f2e469..5f767b485a28f604b582acad1a48d5298dbac1db 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from "../context-menu-action-set";
+import { ContextMenuActionItemSet } from "../context-menu-action-set";
 import { FileCopyIcon, FileMoveIcon, RemoveIcon, RenameIcon } from "components/icon/icon";
 import { DownloadCollectionFileAction } from "../actions/download-collection-file-action";
 import { openFileRemoveDialog, openRenameFileDialog } from "store/collection-panel/collection-panel-files/collection-panel-files-actions";
@@ -17,7 +17,7 @@ import {
     openCollectionPartialCopyToNewCollectionDialog,
 } from "store/collections/collection-partial-copy-actions";
 
-export const readOnlyCollectionDirectoryItemActionSet: ContextMenuActionSet = [
+export const readOnlyCollectionDirectoryItemActionSet: ContextMenuActionItemSet = [
     [
         {
             name: "Copy item into new collection",
@@ -48,7 +48,7 @@ export const readOnlyCollectionDirectoryItemActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const readOnlyCollectionFileItemActionSet: ContextMenuActionSet = [
+export const readOnlyCollectionFileItemActionSet: ContextMenuActionItemSet = [
     [
         {
             component: DownloadCollectionFileAction,
@@ -60,7 +60,7 @@ export const readOnlyCollectionFileItemActionSet: ContextMenuActionSet = [
     ],
 ];
 
-const writableActionSet: ContextMenuActionSet = [
+const writableActionSet: ContextMenuActionItemSet = [
     [
         {
             name: "Move item into new collection",
@@ -99,6 +99,6 @@ const writableActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const collectionDirectoryItemActionSet: ContextMenuActionSet = readOnlyCollectionDirectoryItemActionSet.concat(writableActionSet);
+export const collectionDirectoryItemActionSet: ContextMenuActionItemSet = readOnlyCollectionDirectoryItemActionSet.concat(writableActionSet);
 
-export const collectionFileItemActionSet: ContextMenuActionSet = readOnlyCollectionFileItemActionSet.concat(writableActionSet);
+export const collectionFileItemActionSet: ContextMenuActionItemSet = readOnlyCollectionFileItemActionSet.concat(writableActionSet);
index 1e31d11c800742eac41659e502513aeb39d4d86f..dee166023acdcafd910d5d3edceeaa16e3e6c359 100644 (file)
@@ -2,11 +2,11 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { ContextMenuActionItemSet } from "views-components/context-menu/context-menu-action-set";
 import { collectionPanelFilesAction } from "store/collection-panel/collection-panel-files/collection-panel-files-actions";
 import { SelectAllIcon } from "components/icon/icon";
 
-export const collectionFilesNotSelectedActionSet: ContextMenuActionSet = [[{
+export const collectionFilesNotSelectedActionSet: ContextMenuActionItemSet = [[{
     name: "Select all",
     icon: SelectAllIcon,
     execute: dispatch => {
index bdc4b07a2452658569830103a99b1a58134ca982..c1126c85e7516430013061f960450c2cd8a33790 100644 (file)
@@ -2,12 +2,12 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from '../context-menu-action-set';
+import { ContextMenuActionItemSet } from '../context-menu-action-set';
 import { ToggleFavoriteAction } from '../actions/favorite-action';
 import { toggleFavorite } from 'store/favorites/favorites-actions';
 import { favoritePanelActions } from 'store/favorite-panel/favorite-panel-action';
 
-export const favoriteActionSet: ContextMenuActionSet = [
+export const favoriteActionSet: ContextMenuActionItemSet = [
     [
         {
             component: ToggleFavoriteAction,
index 816583faa9f05e3c2d5291362dc12449b503dc92..f5f9d665492c792c696b67aea963518200013ec1 100644 (file)
@@ -2,12 +2,12 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { ContextMenuActionItemSet } from 'views-components/context-menu/context-menu-action-set';
 import { RenameIcon, AdvancedIcon, RemoveIcon, AttributesIcon } from 'components/icon/icon';
 import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
 import { openGroupAttributes, openRemoveGroupDialog, openGroupUpdateDialog } from 'store/groups-panel/groups-panel-actions';
 
-export const groupActionSet: ContextMenuActionSet = [
+export const groupActionSet: ContextMenuActionItemSet = [
     [
         {
             name: 'Rename',
index ad1ce97c2dcb8ba3ee238d7ee10b1a39809f81e7..34d71d03227c6fdb65f348f5fdf5507099c1b8cd 100644 (file)
@@ -2,12 +2,12 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { ContextMenuActionItemSet } from 'views-components/context-menu/context-menu-action-set';
 import { AdvancedIcon, RemoveIcon, AttributesIcon } from 'components/icon/icon';
 import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
 import { openGroupMemberAttributes, openRemoveGroupMemberDialog } from 'store/group-details-panel/group-details-panel-actions';
 
-export const groupMemberActionSet: ContextMenuActionSet = [
+export const groupMemberActionSet: ContextMenuActionItemSet = [
     [
         {
             name: 'Attributes',
index 2957f008cd055f04fea2533e3a5e9e28ee96dfac..9959ab365b14cbe9ec3f93ac4744d4b83cf37126 100644 (file)
@@ -4,10 +4,10 @@
 
 import { openKeepServiceAttributesDialog, openKeepServiceRemoveDialog } from 'store/keep-services/keep-services-actions';
 import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
-import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { ContextMenuActionItemSet } from 'views-components/context-menu/context-menu-action-set';
 import { AdvancedIcon, RemoveIcon, AttributesIcon } from 'components/icon/icon';
 
-export const keepServiceActionSet: ContextMenuActionSet = [
+export const keepServiceActionSet: ContextMenuActionItemSet = [
     [
         {
             name: 'Attributes',
index 86458423c2e09e489016d3dd8d226c72dd370b8e..63bcf62b9ce2b9dda64f5933a3e7fc0c77e50e1f 100644 (file)
@@ -4,10 +4,10 @@
 
 import { openLinkAttributesDialog, openLinkRemoveDialog } from 'store/link-panel/link-panel-actions';
 import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
-import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { ContextMenuActionItemSet } from 'views-components/context-menu/context-menu-action-set';
 import { AdvancedIcon, RemoveIcon, AttributesIcon } from 'components/icon/icon';
 
-export const linkActionSet: ContextMenuActionSet = [
+export const linkActionSet: ContextMenuActionItemSet = [
     [
         {
             name: 'Attributes',
index 4b6950ee24e17b1019afb72bfdd84fc314ca3176..eb29a41293bd19024cac4e766443d4c443e445d3 100644 (file)
@@ -2,12 +2,12 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { ContextMenuActionItemSet } from 'views-components/context-menu/context-menu-action-set';
 import { CanReadIcon, CanManageIcon, CanWriteIcon } from 'components/icon/icon';
 import { editPermissionLevel } from 'store/group-details-panel/group-details-panel-actions';
 import { PermissionLevel } from 'models/permission';
 
-export const permissionEditActionSet: ContextMenuActionSet = [
+export const permissionEditActionSet: ContextMenuActionItemSet = [
     [
         {
             name: 'Read',
index 64b90ff45c5d84a57b7eb832831b5bf0667dee45..db1c7507b27cbb61b6a6ad48185d1fa5074a9e93 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from "../context-menu-action-set";
+import { ContextMenuActionItemSet } from "../context-menu-action-set";
 import { ToggleFavoriteAction } from "../actions/favorite-action";
 import { toggleFavorite } from "store/favorites/favorites-actions";
 import {
@@ -32,7 +32,7 @@ import { publicFavoritePanelActions } from "store/public-favorites-panel/public-
 import { openInNewTabAction } from "store/open-in-new-tab/open-in-new-tab.actions";
 import { cancelRunningWorkflow } from "store/processes/processes-actions";
 
-export const readOnlyProcessResourceActionSet: ContextMenuActionSet = [
+export const readOnlyProcessResourceActionSet: ContextMenuActionItemSet = [
     [
         {
             component: ToggleFavoriteAction,
@@ -82,7 +82,7 @@ export const readOnlyProcessResourceActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const processResourceActionSet: ContextMenuActionSet = [
+export const processResourceActionSet: ContextMenuActionItemSet = [
     [
         ...readOnlyProcessResourceActionSet.reduce((prev, next) => prev.concat(next), []),
         {
@@ -116,7 +116,7 @@ export const processResourceActionSet: ContextMenuActionSet = [
     ],
 ];
 
-const runningProcessOnlyActionSet: ContextMenuActionSet = [
+const runningProcessOnlyActionSet: ContextMenuActionItemSet = [
     [
         {
             name: "CANCEL",
@@ -128,7 +128,7 @@ const runningProcessOnlyActionSet: ContextMenuActionSet = [
     ]
 ];
 
-export const processResourceAdminActionSet: ContextMenuActionSet = [
+export const processResourceAdminActionSet: ContextMenuActionItemSet = [
     [
         ...processResourceActionSet.reduce((prev, next) => prev.concat(next), []),
         {
@@ -150,7 +150,7 @@ export const runningProcessResourceActionSet = [
     ],
 ];
 
-export const runningProcessResourceAdminActionSet: ContextMenuActionSet = [
+export const runningProcessResourceAdminActionSet: ContextMenuActionItemSet = [
     [
         ...processResourceAdminActionSet.reduce((prev, next) => prev.concat(next), []),
         ...runningProcessOnlyActionSet.reduce((prev, next) => prev.concat(next), []),
index 2706315179b718124d61bb0eaf3b1bb708c13607..b48c72f316657631069f0a00a7897dd44349b9c7 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from "../context-menu-action-set";
+import { ContextMenuActionItemSet } 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";
@@ -123,11 +123,11 @@ export const newProjectAction: any = {
     },
 };
 
-export const readOnlyProjectActionSet: ContextMenuActionSet = [
+export const readOnlyProjectActionSet: ContextMenuActionItemSet = [
     [toggleFavoriteAction, openInNewTabMenuAction, copyToClipboardMenuAction, viewDetailsAction, advancedAction, openWith3rdPartyClientAction],
 ];
 
-export const filterGroupActionSet: ContextMenuActionSet = [
+export const filterGroupActionSet: ContextMenuActionItemSet = [
     [
         toggleFavoriteAction,
         openInNewTabMenuAction,
@@ -142,7 +142,7 @@ export const filterGroupActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const frozenActionSet: ContextMenuActionSet = [
+export const frozenActionSet: ContextMenuActionItemSet = [
     [
         shareAction,
         toggleFavoriteAction,
@@ -155,7 +155,7 @@ export const frozenActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const projectActionSet: ContextMenuActionSet = [
+export const projectActionSet: ContextMenuActionItemSet = [
     [
         toggleFavoriteAction,
         openInNewTabMenuAction,
index 490bf3e30a9e649f85165a988751aff4357be40f..fd7b18f2f4b3d7cf54cfbd0cf0292fc6dd23a697 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from "../context-menu-action-set";
+import { ContextMenuActionItemSet } from "../context-menu-action-set";
 import { TogglePublicFavoriteAction } from "views-components/context-menu/actions/public-favorite-action";
 import { togglePublicFavorite } from "store/public-favorites/public-favorites-actions";
 import { publicFavoritePanelActions } from "store/public-favorites-panel/public-favorites-action";
@@ -32,7 +32,7 @@ export const togglePublicFavoriteAction = {
     },
 };
 
-export const projectAdminActionSet: ContextMenuActionSet = [
+export const projectAdminActionSet: ContextMenuActionItemSet = [
     [
         toggleFavoriteAction,
         openInNewTabMenuAction,
@@ -50,7 +50,7 @@ export const projectAdminActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const filterGroupAdminActionSet: ContextMenuActionSet = [
+export const filterGroupAdminActionSet: ContextMenuActionItemSet = [
     [
         toggleFavoriteAction,
         openInNewTabMenuAction,
@@ -66,7 +66,7 @@ export const filterGroupAdminActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const frozenAdminActionSet: ContextMenuActionSet = [
+export const frozenAdminActionSet: ContextMenuActionItemSet = [
     [
         shareAction,
         togglePublicFavoriteAction,
index cbdcd004288780cbdbd3c5cfe2e41449d966fae5..f92a1daff44e2f6d61c896cf4d3b0d0050876db0 100644 (file)
@@ -2,13 +2,13 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { ContextMenuActionItemSet } from 'views-components/context-menu/context-menu-action-set';
 import { AdvancedIcon, RemoveIcon, ShareIcon, AttributesIcon } from 'components/icon/icon';
 import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
 import { openRepositoryAttributes, openRemoveRepositoryDialog } from 'store/repositories/repositories-actions';
 import { openSharingDialog } from 'store/sharing-dialog/sharing-dialog-actions';
 
-export const repositoryActionSet: ContextMenuActionSet = [
+export const repositoryActionSet: ContextMenuActionItemSet = [
     [
         {
             name: 'Attributes',
index 401e9634d93c3db56533f4450298f6e7f9acb380..1d3a511cd8dfe73576b215e40d3ce888bf1b7b6b 100644 (file)
@@ -2,11 +2,11 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from '../context-menu-action-set';
+import { ContextMenuActionItemSet } from '../context-menu-action-set';
 import { ToggleFavoriteAction } from '../actions/favorite-action';
 import { toggleFavorite } from 'store/favorites/favorites-actions';
 
-export const resourceActionSet: ContextMenuActionSet = [
+export const resourceActionSet: ContextMenuActionItemSet = [
     [
         {
             component: ToggleFavoriteAction,
index a779d1eb2967877c766d7166b63ae00697a4bfb4..7e47bd951bf10514b01e25729bb8b28d633ef74b 100644 (file)
@@ -2,12 +2,12 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from '../context-menu-action-set';
+import { ContextMenuActionItemSet } from '../context-menu-action-set';
 import { openCollectionCreateDialog } from 'store/collections/collection-create-actions';
 import { NewProjectIcon, CollectionIcon } from 'components/icon/icon';
 import { openProjectCreateDialog } from 'store/projects/project-create-actions';
 
-export const rootProjectActionSet: ContextMenuActionSet = [
+export const rootProjectActionSet: ContextMenuActionItemSet = [
     [
         {
             icon: NewProjectIcon,
index dcc9eae20700160c3fdd3bf72224754b9bdded81..ca93fd3e1960ab9c1f2edfa855b5f8545d4447b1 100644 (file)
@@ -2,13 +2,13 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from '../context-menu-action-set';
+import { ContextMenuActionItemSet } from '../context-menu-action-set';
 import { DetailsIcon, AdvancedIcon, OpenIcon, Link } from 'components/icon/icon';
 import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
 import { toggleDetailsPanel } from 'store/details-panel/details-panel-action';
 import { copyToClipboardAction, openInNewTabAction } from 'store/open-in-new-tab/open-in-new-tab.actions';
 
-export const searchResultsActionSet: ContextMenuActionSet = [
+export const searchResultsActionSet: ContextMenuActionItemSet = [
     [
         {
             icon: OpenIcon,
index c31e1681a4f88bd861c12ae6158837db982ccdbb..64bc7bc7a8e5d620ae4661baf6bfc94b6442d4f3 100644 (file)
@@ -2,12 +2,12 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { ContextMenuActionItemSet } from 'views-components/context-menu/context-menu-action-set';
 import { AdvancedIcon, RemoveIcon, AttributesIcon } from 'components/icon/icon';
 import { openSshKeyRemoveDialog, openSshKeyAttributesDialog } from 'store/auth/auth-action-ssh';
 import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
 
-export const sshKeyActionSet: ContextMenuActionSet = [
+export const sshKeyActionSet: ContextMenuActionItemSet = [
     [
         {
             name: 'Attributes',
index 82e00df6cbbb9fbf26229f012370f8dba568c242..acfca61ce6d673592284714176c1f3cdc38933b6 100644 (file)
@@ -2,11 +2,11 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from '../context-menu-action-set';
+import { ContextMenuActionItemSet } from '../context-menu-action-set';
 import { ToggleTrashAction } from 'views-components/context-menu/actions/trash-action';
 import { toggleTrashed } from 'store/trash/trash-actions';
 
-export const trashActionSet: ContextMenuActionSet = [
+export const trashActionSet: ContextMenuActionItemSet = [
     [
         {
             component: ToggleTrashAction,
index 3e8f0cb647e38e8f73b35e33faf562ccc9caa155..a8e4f12486f0c1f8566323c185775355e2ac5d0f 100644 (file)
@@ -2,13 +2,13 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from '../context-menu-action-set';
+import { ContextMenuActionItemSet } from '../context-menu-action-set';
 import { DetailsIcon, ProvenanceGraphIcon, AdvancedIcon, RestoreFromTrashIcon } from 'components/icon/icon';
 import { toggleCollectionTrashed } from 'store/trash/trash-actions';
 import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
 import { toggleDetailsPanel } from 'store/details-panel/details-panel-action';
 
-export const trashedCollectionActionSet: ContextMenuActionSet = [
+export const trashedCollectionActionSet: ContextMenuActionItemSet = [
     [
         {
             icon: DetailsIcon,
index 0108ff7e50ec1a3cf164ba77019449b1039a0fb2..104aa91feeff0c6c5e0262a4d0a458ee29d557eb 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { ContextMenuActionItemSet } from 'views-components/context-menu/context-menu-action-set';
 import {
     AdvancedIcon,
     ProjectIcon,
@@ -26,7 +26,7 @@ import {
     isOtherUser,
 } from 'store/context-menu/context-menu-filters';
 
-export const userActionSet: ContextMenuActionSet = [
+export const userActionSet: ContextMenuActionItemSet = [
     [
         {
             name: 'Attributes',
index a26cbe1368d4aa0c8b435af7db26f65b8c138b19..82abeba909cc7f445bce0c3d3fa4039cf7126902 100644 (file)
@@ -2,12 +2,12 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { ContextMenuActionItemSet } from 'views-components/context-menu/context-menu-action-set';
 import { AdvancedIcon, RemoveIcon, AttributesIcon } from 'components/icon/icon';
 import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
 import { openVirtualMachineAttributes, openRemoveVirtualMachineDialog } from 'store/virtual-machines/virtual-machines-actions';
 
-export const virtualMachineActionSet: ContextMenuActionSet = [
+export const virtualMachineActionSet: ContextMenuActionItemSet = [
     [
         {
             name: 'Attributes',
index 4a1460bfc94f81552283595f7d31ffd08d97517a..68f920e3533694dc5657f9d0de6c1092e8d64d26 100644 (file)
@@ -2,14 +2,14 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { ContextMenuActionItemSet } from "views-components/context-menu/context-menu-action-set";
 import { openRunProcess, deleteWorkflow } from "store/workflow-panel/workflow-panel-actions";
 import { DetailsIcon, AdvancedIcon, OpenIcon, Link, StartIcon, TrashIcon } from "components/icon/icon";
 import { copyToClipboardAction, openInNewTabAction } from "store/open-in-new-tab/open-in-new-tab.actions";
 import { toggleDetailsPanel } from "store/details-panel/details-panel-action";
 import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab";
 
-export const readOnlyWorkflowActionSet: ContextMenuActionSet = [
+export const readOnlyWorkflowActionSet: ContextMenuActionItemSet = [
     [
         {
             icon: OpenIcon,
@@ -49,7 +49,7 @@ export const readOnlyWorkflowActionSet: ContextMenuActionSet = [
     ],
 ];
 
-export const workflowActionSet: ContextMenuActionSet = [
+export const workflowActionSet: ContextMenuActionItemSet = [
     [
         ...readOnlyWorkflowActionSet[0],
         {
index a953500b3ae7a49f9216bce9544b24b3771a9982..8ff28aeb63648fd59b099080ecaeead7356e6d5f 100644 (file)
@@ -6,8 +6,8 @@ import { Dispatch } from "redux";
 import { ContextMenuItem } from "components/context-menu/context-menu";
 import { ContextMenuResource } from "store/context-menu/context-menu-actions";
 
-export interface ContextMenuAction extends ContextMenuItem {
+export interface ContextMenuActionItem extends ContextMenuItem {
     execute(dispatch: Dispatch, resources: ContextMenuResource[], state?: any): void;
 }
 
-export type ContextMenuActionSet = Array<Array<ContextMenuAction>>;
+export type ContextMenuActionItemSet = Array<Array<ContextMenuActionItem>>;
index 2a5cccc0a549231d2860ec93bb5beec9d5435c1e..94dae5202a28afffda17ca820173d4296451da8c 100644 (file)
@@ -7,7 +7,7 @@ import { RootState } from "store/store";
 import { contextMenuActions, ContextMenuResource } from "store/context-menu/context-menu-actions";
 import { ContextMenu as ContextMenuComponent, ContextMenuProps, ContextMenuItem } from "components/context-menu/context-menu";
 import { createAnchorAt } from "components/popover/helpers";
-import { ContextMenuActionSet, ContextMenuAction } from "./context-menu-action-set";
+import { ContextMenuActionItemSet, ContextMenuActionItem } from "./context-menu-action-set";
 import { Dispatch } from "redux";
 import { memoize } from "lodash";
 import { sortByProperty } from "common/array-utils";
@@ -41,7 +41,7 @@ const mapDispatchToProps = (dispatch: Dispatch): ActionProps => ({
     onClose: () => {
         dispatch(contextMenuActions.CLOSE_CONTEXT_MENU());
     },
-    onItemClick: (action: ContextMenuAction, resource?: ContextMenuResource) => {
+    onItemClick: (action: ContextMenuActionItem, resource?: ContextMenuResource) => {
         dispatch(contextMenuActions.CLOSE_CONTEXT_MENU());
         if (resource) {
             action.execute(dispatch, [resource]);
@@ -64,15 +64,15 @@ const mergeProps = ({ resource, ...dataProps }: DataProps, actionProps: ActionPr
 
 export const ContextMenu = connect(mapStateToProps, mapDispatchToProps, mergeProps)(ContextMenuComponent);
 
-const menuActionSets = new Map<string, ContextMenuActionSet>();
+const menuActionSets = new Map<string, ContextMenuActionItemSet>();
 
-export const addMenuActionSet = (name: string, itemSet: ContextMenuActionSet) => {
+export const addMenuActionSet = (name: string, itemSet: ContextMenuActionItemSet) => {
     const sorted = itemSet.map(items => items.sort(sortByProperty("name")));
     menuActionSets.set(name, sorted);
 };
 
-const emptyActionSet: ContextMenuActionSet = [];
-const getMenuActionSet = (resource?: ContextMenuResource): ContextMenuActionSet =>
+const emptyActionSet: ContextMenuActionItemSet = [];
+const getMenuActionSet = (resource?: ContextMenuResource): ContextMenuActionItemSet =>
     resource ? menuActionSets.get(resource.menuKind) || emptyActionSet : emptyActionSet;
 
 export enum ContextMenuKind {
index b0a2a1b024793aafc8e86d269f468c7a49324862..8787b2283d56928d48728065b04731dc6ac7d378 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { ContextMenuActionItemSet } from "views-components/context-menu/context-menu-action-set";
 import { MoveToIcon, CopyIcon } from "components/icon/icon";
 import { openMoveCollectionDialog } from "store/collections/collection-move-actions";
 import { openCollectionCopyDialog, openMultiCollectionCopyDialog } from "store/collections/collection-copy-actions";
@@ -10,7 +10,7 @@ import { ToggleTrashAction } from "views-components/context-menu/actions/trash-a
 import { toggleCollectionTrashed } from "store/trash/trash-actions";
 import { ContextMenuResource } from "store/context-menu/context-menu-actions";
 
-export const msCollectionActionSet: ContextMenuActionSet = [
+export const msCollectionActionSet: ContextMenuActionItemSet = [
     [
         {
             icon: CopyIcon,
index 820fc7999eeb0595c22fba64a7f64cccfd8e61f0..5fbd265f197ccbdcb8b6c458f7a3ce2f663a5524 100644 (file)
@@ -2,13 +2,13 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { ContextMenuActionItemSet } from "views-components/context-menu/context-menu-action-set";
 import { MoveToIcon, RemoveIcon, ReRunProcessIcon } from "components/icon/icon";
 import { openMoveProcessDialog } from "store/processes/process-move-actions";
 import { openCopyProcessDialog } from "store/processes/process-copy-actions";
 import { openRemoveProcessDialog } from "store/processes/processes-actions";
 
-export const msProcessActionSet: ContextMenuActionSet = [
+export const msProcessActionSet: ContextMenuActionItemSet = [
     [
         {
             icon: ReRunProcessIcon,
index 2b5dfa22a5d9a0c16fd1f8fdf07534c91c87ce6f..b4d12951f8797bb404f775fc3da546fff9cb2196 100644 (file)
@@ -2,12 +2,25 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { ContextMenuActionItemSet } from "views-components/context-menu/context-menu-action-set";
 import { MoveToIcon, Link } from "components/icon/icon";
 import { openMoveProjectDialog } from "store/projects/project-move-actions";
 import { ToggleTrashAction } from "views-components/context-menu/actions/trash-action";
 import { toggleProjectTrashed } from "store/trash/trash-actions";
 import { copyToClipboardAction } from "store/open-in-new-tab/open-in-new-tab.actions";
+import { ToggleFavoriteAction } from "views-components/context-menu/actions/favorite-action";
+import { toggleFavorite } from "store/favorites/favorites-actions";
+import { favoritePanelActions } from "store/favorite-panel/favorite-panel-action";
+
+export const msToggleFavoriteAction = {
+    component: ToggleFavoriteAction,
+    name: "ToggleFavoriteAction",
+    execute: (dispatch, resources) => {
+        dispatch(toggleFavorite(resources[0])).then(() => {
+            dispatch(favoritePanelActions.REQUEST_ITEMS());
+        });
+    },
+};
 
 export const msCopyToClipboardMenuAction = {
     icon: Link,
@@ -35,4 +48,4 @@ export const msToggleTrashAction = {
     },
 };
 
-export const msProjectActionSet: ContextMenuActionSet = [[msCopyToClipboardMenuAction, msMoveToAction, msToggleTrashAction]];
+export const msProjectActionSet: ContextMenuActionItemSet = [[msToggleFavoriteAction, msCopyToClipboardMenuAction, msMoveToAction, msToggleTrashAction]]