[arvados-workbench2] updated: 2.6.0-55-g859bae14
git repository hosting
git at public.arvados.org
Tue Jul 18 22:07:13 UTC 2023
Summary of changes:
.../multiselectToolbar/MultiselectToolbar.tsx | 46 +++-
.../api-client-authorization-action-set.ts | 50 +++--
.../action-sets/collection-action-set.ts | 52 +++--
.../collection-files-item-action-set.ts | 99 +++++----
.../action-sets/favorite-action-set.ts | 30 +--
.../context-menu/action-sets/group-action-set.ts | 65 +++---
.../action-sets/group-member-action-set.ts | 50 +++--
.../action-sets/keep-service-action-set.ts | 48 +++--
.../context-menu/action-sets/link-action-set.ts | 48 +++--
.../action-sets/permission-edit-action-set.ts | 50 +++--
.../action-sets/process-resource-action-set.ts | 231 +++++++++++----------
.../action-sets/repository-action-set.ts | 67 +++---
.../action-sets/resource-action-set.ts | 22 +-
.../action-sets/root-project-action-set.ts | 38 ++--
.../action-sets/search-results-action-set.ts | 38 ++--
.../context-menu/action-sets/ssh-key-action-set.ts | 48 +++--
.../context-menu/action-sets/trash-action-set.ts | 24 ++-
.../action-sets/trashed-collection-action-set.ts | 68 +++---
.../context-menu/action-sets/user-action-set.ts | 148 ++++++-------
.../action-sets/virtual-machine-action-set.ts | 50 +++--
.../action-sets/workflow-action-set.ts | 92 ++++----
.../context-menu/context-menu-action-set.ts | 10 +-
src/views-components/context-menu/context-menu.tsx | 114 +++++-----
.../process-remove-many-dialog.tsx | 2 +
24 files changed, 817 insertions(+), 673 deletions(-)
via 859bae14d31fe063ed1204be7300083b3216de60 (commit)
from a9d431d649c84f52a55852f687052b3c4f67a3eb (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 859bae14d31fe063ed1204be7300083b3216de60
Author: Lisa Knox <lisaknox83 at gmail.com>
Date: Tue Jul 18 18:06:56 2023 -0400
15768: changed all context menu actions to take an array of resources Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox at curii.com>
diff --git a/src/components/multiselectToolbar/MultiselectToolbar.tsx b/src/components/multiselectToolbar/MultiselectToolbar.tsx
index 557a7f11..1092cf98 100644
--- a/src/components/multiselectToolbar/MultiselectToolbar.tsx
+++ b/src/components/multiselectToolbar/MultiselectToolbar.tsx
@@ -22,11 +22,7 @@ import { CopyProcessDialog, CopyManyProcessesDialog } from 'views-components/dia
import { collectionActionSet } from 'views-components/context-menu/action-sets/collection-action-set';
import { ContextMenuAction, ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
import { TrashIcon } from 'components/icon/icon';
-import {
- multiselectActionsFilters,
- TMultiselectActionsFilters,
- contextMenuActionConsts,
-} from './ms-toolbar-action-filters';
+import { multiselectActionsFilters, TMultiselectActionsFilters, contextMenuActionConsts } from './ms-toolbar-action-filters';
import { kindToActionSet, findActionByName } from './ms-kind-action-differentiator';
type CssRules = 'root' | 'button';
@@ -171,17 +167,47 @@ function mapStateToProps(state: RootState) {
function mapDispatchToProps(dispatch: Dispatch) {
return {
- executeMulti: (action: ContextMenuAction, checkedList: TCheckedList, resources: ResourcesState) => {
- selectedToArray(checkedList).forEach((uuid) => {
- const resource = getResource(uuid)(resources);
- executeSpecific(dispatch, action.name, resource);
- });
+ // executeMulti: (action: ContextMenuAction, checkedList: TCheckedList, resources: ResourcesState) => {
+ // selectedToArray(checkedList).forEach((uuid) => {
+ // const resource = getResource(uuid)(resources);
+ // executeSpecific(dispatch, action.name, resource);
+ // });
+ // },
+ executeMulti: (selectedAction: ContextMenuAction, checkedList: TCheckedList, resources: ResourcesState) => {
+ console.log(groupByKind(checkedList, resources));
+ // selectedToArray(checkedList).forEach((uuid) => {
+ // const resource = getResource(uuid)(resources);
+ // executeSpecific(dispatch, action.name, resource);
+ // });
+ const kindGroups = groupByKind(checkedList, resources);
+ for (const kind in kindGroups) {
+ const actionSet = kindToActionSet[kind];
+ const action = findActionByName(selectedAction.name as string, actionSet);
+ // if (action) action.execute(dispatch, kindGroups[kind]);
+ // if (action && action.name === 'ToggleTrashAction') action.execute(dispatch, kindGroups[kind]);
+ }
},
};
}
+// function executeSpecific(dispatch: Dispatch, actionName, resource) {
+// const actionSet = kindToActionSet[resource.kind];
+// const action = findActionByName(actionName, actionSet);
+// if (action) action.execute(dispatch, resource);
+// }
+
function executeSpecific(dispatch: Dispatch, actionName, resource) {
const actionSet = kindToActionSet[resource.kind];
const action = findActionByName(actionName, actionSet);
if (action) action.execute(dispatch, resource);
}
+
+function groupByKind(checkedList: TCheckedList, resources: ResourcesState): Record<string, Array<Resource | undefined>> {
+ const result = {};
+ selectedToArray(checkedList).forEach((uuid) => {
+ const resource = getResource(uuid)(resources) as Resource;
+ if (!result[resource.kind]) result[resource.kind] = [];
+ result[resource.kind].push(resource);
+ });
+ return result;
+}
diff --git a/src/views-components/context-menu/action-sets/api-client-authorization-action-set.ts b/src/views-components/context-menu/action-sets/api-client-authorization-action-set.ts
index aeaa6a22..001bae4f 100644
--- a/src/views-components/context-menu/action-sets/api-client-authorization-action-set.ts
+++ b/src/views-components/context-menu/action-sets/api-client-authorization-action-set.ts
@@ -4,28 +4,34 @@
import {
openApiClientAuthorizationAttributesDialog,
- openApiClientAuthorizationRemoveDialog
+ 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 { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
+import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { AdvancedIcon, RemoveIcon, AttributesIcon } from 'components/icon/icon';
-export const apiClientAuthorizationActionSet: ContextMenuActionSet = [[{
- name: "Attributes",
- icon: AttributesIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openApiClientAuthorizationAttributesDialog(uuid));
- }
-}, {
- name: "API Details",
- icon: AdvancedIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openAdvancedTabDialog(uuid));
- }
-}, {
- name: "Remove",
- icon: RemoveIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openApiClientAuthorizationRemoveDialog(uuid));
- }
-}]];
+export const apiClientAuthorizationActionSet: ContextMenuActionSet = [
+ [
+ {
+ name: 'Attributes',
+ icon: AttributesIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach(({ uuid }) => dispatch<any>(openApiClientAuthorizationAttributesDialog(uuid)));
+ },
+ },
+ {
+ name: 'API Details',
+ icon: AdvancedIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach(({ uuid }) => dispatch<any>(openAdvancedTabDialog(uuid)));
+ },
+ },
+ {
+ name: 'Remove',
+ icon: RemoveIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach(({ uuid }) => dispatch<any>(openApiClientAuthorizationRemoveDialog(uuid)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/collection-action-set.ts b/src/views-components/context-menu/action-sets/collection-action-set.ts
index 5b170f67..fec40794 100644
--- a/src/views-components/context-menu/action-sets/collection-action-set.ts
+++ b/src/views-components/context-menu/action-sets/collection-action-set.ts
@@ -32,14 +32,17 @@ import { openRestoreCollectionVersionDialog } from 'store/collections/collection
import { TogglePublicFavoriteAction } from '../actions/public-favorite-action';
import { togglePublicFavorite } from 'store/public-favorites/public-favorites-actions';
import { publicFavoritePanelActions } from 'store/public-favorites-panel/public-favorites-action';
+import { ContextMenuResource } from 'store/context-menu/context-menu-actions';
const toggleFavoriteAction: ContextMenuAction = {
component: ToggleFavoriteAction,
name: 'ToggleFavoriteAction',
- execute: (dispatch, resource) => {
- dispatch<any>(toggleFavorite(resource)).then(() => {
- dispatch<any>(favoritePanelActions.REQUEST_ITEMS());
- });
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) =>
+ dispatch<any>(toggleFavorite(resource)).then(() => {
+ dispatch<any>(favoritePanelActions.REQUEST_ITEMS());
+ })
+ );
},
};
@@ -62,8 +65,8 @@ const commonActionSet: ContextMenuActionSet = [
{
icon: CopyIcon,
name: 'Make a copy',
- execute: (dispatch, resource) => {
- dispatch<any>(openCollectionCopyDialog(resource));
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openCollectionCopyDialog(resource)));
},
},
{
@@ -76,8 +79,8 @@ const commonActionSet: ContextMenuActionSet = [
{
icon: AdvancedIcon,
name: 'API Details',
- execute: (dispatch, resource) => {
- dispatch<any>(openAdvancedTabDialog(resource.uuid));
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
},
},
],
@@ -90,8 +93,8 @@ export const readOnlyCollectionActionSet: ContextMenuActionSet = [
{
icon: FolderSharedIcon,
name: 'Open with 3rd party client',
- execute: (dispatch, resource) => {
- dispatch<any>(openWebDavS3InfoDialog(resource.uuid));
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openWebDavS3InfoDialog(resource.uuid)));
},
},
],
@@ -103,27 +106,28 @@ export const collectionActionSet: ContextMenuActionSet = [
{
icon: RenameIcon,
name: 'Edit collection',
- execute: (dispatch, resource) => {
- dispatch<any>(openCollectionUpdateDialog(resource));
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openCollectionUpdateDialog(resource)));
},
},
{
icon: ShareIcon,
name: 'Share',
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openSharingDialog(uuid));
+ execute: (dispatch, resources) => {
+ resources.forEach(({ uuid }) => dispatch<any>(openSharingDialog(uuid)));
},
},
{
icon: MoveToIcon,
name: 'Move to',
- execute: (dispatch, resource) => dispatch<any>(openMoveCollectionDialog(resource)),
+ execute: (dispatch, resources) => resources.forEach((resource) => dispatch<any>(openMoveCollectionDialog(resource))),
},
{
component: ToggleTrashAction,
name: 'ToggleTrashAction',
- execute: (dispatch, resource) => {
- dispatch<any>(toggleCollectionTrashed(resource.uuid, resource.isTrashed!!));
+ // execute: (dispatch, resource) => {
+ execute: (dispatch, resources: ContextMenuResource[]) => {
+ resources.forEach((resource) => dispatch<any>(toggleCollectionTrashed(resource.uuid, resource.isTrashed!!)));
},
},
],
@@ -135,10 +139,12 @@ export const collectionAdminActionSet: ContextMenuActionSet = [
{
component: TogglePublicFavoriteAction,
name: 'TogglePublicFavoriteAction',
- execute: (dispatch, resource) => {
- dispatch<any>(togglePublicFavorite(resource)).then(() => {
- dispatch<any>(publicFavoritePanelActions.REQUEST_ITEMS());
- });
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) =>
+ dispatch<any>(togglePublicFavorite(resource)).then(() => {
+ dispatch<any>(publicFavoritePanelActions.REQUEST_ITEMS());
+ })
+ );
},
},
],
@@ -150,8 +156,8 @@ export const oldCollectionVersionActionSet: ContextMenuActionSet = [
{
icon: RestoreVersionIcon,
name: 'Restore version',
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openRestoreCollectionVersionDialog(uuid));
+ execute: (dispatch, resources) => {
+ resources.forEach(({ uuid }) => dispatch<any>(openRestoreCollectionVersionDialog(uuid)));
},
},
],
diff --git a/src/views-components/context-menu/action-sets/collection-files-item-action-set.ts b/src/views-components/context-menu/action-sets/collection-files-item-action-set.ts
index 4cb9ebda..03674665 100644
--- a/src/views-components/context-menu/action-sets/collection-files-item-action-set.ts
+++ b/src/views-components/context-menu/action-sets/collection-files-item-action-set.ts
@@ -2,52 +2,69 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "../context-menu-action-set";
-import { RemoveIcon, RenameIcon } from "components/icon/icon";
-import { DownloadCollectionFileAction } from "../actions/download-collection-file-action";
+import { ContextMenuActionSet } from '../context-menu-action-set';
+import { 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';
import { CollectionFileViewerAction } from 'views-components/context-menu/actions/collection-file-viewer-action';
-import { CollectionCopyToClipboardAction } from "../actions/collection-copy-to-clipboard-action";
+import { CollectionCopyToClipboardAction } from '../actions/collection-copy-to-clipboard-action';
-export const readOnlyCollectionDirectoryItemActionSet: ContextMenuActionSet = [[
- {
- component: CollectionFileViewerAction,
- execute: () => { return; },
- },
- {
- component: CollectionCopyToClipboardAction,
- execute: () => { return; },
- }
-]];
+export const readOnlyCollectionDirectoryItemActionSet: ContextMenuActionSet = [
+ [
+ {
+ component: CollectionFileViewerAction,
+ execute: () => {
+ return;
+ },
+ },
+ {
+ component: CollectionCopyToClipboardAction,
+ execute: () => {
+ return;
+ },
+ },
+ ],
+];
-export const readOnlyCollectionFileItemActionSet: ContextMenuActionSet = [[
- {
- component: DownloadCollectionFileAction,
- execute: () => { return; }
- },
- ...readOnlyCollectionDirectoryItemActionSet.reduce((prev, next) => prev.concat(next), []),
-]];
+export const readOnlyCollectionFileItemActionSet: ContextMenuActionSet = [
+ [
+ {
+ component: DownloadCollectionFileAction,
+ execute: () => {
+ return;
+ },
+ },
+ ...readOnlyCollectionDirectoryItemActionSet.reduce((prev, next) => prev.concat(next), []),
+ ],
+];
-const writableActionSet: ContextMenuActionSet = [[
- {
- name: "Rename",
- icon: RenameIcon,
- execute: (dispatch, resource) => {
- dispatch<any>(openRenameFileDialog({
- name: resource.name,
- id: resource.uuid,
- path: resource.uuid.split('/').slice(1).join('/') }));
- }
- },
- {
- name: "Remove",
- icon: RemoveIcon,
- execute: (dispatch, resource) => {
- dispatch<any>(openFileRemoveDialog(resource.uuid));
- }
- }
-]];
+const writableActionSet: ContextMenuActionSet = [
+ [
+ {
+ name: 'Rename',
+ icon: RenameIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) =>
+ dispatch<any>(
+ openRenameFileDialog({
+ name: resource.name,
+ id: resource.uuid,
+ path: resource.uuid.split('/').slice(1).join('/'),
+ })
+ )
+ );
+ },
+ },
+ {
+ name: 'Remove',
+ icon: RemoveIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openFileRemoveDialog(resource.uuid)));
+ },
+ },
+ ],
+];
export const collectionDirectoryItemActionSet: ContextMenuActionSet = readOnlyCollectionDirectoryItemActionSet.concat(writableActionSet);
-export const collectionFileItemActionSet: ContextMenuActionSet = readOnlyCollectionFileItemActionSet.concat(writableActionSet);
\ No newline at end of file
+export const collectionFileItemActionSet: ContextMenuActionSet = readOnlyCollectionFileItemActionSet.concat(writableActionSet);
diff --git a/src/views-components/context-menu/action-sets/favorite-action-set.ts b/src/views-components/context-menu/action-sets/favorite-action-set.ts
index ee012fb1..bdc4b07a 100644
--- a/src/views-components/context-menu/action-sets/favorite-action-set.ts
+++ b/src/views-components/context-menu/action-sets/favorite-action-set.ts
@@ -2,16 +2,22 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } 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";
+import { ContextMenuActionSet } 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 = [[{
- component: ToggleFavoriteAction,
- execute: (dispatch, resource) => {
- dispatch<any>(toggleFavorite(resource)).then(() => {
- dispatch<any>(favoritePanelActions.REQUEST_ITEMS());
- });
- }
-}]];
+export const favoriteActionSet: ContextMenuActionSet = [
+ [
+ {
+ component: ToggleFavoriteAction,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) =>
+ dispatch<any>(toggleFavorite(resource)).then(() => {
+ dispatch<any>(favoritePanelActions.REQUEST_ITEMS());
+ })
+ );
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/group-action-set.ts b/src/views-components/context-menu/action-sets/group-action-set.ts
index f573af69..23d88264 100644
--- a/src/views-components/context-menu/action-sets/group-action-set.ts
+++ b/src/views-components/context-menu/action-sets/group-action-set.ts
@@ -2,33 +2,40 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } 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";
+import { ContextMenuActionSet } 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 = [[{
- name: "Rename",
- icon: RenameIcon,
- execute: (dispatch, resource) => {
- dispatch<any>(openGroupUpdateDialog(resource));
- }
-}, {
- name: "Attributes",
- icon: AttributesIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openGroupAttributes(uuid));
- }
-}, {
- name: "API Details",
- icon: AdvancedIcon,
- execute: (dispatch, resource) => {
- dispatch<any>(openAdvancedTabDialog(resource.uuid));
- }
-}, {
- name: "Remove",
- icon: RemoveIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openRemoveGroupDialog(uuid));
- }
-}]];
+export const groupActionSet: ContextMenuActionSet = [
+ [
+ {
+ name: 'Rename',
+ icon: RenameIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openGroupUpdateDialog(resource)));
+ },
+ },
+ {
+ name: 'Attributes',
+ icon: AttributesIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openGroupAttributes(resource.uuid)));
+ },
+ },
+ {
+ name: 'API Details',
+ icon: AdvancedIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
+ },
+ },
+ {
+ name: 'Remove',
+ icon: RemoveIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openRemoveGroupDialog(resource.uuid)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/group-member-action-set.ts b/src/views-components/context-menu/action-sets/group-member-action-set.ts
index 37aa35c0..17b3d74c 100644
--- a/src/views-components/context-menu/action-sets/group-member-action-set.ts
+++ b/src/views-components/context-menu/action-sets/group-member-action-set.ts
@@ -2,27 +2,33 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } 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 { ContextMenuActionSet } 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 = [[{
- name: "Attributes",
- icon: AttributesIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openGroupMemberAttributes(uuid));
- }
-}, {
- name: "API Details",
- icon: AdvancedIcon,
- execute: (dispatch, resource) => {
- dispatch<any>(openAdvancedTabDialog(resource.uuid));
- }
-}, {
- name: "Remove",
- icon: RemoveIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openRemoveGroupMemberDialog(uuid));
- }
-}]];
+export const groupMemberActionSet: ContextMenuActionSet = [
+ [
+ {
+ name: 'Attributes',
+ icon: AttributesIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openGroupMemberAttributes(resource.uuid)));
+ },
+ },
+ {
+ name: 'API Details',
+ icon: AdvancedIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
+ },
+ },
+ {
+ name: 'Remove',
+ icon: RemoveIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openRemoveGroupMemberDialog(resource.uuid)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/keep-service-action-set.ts b/src/views-components/context-menu/action-sets/keep-service-action-set.ts
index 820d1978..0d2cbd07 100644
--- a/src/views-components/context-menu/action-sets/keep-service-action-set.ts
+++ b/src/views-components/context-menu/action-sets/keep-service-action-set.ts
@@ -4,25 +4,31 @@
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 { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
+import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { AdvancedIcon, RemoveIcon, AttributesIcon } from 'components/icon/icon';
-export const keepServiceActionSet: ContextMenuActionSet = [[{
- name: "Attributes",
- icon: AttributesIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openKeepServiceAttributesDialog(uuid));
- }
-}, {
- name: "API Details",
- icon: AdvancedIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openAdvancedTabDialog(uuid));
- }
-}, {
- name: "Remove",
- icon: RemoveIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openKeepServiceRemoveDialog(uuid));
- }
-}]];
+export const keepServiceActionSet: ContextMenuActionSet = [
+ [
+ {
+ name: 'Attributes',
+ icon: AttributesIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openKeepServiceAttributesDialog(resource.uuid)));
+ },
+ },
+ {
+ name: 'API Details',
+ icon: AdvancedIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
+ },
+ },
+ {
+ name: 'Remove',
+ icon: RemoveIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openKeepServiceRemoveDialog(resource.uuid)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/link-action-set.ts b/src/views-components/context-menu/action-sets/link-action-set.ts
index 929a65a9..4f0b330e 100644
--- a/src/views-components/context-menu/action-sets/link-action-set.ts
+++ b/src/views-components/context-menu/action-sets/link-action-set.ts
@@ -4,25 +4,31 @@
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 { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
+import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { AdvancedIcon, RemoveIcon, AttributesIcon } from 'components/icon/icon';
-export const linkActionSet: ContextMenuActionSet = [[{
- name: "Attributes",
- icon: AttributesIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openLinkAttributesDialog(uuid));
- }
-}, {
- name: "API Details",
- icon: AdvancedIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openAdvancedTabDialog(uuid));
- }
-}, {
- name: "Remove",
- icon: RemoveIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openLinkRemoveDialog(uuid));
- }
-}]];
+export const linkActionSet: ContextMenuActionSet = [
+ [
+ {
+ name: 'Attributes',
+ icon: AttributesIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openLinkAttributesDialog(resource.uuid)));
+ },
+ },
+ {
+ name: 'API Details',
+ icon: AdvancedIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
+ },
+ },
+ {
+ name: 'Remove',
+ icon: RemoveIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openLinkRemoveDialog(resource.uuid)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/permission-edit-action-set.ts b/src/views-components/context-menu/action-sets/permission-edit-action-set.ts
index 8663d3c7..4b6950ee 100644
--- a/src/views-components/context-menu/action-sets/permission-edit-action-set.ts
+++ b/src/views-components/context-menu/action-sets/permission-edit-action-set.ts
@@ -2,27 +2,33 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
-import { CanReadIcon, CanManageIcon, CanWriteIcon } from "components/icon/icon";
+import { ContextMenuActionSet } 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";
+import { PermissionLevel } from 'models/permission';
-export const permissionEditActionSet: ContextMenuActionSet = [[{
- name: "Read",
- icon: CanReadIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(editPermissionLevel(uuid, PermissionLevel.CAN_READ));
- }
-}, {
- name: "Write",
- icon: CanWriteIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(editPermissionLevel(uuid, PermissionLevel.CAN_WRITE));
- }
-}, {
- name: "Manage",
- icon: CanManageIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(editPermissionLevel(uuid, PermissionLevel.CAN_MANAGE));
- }
-}]];
+export const permissionEditActionSet: ContextMenuActionSet = [
+ [
+ {
+ name: 'Read',
+ icon: CanReadIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(editPermissionLevel(resource.uuid, PermissionLevel.CAN_READ)));
+ },
+ },
+ {
+ name: 'Write',
+ icon: CanWriteIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(editPermissionLevel(resource.uuid, PermissionLevel.CAN_WRITE)));
+ },
+ },
+ {
+ name: 'Manage',
+ icon: CanManageIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(editPermissionLevel(resource.uuid, PermissionLevel.CAN_MANAGE)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/process-resource-action-set.ts b/src/views-components/context-menu/action-sets/process-resource-action-set.ts
index 7d593ee4..9ea1dc62 100644
--- a/src/views-components/context-menu/action-sets/process-resource-action-set.ts
+++ b/src/views-components/context-menu/action-sets/process-resource-action-set.ts
@@ -2,118 +2,135 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "../context-menu-action-set";
-import { ToggleFavoriteAction } from "../actions/favorite-action";
-import { toggleFavorite } from "store/favorites/favorites-actions";
+import { ContextMenuActionSet } from '../context-menu-action-set';
+import { ToggleFavoriteAction } from '../actions/favorite-action';
+import { toggleFavorite } from 'store/favorites/favorites-actions';
import {
- RenameIcon, ShareIcon, MoveToIcon, DetailsIcon,
- RemoveIcon, ReRunProcessIcon, OutputIcon,
+ RenameIcon,
+ ShareIcon,
+ MoveToIcon,
+ DetailsIcon,
+ RemoveIcon,
+ ReRunProcessIcon,
+ OutputIcon,
AdvancedIcon,
- OpenIcon
-} from "components/icon/icon";
-import { favoritePanelActions } from "store/favorite-panel/favorite-panel-action";
+ OpenIcon,
+} from 'components/icon/icon';
+import { favoritePanelActions } from 'store/favorite-panel/favorite-panel-action';
import { openMoveProcessDialog } from 'store/processes/process-move-actions';
-import { openProcessUpdateDialog } from "store/processes/process-update-actions";
+import { openProcessUpdateDialog } from 'store/processes/process-update-actions';
import { openCopyProcessDialog } from 'store/processes/process-copy-actions';
-import { openSharingDialog } from "store/sharing-dialog/sharing-dialog-actions";
-import { openRemoveProcessDialog } from "store/processes/processes-actions";
+import { openSharingDialog } from 'store/sharing-dialog/sharing-dialog-actions';
+import { openRemoveProcessDialog } from 'store/processes/processes-actions';
import { toggleDetailsPanel } from 'store/details-panel/details-panel-action';
-import { navigateToOutput } from "store/process-panel/process-panel-actions";
-import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab";
-import { TogglePublicFavoriteAction } from "../actions/public-favorite-action";
-import { togglePublicFavorite } from "store/public-favorites/public-favorites-actions";
-import { publicFavoritePanelActions } from "store/public-favorites-panel/public-favorites-action";
-import { openInNewTabAction } from "store/open-in-new-tab/open-in-new-tab.actions";
+import { navigateToOutput } from 'store/process-panel/process-panel-actions';
+import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
+import { TogglePublicFavoriteAction } from '../actions/public-favorite-action';
+import { togglePublicFavorite } from 'store/public-favorites/public-favorites-actions';
+import { publicFavoritePanelActions } from 'store/public-favorites-panel/public-favorites-action';
+import { openInNewTabAction } from 'store/open-in-new-tab/open-in-new-tab.actions';
-export const readOnlyProcessResourceActionSet: ContextMenuActionSet = [[
- {
- component: ToggleFavoriteAction,
- execute: (dispatch, resource) => {
- dispatch<any>(toggleFavorite(resource)).then(() => {
- dispatch<any>(favoritePanelActions.REQUEST_ITEMS());
- });
- }
- },
- {
- icon: OpenIcon,
- name: "Open in new tab",
- execute: (dispatch, resource) => {
- dispatch<any>(openInNewTabAction(resource));
- }
- },
- {
- icon: ReRunProcessIcon,
- name: "Copy and re-run process",
- execute: (dispatch, resource) => {
- dispatch<any>(openCopyProcessDialog(resource));
- }
- },
- {
- icon: OutputIcon,
- name: "Outputs",
- execute: (dispatch, resource) => {
- if(resource.outputUuid){
- dispatch<any>(navigateToOutput(resource.outputUuid));
- }
- }
- },
- {
- icon: DetailsIcon,
- name: "View details",
- execute: dispatch => {
- dispatch<any>(toggleDetailsPanel());
- }
- },
- {
- icon: AdvancedIcon,
- name: "API Details",
- execute: (dispatch, resource) => {
- dispatch<any>(openAdvancedTabDialog(resource.uuid));
- }
- },
-]];
+export const readOnlyProcessResourceActionSet: ContextMenuActionSet = [
+ [
+ {
+ component: ToggleFavoriteAction,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) =>
+ dispatch<any>(toggleFavorite(resource)).then(() => {
+ dispatch<any>(favoritePanelActions.REQUEST_ITEMS());
+ })
+ );
+ },
+ },
+ {
+ icon: OpenIcon,
+ name: 'Open in new tab',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openInNewTabAction(resource)));
+ },
+ },
+ {
+ icon: ReRunProcessIcon,
+ name: 'Copy and re-run process',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openCopyProcessDialog(resource)));
+ },
+ },
+ {
+ icon: OutputIcon,
+ name: 'Outputs',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => {
+ if (resource.outputUuid) {
+ dispatch<any>(navigateToOutput(resource.outputUuid));
+ }
+ });
+ },
+ },
+ {
+ icon: DetailsIcon,
+ name: 'View details',
+ execute: (dispatch) => {
+ dispatch<any>(toggleDetailsPanel());
+ },
+ },
+ {
+ icon: AdvancedIcon,
+ name: 'API Details',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
+ },
+ },
+ ],
+];
-export const processResourceActionSet: ContextMenuActionSet = [[
- ...readOnlyProcessResourceActionSet.reduce((prev, next) => prev.concat(next), []),
- {
- icon: RenameIcon,
- name: "Edit process",
- execute: (dispatch, resource) => {
- dispatch<any>(openProcessUpdateDialog(resource));
- }
- },
- {
- icon: ShareIcon,
- name: "Share",
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openSharingDialog(uuid));
- }
- },
- {
- icon: MoveToIcon,
- name: "Move to",
- execute: (dispatch, resource) => {
- dispatch<any>(openMoveProcessDialog(resource));
- }
- },
- {
- name: "Remove",
- icon: RemoveIcon,
- execute: (dispatch, resource) => {
- dispatch<any>(openRemoveProcessDialog(resource.uuid));
- }
- }
-]];
+export const processResourceActionSet: ContextMenuActionSet = [
+ [
+ ...readOnlyProcessResourceActionSet.reduce((prev, next) => prev.concat(next), []),
+ {
+ icon: RenameIcon,
+ name: 'Edit process',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openProcessUpdateDialog(resource)));
+ },
+ },
+ {
+ icon: ShareIcon,
+ name: 'Share',
+ execute: (dispatch, resources) => {
+ resources.forEach(({ uuid }) => dispatch<any>(openSharingDialog(uuid)));
+ },
+ },
+ {
+ icon: MoveToIcon,
+ name: 'Move to',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openMoveProcessDialog(resource)));
+ },
+ },
+ {
+ name: 'Remove',
+ icon: RemoveIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openRemoveProcessDialog(resource.uuid)));
+ },
+ },
+ ],
+];
-export const processResourceAdminActionSet: ContextMenuActionSet = [[
- ...processResourceActionSet.reduce((prev, next) => prev.concat(next), []),
- {
- component: TogglePublicFavoriteAction,
- name: "Add to public favorites",
- execute: (dispatch, resource) => {
- dispatch<any>(togglePublicFavorite(resource)).then(() => {
- dispatch<any>(publicFavoritePanelActions.REQUEST_ITEMS());
- });
- }
- },
-]];
+export const processResourceAdminActionSet: ContextMenuActionSet = [
+ [
+ ...processResourceActionSet.reduce((prev, next) => prev.concat(next), []),
+ {
+ component: TogglePublicFavoriteAction,
+ name: 'Add to public favorites',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) =>
+ dispatch<any>(togglePublicFavorite(resource)).then(() => {
+ dispatch<any>(publicFavoritePanelActions.REQUEST_ITEMS());
+ })
+ );
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/repository-action-set.ts b/src/views-components/context-menu/action-sets/repository-action-set.ts
index 12fec7c4..e893a7fa 100644
--- a/src/views-components/context-menu/action-sets/repository-action-set.ts
+++ b/src/views-components/context-menu/action-sets/repository-action-set.ts
@@ -2,34 +2,41 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } 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";
+import { ContextMenuActionSet } 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 = [[{
- name: "Attributes",
- icon: AttributesIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openRepositoryAttributes(uuid));
- }
-}, {
- name: "Share",
- icon: ShareIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openSharingDialog(uuid));
- }
-}, {
- name: "API Details",
- icon: AdvancedIcon,
- execute: (dispatch, resource) => {
- dispatch<any>(openAdvancedTabDialog(resource.uuid));
- }
-}, {
- name: "Remove",
- icon: RemoveIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openRemoveRepositoryDialog(uuid));
- }
-}]];
+export const repositoryActionSet: ContextMenuActionSet = [
+ [
+ {
+ name: 'Attributes',
+ icon: AttributesIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openRepositoryAttributes(resource.uuid)));
+ },
+ },
+ {
+ name: 'Share',
+ icon: ShareIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openSharingDialog(resource.uuid)));
+ },
+ },
+ {
+ name: 'API Details',
+ icon: AdvancedIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
+ },
+ },
+ {
+ name: 'Remove',
+ icon: RemoveIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openRemoveRepositoryDialog(resource.uuid)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/resource-action-set.ts b/src/views-components/context-menu/action-sets/resource-action-set.ts
index ea8c53c5..401e9634 100644
--- a/src/views-components/context-menu/action-sets/resource-action-set.ts
+++ b/src/views-components/context-menu/action-sets/resource-action-set.ts
@@ -2,13 +2,17 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "../context-menu-action-set";
-import { ToggleFavoriteAction } from "../actions/favorite-action";
-import { toggleFavorite } from "store/favorites/favorites-actions";
+import { ContextMenuActionSet } from '../context-menu-action-set';
+import { ToggleFavoriteAction } from '../actions/favorite-action';
+import { toggleFavorite } from 'store/favorites/favorites-actions';
-export const resourceActionSet: ContextMenuActionSet = [[{
- component: ToggleFavoriteAction,
- execute: (dispatch, resource) => {
- dispatch<any>(toggleFavorite(resource));
- }
-}]];
+export const resourceActionSet: ContextMenuActionSet = [
+ [
+ {
+ component: ToggleFavoriteAction,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(toggleFavorite(resource)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/root-project-action-set.ts b/src/views-components/context-menu/action-sets/root-project-action-set.ts
index 9cf5bf03..afd7a477 100644
--- a/src/views-components/context-menu/action-sets/root-project-action-set.ts
+++ b/src/views-components/context-menu/action-sets/root-project-action-set.ts
@@ -2,24 +2,26 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "../context-menu-action-set";
+import { ContextMenuActionSet } from '../context-menu-action-set';
import { openCollectionCreateDialog } from 'store/collections/collection-create-actions';
-import { NewProjectIcon, CollectionIcon } from "components/icon/icon";
+import { NewProjectIcon, CollectionIcon } from 'components/icon/icon';
import { openProjectCreateDialog } from 'store/projects/project-create-actions';
-export const rootProjectActionSet: ContextMenuActionSet = [[
- {
- icon: NewProjectIcon,
- name: "New project",
- execute: (dispatch, resource) => {
- dispatch<any>(openProjectCreateDialog(resource.uuid));
- }
- },
- {
- icon: CollectionIcon,
- name: "New Collection",
- execute: (dispatch, resource) => {
- dispatch<any>(openCollectionCreateDialog(resource.uuid));
- }
- }
-]];
+export const rootProjectActionSet: ContextMenuActionSet = [
+ [
+ {
+ icon: NewProjectIcon,
+ name: 'New project',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openProjectCreateDialog(resource.uuid)));
+ },
+ },
+ {
+ icon: CollectionIcon,
+ name: 'New Collection',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openCollectionCreateDialog(resource.uuid)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/search-results-action-set.ts b/src/views-components/context-menu/action-sets/search-results-action-set.ts
index aeb6d155..943be4c7 100644
--- a/src/views-components/context-menu/action-sets/search-results-action-set.ts
+++ b/src/views-components/context-menu/action-sets/search-results-action-set.ts
@@ -2,41 +2,41 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "../context-menu-action-set";
+import { ContextMenuActionSet } from '../context-menu-action-set';
import { DetailsIcon, AdvancedIcon, OpenIcon, Link } from 'components/icon/icon';
-import { openAdvancedTabDialog } from "store/advanced-tab/advanced-tab";
+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";
+import { copyToClipboardAction, openInNewTabAction } from 'store/open-in-new-tab/open-in-new-tab.actions';
export const searchResultsActionSet: ContextMenuActionSet = [
[
{
icon: OpenIcon,
- name: "Open in new tab",
- execute: (dispatch, resource) => {
- dispatch<any>(openInNewTabAction(resource));
- }
+ name: 'Open in new tab',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openInNewTabAction(resource)));
+ },
},
{
icon: Link,
- name: "Copy to clipboard",
- execute: (dispatch, resource) => {
- dispatch<any>(copyToClipboardAction(resource));
- }
+ name: 'Copy to clipboard',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(copyToClipboardAction(resource)));
+ },
},
{
icon: DetailsIcon,
- name: "View details",
- execute: dispatch => {
+ name: 'View details',
+ execute: (dispatch) => {
dispatch<any>(toggleDetailsPanel());
- }
+ },
},
{
icon: AdvancedIcon,
- name: "API Details",
- execute: (dispatch, resource) => {
- dispatch<any>(openAdvancedTabDialog(resource.uuid));
- }
+ name: 'API Details',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
+ },
},
- ]
+ ],
];
diff --git a/src/views-components/context-menu/action-sets/ssh-key-action-set.ts b/src/views-components/context-menu/action-sets/ssh-key-action-set.ts
index d1a94cd3..f0620ede 100644
--- a/src/views-components/context-menu/action-sets/ssh-key-action-set.ts
+++ b/src/views-components/context-menu/action-sets/ssh-key-action-set.ts
@@ -2,27 +2,33 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
-import { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
+import { ContextMenuActionSet } 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 = [[{
- name: "Attributes",
- icon: AttributesIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openSshKeyAttributesDialog(uuid));
- }
-}, {
- name: "API Details",
- icon: AdvancedIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openAdvancedTabDialog(uuid));
- }
-}, {
- name: "Remove",
- icon: RemoveIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openSshKeyRemoveDialog(uuid));
- }
-}]];
+export const sshKeyActionSet: ContextMenuActionSet = [
+ [
+ {
+ name: 'Attributes',
+ icon: AttributesIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openSshKeyAttributesDialog(resource.uuid)));
+ },
+ },
+ {
+ name: 'API Details',
+ icon: AdvancedIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
+ },
+ },
+ {
+ name: 'Remove',
+ icon: RemoveIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openSshKeyRemoveDialog(resource.uuid)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/trash-action-set.ts b/src/views-components/context-menu/action-sets/trash-action-set.ts
index c0afd36a..82e00df6 100644
--- a/src/views-components/context-menu/action-sets/trash-action-set.ts
+++ b/src/views-components/context-menu/action-sets/trash-action-set.ts
@@ -2,15 +2,17 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "../context-menu-action-set";
-import { ToggleTrashAction } from "views-components/context-menu/actions/trash-action";
-import { toggleTrashed } from "store/trash/trash-actions";
+import { ContextMenuActionSet } 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 = [[
- {
- component: ToggleTrashAction,
- execute: (dispatch, resource) => {
- dispatch<any>(toggleTrashed(resource.kind, resource.uuid, resource.ownerUuid, resource.isTrashed!!));
- }
- },
-]];
+export const trashActionSet: ContextMenuActionSet = [
+ [
+ {
+ component: ToggleTrashAction,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(toggleTrashed(resource.kind, resource.uuid, resource.ownerUuid, resource.isTrashed!!)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/trashed-collection-action-set.ts b/src/views-components/context-menu/action-sets/trashed-collection-action-set.ts
index 020ff5c7..8b8b7c6e 100644
--- a/src/views-components/context-menu/action-sets/trashed-collection-action-set.ts
+++ b/src/views-components/context-menu/action-sets/trashed-collection-action-set.ts
@@ -2,39 +2,41 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "../context-menu-action-set";
+import { ContextMenuActionSet } 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 { 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 = [[
- {
- icon: DetailsIcon,
- name: "View details",
- execute: dispatch => {
- dispatch<any>(toggleDetailsPanel());
- }
- },
- {
- icon: ProvenanceGraphIcon,
- name: "Provenance graph",
- execute: (dispatch, resource) => {
- // add code
- }
- },
- {
- icon: AdvancedIcon,
- name: "API Details",
- execute: (dispatch, resource) => {
- dispatch<any>(openAdvancedTabDialog(resource.uuid));
- }
- },
- {
- icon: RestoreFromTrashIcon,
- name: "Restore",
- execute: (dispatch, resource) => {
- dispatch<any>(toggleCollectionTrashed(resource.uuid, true));
- }
- },
-]];
+export const trashedCollectionActionSet: ContextMenuActionSet = [
+ [
+ {
+ icon: DetailsIcon,
+ name: 'View details',
+ execute: (dispatch) => {
+ dispatch<any>(toggleDetailsPanel());
+ },
+ },
+ {
+ icon: ProvenanceGraphIcon,
+ name: 'Provenance graph',
+ execute: (dispatch, resource) => {
+ // add code
+ },
+ },
+ {
+ icon: AdvancedIcon,
+ name: 'API Details',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
+ },
+ },
+ {
+ icon: RestoreFromTrashIcon,
+ name: 'Restore',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(toggleCollectionTrashed(resource.uuid, true)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/user-action-set.ts b/src/views-components/context-menu/action-sets/user-action-set.ts
index c00b7f1f..104402a7 100644
--- a/src/views-components/context-menu/action-sets/user-action-set.ts
+++ b/src/views-components/context-menu/action-sets/user-action-set.ts
@@ -2,7 +2,7 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
+import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
import {
AdvancedIcon,
ProjectIcon,
@@ -12,76 +12,84 @@ import {
LoginAsIcon,
AdminMenuIcon,
ActiveIcon,
-} from "components/icon/icon";
+} from 'components/icon/icon';
import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
-import { loginAs, openUserAttributes, openUserProjects } from "store/users/users-actions";
-import { openSetupDialog, openDeactivateDialog, openActivateDialog } from "store/user-profile/user-profile-actions";
-import { navigateToUserProfile } from "store/navigation/navigation-action";
-import { canActivateUser, canDeactivateUser, canSetupUser, isAdmin, needsUserProfileLink, isOtherUser } from "store/context-menu/context-menu-filters";
+import { loginAs, openUserAttributes, openUserProjects } from 'store/users/users-actions';
+import { openSetupDialog, openDeactivateDialog, openActivateDialog } from 'store/user-profile/user-profile-actions';
+import { navigateToUserProfile } from 'store/navigation/navigation-action';
+import {
+ canActivateUser,
+ canDeactivateUser,
+ canSetupUser,
+ isAdmin,
+ needsUserProfileLink,
+ isOtherUser,
+} from 'store/context-menu/context-menu-filters';
-export const userActionSet: ContextMenuActionSet = [[{
- name: "Attributes",
- icon: AttributesIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openUserAttributes(uuid));
- }
-}, {
- name: "Project",
- icon: ProjectIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openUserProjects(uuid));
- }
-}, {
- name: "API Details",
- icon: AdvancedIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openAdvancedTabDialog(uuid));
- }
-}, {
- name: "Account Settings",
- icon: UserPanelIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(navigateToUserProfile(uuid));
- },
- filters: [needsUserProfileLink]
-}],[{
- name: "Activate User",
- icon: ActiveIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openActivateDialog(uuid));
- },
- filters: [
- isAdmin,
- canActivateUser,
- ],
-}, {
- name: "Setup User",
- icon: AdminMenuIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openSetupDialog(uuid));
- },
- filters: [
- isAdmin,
- canSetupUser,
- ],
-}, {
- name: "Deactivate User",
- icon: DeactivateUserIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openDeactivateDialog(uuid));
- },
- filters: [
- isAdmin,
- canDeactivateUser,
+export const userActionSet: ContextMenuActionSet = [
+ [
+ {
+ name: 'Attributes',
+ icon: AttributesIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openUserAttributes(resource.uuid)));
+ },
+ },
+ {
+ name: 'Project',
+ icon: ProjectIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openUserProjects(resource.uuid)));
+ },
+ },
+ {
+ name: 'API Details',
+ icon: AdvancedIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
+ },
+ },
+ {
+ name: 'Account Settings',
+ icon: UserPanelIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(navigateToUserProfile(resource.uuid)));
+ },
+ filters: [needsUserProfileLink],
+ },
],
-}, {
- name: "Login As User",
- icon: LoginAsIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(loginAs(uuid));
- },
- filters: [
- isAdmin,
- isOtherUser,
+ [
+ {
+ name: 'Activate User',
+ icon: ActiveIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openActivateDialog(resource.uuid)));
+ },
+ filters: [isAdmin, canActivateUser],
+ },
+ {
+ name: 'Setup User',
+ icon: AdminMenuIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openSetupDialog(resource.uuid)));
+ },
+ filters: [isAdmin, canSetupUser],
+ },
+ {
+ name: 'Deactivate User',
+ icon: DeactivateUserIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openDeactivateDialog(resource.uuid)));
+ },
+ filters: [isAdmin, canDeactivateUser],
+ },
+ {
+ name: 'Login As User',
+ icon: LoginAsIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(loginAs(resource.uuid)));
+ },
+ filters: [isAdmin, isOtherUser],
+ },
],
-}]];
+];
diff --git a/src/views-components/context-menu/action-sets/virtual-machine-action-set.ts b/src/views-components/context-menu/action-sets/virtual-machine-action-set.ts
index be9567cd..7cb13bd2 100644
--- a/src/views-components/context-menu/action-sets/virtual-machine-action-set.ts
+++ b/src/views-components/context-menu/action-sets/virtual-machine-action-set.ts
@@ -2,27 +2,33 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
-import { AdvancedIcon, RemoveIcon, AttributesIcon } from "components/icon/icon";
+import { ContextMenuActionSet } 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";
+import { openVirtualMachineAttributes, openRemoveVirtualMachineDialog } from 'store/virtual-machines/virtual-machines-actions';
-export const virtualMachineActionSet: ContextMenuActionSet = [[{
- name: "Attributes",
- icon: AttributesIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openVirtualMachineAttributes(uuid));
- }
-}, {
- name: "API Details",
- icon: AdvancedIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openAdvancedTabDialog(uuid));
- }
-}, {
- name: "Remove",
- icon: RemoveIcon,
- execute: (dispatch, { uuid }) => {
- dispatch<any>(openRemoveVirtualMachineDialog(uuid));
- }
-}]];
+export const virtualMachineActionSet: ContextMenuActionSet = [
+ [
+ {
+ name: 'Attributes',
+ icon: AttributesIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openVirtualMachineAttributes(resource.uuid)));
+ },
+ },
+ {
+ name: 'API Details',
+ icon: AdvancedIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
+ },
+ },
+ {
+ name: 'Remove',
+ icon: RemoveIcon,
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openRemoveVirtualMachineDialog(resource.uuid)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/action-sets/workflow-action-set.ts b/src/views-components/context-menu/action-sets/workflow-action-set.ts
index a5223d1d..7902e1c0 100644
--- a/src/views-components/context-menu/action-sets/workflow-action-set.ts
+++ b/src/views-components/context-menu/action-sets/workflow-action-set.ts
@@ -2,53 +2,49 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { ContextMenuActionSet } from "views-components/context-menu/context-menu-action-set";
-import { openRunProcess } from "store/workflow-panel/workflow-panel-actions";
-import {
- DetailsIcon,
- AdvancedIcon,
- OpenIcon,
- Link,
- StartIcon
-} from "components/icon/icon";
-import { copyToClipboardAction, openInNewTabAction } from "store/open-in-new-tab/open-in-new-tab.actions";
+import { ContextMenuActionSet } from 'views-components/context-menu/context-menu-action-set';
+import { openRunProcess } from 'store/workflow-panel/workflow-panel-actions';
+import { DetailsIcon, AdvancedIcon, OpenIcon, Link, StartIcon } 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";
+import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
-export const workflowActionSet: ContextMenuActionSet = [[
- {
- icon: OpenIcon,
- name: "Open in new tab",
- execute: (dispatch, resource) => {
- dispatch<any>(openInNewTabAction(resource));
- }
- },
- {
- icon: Link,
- name: "Copy to clipboard",
- execute: (dispatch, resource) => {
- dispatch<any>(copyToClipboardAction(resource));
- }
- },
- {
- icon: DetailsIcon,
- name: "View details",
- execute: dispatch => {
- dispatch<any>(toggleDetailsPanel());
- }
- },
- {
- icon: AdvancedIcon,
- name: "API Details",
- execute: (dispatch, resource) => {
- dispatch<any>(openAdvancedTabDialog(resource.uuid));
- }
- },
- {
- icon: StartIcon,
- name: "Run Workflow",
- execute: (dispatch, resource) => {
- dispatch<any>(openRunProcess(resource.uuid, resource.ownerUuid, resource.name));
- }
- },
-]];
+export const workflowActionSet: ContextMenuActionSet = [
+ [
+ {
+ icon: OpenIcon,
+ name: 'Open in new tab',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openInNewTabAction(resource)));
+ },
+ },
+ {
+ icon: Link,
+ name: 'Copy to clipboard',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(copyToClipboardAction(resource)));
+ },
+ },
+ {
+ icon: DetailsIcon,
+ name: 'View details',
+ execute: (dispatch) => {
+ dispatch<any>(toggleDetailsPanel());
+ },
+ },
+ {
+ icon: AdvancedIcon,
+ name: 'API Details',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openAdvancedTabDialog(resource.uuid)));
+ },
+ },
+ {
+ icon: StartIcon,
+ name: 'Run Workflow',
+ execute: (dispatch, resources) => {
+ resources.forEach((resource) => dispatch<any>(openRunProcess(resource.uuid, resource.ownerUuid, resource.name)));
+ },
+ },
+ ],
+];
diff --git a/src/views-components/context-menu/context-menu-action-set.ts b/src/views-components/context-menu/context-menu-action-set.ts
index abef7ec0..9ee4106e 100644
--- a/src/views-components/context-menu/context-menu-action-set.ts
+++ b/src/views-components/context-menu/context-menu-action-set.ts
@@ -2,13 +2,13 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { Dispatch } from "redux";
-import { ContextMenuItem } from "components/context-menu/context-menu";
-import { ContextMenuResource } from "store/context-menu/context-menu-actions";
-import { RootState } from "store/store";
+import { Dispatch } from 'redux';
+import { ContextMenuItem } from 'components/context-menu/context-menu';
+import { ContextMenuResource } from 'store/context-menu/context-menu-actions';
+import { RootState } from 'store/store';
export interface ContextMenuAction extends ContextMenuItem {
- execute(dispatch: Dispatch, resource: ContextMenuResource, state?: any): void;
+ execute(dispatch: Dispatch, resources: ContextMenuResource[], state?: any): void;
}
export type ContextMenuActionSet = Array<Array<ContextMenuAction>>;
diff --git a/src/views-components/context-menu/context-menu.tsx b/src/views-components/context-menu/context-menu.tsx
index c659b7c5..76832ccf 100644
--- a/src/views-components/context-menu/context-menu.tsx
+++ b/src/views-components/context-menu/context-menu.tsx
@@ -2,37 +2,39 @@
//
// SPDX-License-Identifier: AGPL-3.0
-import { connect } from "react-redux";
-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 { Dispatch } from "redux";
+import { connect } from 'react-redux';
+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 { Dispatch } from 'redux';
import { memoize } from 'lodash';
-import { sortByProperty } from "common/array-utils";
-type DataProps = Pick<ContextMenuProps, "anchorEl" | "items" | "open"> & { resource?: ContextMenuResource };
+import { sortByProperty } from 'common/array-utils';
+type DataProps = Pick<ContextMenuProps, 'anchorEl' | 'items' | 'open'> & { resource?: ContextMenuResource };
const mapStateToProps = (state: RootState): DataProps => {
const { open, position, resource } = state.contextMenu;
- const filteredItems = getMenuActionSet(resource).map((group) => (group.filter((item) => {
- if (resource && item.filters) {
- // Execute all filters on this item, every returns true IFF all filters return true
- return item.filters.every((filter) => filter(state, resource));
- } else {
- return true;
- }
- })));
+ const filteredItems = getMenuActionSet(resource).map((group) =>
+ group.filter((item) => {
+ if (resource && item.filters) {
+ // Execute all filters on this item, every returns true IFF all filters return true
+ return item.filters.every((filter) => filter(state, resource));
+ } else {
+ return true;
+ }
+ })
+ );
return {
anchorEl: resource ? createAnchorAt(position) : undefined,
items: filteredItems,
open,
- resource
+ resource,
};
};
-type ActionProps = Pick<ContextMenuProps, "onClose"> & { onItemClick: (item: ContextMenuItem, resource?: ContextMenuResource) => void };
+type ActionProps = Pick<ContextMenuProps, 'onClose'> & { onItemClick: (item: ContextMenuItem, resource?: ContextMenuResource) => void };
const mapDispatchToProps = (dispatch: Dispatch): ActionProps => ({
onClose: () => {
dispatch(contextMenuActions.CLOSE_CONTEXT_MENU());
@@ -40,14 +42,14 @@ const mapDispatchToProps = (dispatch: Dispatch): ActionProps => ({
onItemClick: (action: ContextMenuAction, resource?: ContextMenuResource) => {
dispatch(contextMenuActions.CLOSE_CONTEXT_MENU());
if (resource) {
- action.execute(dispatch, resource);
+ action.execute(dispatch, [resource]);
}
- }
+ },
});
const handleItemClick = memoize(
(resource: DataProps['resource'], onItemClick: ActionProps['onItemClick']): ContextMenuProps['onItemClick'] =>
- item => {
+ (item) => {
onItemClick(item, resource);
}
);
@@ -55,63 +57,61 @@ const handleItemClick = memoize(
const mergeProps = ({ resource, ...dataProps }: DataProps, actionProps: ActionProps): ContextMenuProps => ({
...dataProps,
...actionProps,
- onItemClick: handleItemClick(resource, actionProps.onItemClick)
+ onItemClick: handleItemClick(resource, actionProps.onItemClick),
});
-
export const ContextMenu = connect(mapStateToProps, mapDispatchToProps, mergeProps)(ContextMenuComponent);
const menuActionSets = new Map<string, ContextMenuActionSet>();
export const addMenuActionSet = (name: string, itemSet: ContextMenuActionSet) => {
- const sorted = itemSet.map(items => items.sort(sortByProperty('name')));
+ const sorted = itemSet.map((items) => items.sort(sortByProperty('name')));
menuActionSets.set(name, sorted);
};
const emptyActionSet: ContextMenuActionSet = [];
-const getMenuActionSet = (resource?: ContextMenuResource): ContextMenuActionSet => (
- resource ? menuActionSets.get(resource.menuKind) || emptyActionSet : emptyActionSet
-);
+const getMenuActionSet = (resource?: ContextMenuResource): ContextMenuActionSet =>
+ resource ? menuActionSets.get(resource.menuKind) || emptyActionSet : emptyActionSet;
export enum ContextMenuKind {
- API_CLIENT_AUTHORIZATION = "ApiClientAuthorization",
- ROOT_PROJECT = "RootProject",
- PROJECT = "Project",
- FILTER_GROUP = "FilterGroup",
+ API_CLIENT_AUTHORIZATION = 'ApiClientAuthorization',
+ ROOT_PROJECT = 'RootProject',
+ PROJECT = 'Project',
+ FILTER_GROUP = 'FilterGroup',
READONLY_PROJECT = 'ReadOnlyProject',
FROZEN_PROJECT = 'FrozenProject',
FROZEN_PROJECT_ADMIN = 'FrozenProjectAdmin',
- PROJECT_ADMIN = "ProjectAdmin",
- FILTER_GROUP_ADMIN = "FilterGroupAdmin",
- RESOURCE = "Resource",
- FAVORITE = "Favorite",
- TRASH = "Trash",
- COLLECTION_FILES = "CollectionFiles",
- READONLY_COLLECTION_FILES = "ReadOnlyCollectionFiles",
- COLLECTION_FILE_ITEM = "CollectionFileItem",
- COLLECTION_DIRECTORY_ITEM = "CollectionDirectoryItem",
- READONLY_COLLECTION_FILE_ITEM = "ReadOnlyCollectionFileItem",
- READONLY_COLLECTION_DIRECTORY_ITEM = "ReadOnlyCollectionDirectoryItem",
- COLLECTION_FILES_NOT_SELECTED = "CollectionFilesNotSelected",
+ PROJECT_ADMIN = 'ProjectAdmin',
+ FILTER_GROUP_ADMIN = 'FilterGroupAdmin',
+ RESOURCE = 'Resource',
+ FAVORITE = 'Favorite',
+ TRASH = 'Trash',
+ COLLECTION_FILES = 'CollectionFiles',
+ READONLY_COLLECTION_FILES = 'ReadOnlyCollectionFiles',
+ COLLECTION_FILE_ITEM = 'CollectionFileItem',
+ COLLECTION_DIRECTORY_ITEM = 'CollectionDirectoryItem',
+ READONLY_COLLECTION_FILE_ITEM = 'ReadOnlyCollectionFileItem',
+ READONLY_COLLECTION_DIRECTORY_ITEM = 'ReadOnlyCollectionDirectoryItem',
+ COLLECTION_FILES_NOT_SELECTED = 'CollectionFilesNotSelected',
COLLECTION = 'Collection',
COLLECTION_ADMIN = 'CollectionAdmin',
READONLY_COLLECTION = 'ReadOnlyCollection',
OLD_VERSION_COLLECTION = 'OldVersionCollection',
TRASHED_COLLECTION = 'TrashedCollection',
- PROCESS = "Process",
+ PROCESS = 'Process',
PROCESS_ADMIN = 'ProcessAdmin',
PROCESS_RESOURCE = 'ProcessResource',
READONLY_PROCESS_RESOURCE = 'ReadOnlyProcessResource',
- PROCESS_LOGS = "ProcessLogs",
- REPOSITORY = "Repository",
- SSH_KEY = "SshKey",
- VIRTUAL_MACHINE = "VirtualMachine",
- KEEP_SERVICE = "KeepService",
- USER = "User",
- GROUPS = "Group",
- GROUP_MEMBER = "GroupMember",
- PERMISSION_EDIT = "PermissionEdit",
- LINK = "Link",
- WORKFLOW = "Workflow",
- SEARCH_RESULTS = "SearchResults"
+ PROCESS_LOGS = 'ProcessLogs',
+ REPOSITORY = 'Repository',
+ SSH_KEY = 'SshKey',
+ VIRTUAL_MACHINE = 'VirtualMachine',
+ KEEP_SERVICE = 'KeepService',
+ USER = 'User',
+ GROUPS = 'Group',
+ GROUP_MEMBER = 'GroupMember',
+ PERMISSION_EDIT = 'PermissionEdit',
+ LINK = 'Link',
+ WORKFLOW = 'Workflow',
+ SEARCH_RESULTS = 'SearchResults',
}
diff --git a/src/views-components/process-remove-many-dialog/process-remove-many-dialog.tsx b/src/views-components/process-remove-many-dialog/process-remove-many-dialog.tsx
index d0d979af..4889418c 100644
--- a/src/views-components/process-remove-many-dialog/process-remove-many-dialog.tsx
+++ b/src/views-components/process-remove-many-dialog/process-remove-many-dialog.tsx
@@ -2,6 +2,8 @@
//
// SPDX-License-Identifier: AGPL-3.0
+//this file can probably be removed - lk
+
import { Dispatch, compose } from 'redux';
import { connect } from 'react-redux';
import { ConfirmationDialog } from 'components/confirmation-dialog/confirmation-dialog';
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list