[arvados-workbench2] updated: 2.7.0-207-gb58b29e3

git repository hosting git at public.arvados.org
Thu Nov 16 17:09:03 UTC 2023


Summary of changes:
 src/components/icon/icon.tsx                       |   4 +-
 .../ms-toolbar-action-filters.ts                   |  48 +++++--
 .../multiselect-toolbar/ms-menu-action-set.ts      |  16 ++-
 .../multiselect-toolbar/ms-project-action-set.ts   | 149 +++++++++++++++++++--
 4 files changed, 190 insertions(+), 27 deletions(-)

       via  b58b29e3653118ef6a3f37d7312aab9d96f2af47 (commit)
      from  ce4a1cdc67fd97c83f0249f04dde762bb6a6251a (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 b58b29e3653118ef6a3f37d7312aab9d96f2af47
Author: Lisa Knox <lisaknox83 at gmail.com>
Date:   Thu Nov 16 12:08:58 2023 -0500

    21128: full set of project actions in place Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox at curii.com>

diff --git a/src/components/icon/icon.tsx b/src/components/icon/icon.tsx
index 5f3f4e65..4168e2a2 100644
--- a/src/components/icon/icon.tsx
+++ b/src/components/icon/icon.tsx
@@ -84,13 +84,13 @@ import { faPencilAlt, faSlash, faUsers, faEllipsisH } from "@fortawesome/free-so
 import { FormatAlignLeft } from "@material-ui/icons";
 library.add(faPencilAlt, faSlash, faUsers, faEllipsisH);
 
-export const FreezeIcon = (props: any) => (
+export const FreezeIcon: IconType = (props: any) => (
     <SvgIcon {...props}>
         <path d="M20.79,13.95L18.46,14.57L16.46,13.44V10.56L18.46,9.43L20.79,10.05L21.31,8.12L19.54,7.65L20,5.88L18.07,5.36L17.45,7.69L15.45,8.82L13,7.38V5.12L14.71,3.41L13.29,2L12,3.29L10.71,2L9.29,3.41L11,5.12V7.38L8.5,8.82L6.5,7.69L5.92,5.36L4,5.88L4.47,7.65L2.7,8.12L3.22,10.05L5.55,9.43L7.55,10.56V13.45L5.55,14.58L3.22,13.96L2.7,15.89L4.47,16.36L4,18.12L5.93,18.64L6.55,16.31L8.55,15.18L11,16.62V18.88L9.29,20.59L10.71,22L12,20.71L13.29,22L14.7,20.59L13,18.88V16.62L15.5,15.17L17.5,16.3L18.12,18.63L20,18.12L19.53,16.35L21.3,15.88L20.79,13.95M9.5,10.56L12,9.11L14.5,10.56V13.44L12,14.89L9.5,13.44V10.56Z" />
     </SvgIcon>
 );
 
-export const UnfreezeIcon = (props: any) => (
+export const UnfreezeIcon: IconType = (props: any) => (
     <SvgIcon {...props}>
         <path d="M11 5.12L9.29 3.41L10.71 2L12 3.29L13.29 2L14.71 3.41L13 5.12V7.38L15.45 8.82L17.45 7.69L18.07 5.36L20 5.88L19.54 7.65L21.31 8.12L20.79 10.05L18.46 9.43L16.46 10.56V13.26L14.5 11.3V10.56L12.74 9.54L10.73 7.53L11 7.38V5.12M18.46 14.57L16.87 13.67L19.55 16.35L21.3 15.88L20.79 13.95L18.46 14.57M13 16.62V18.88L14.7 20.59L13.29 22L12 20.71L10.71 22L9.29 20.59L11 18.88V16.62L8.55 15.18L6.55 16.31L5.93 18.64L4 18.12L4.47 16.36L2.7 15.89L3.22 13.96L5.55 14.58L7.55 13.45V10.56L5.55 9.43L3.22 10.05L2.7 8.12L4.47 7.65L4 5.89L1.11 3L2.39 1.73L22.11 21.46L20.84 22.73L14.1 16L13 16.62M12 14.89L12.63 14.5L9.5 11.39V13.44L12 14.89Z" />
     </SvgIcon>
diff --git a/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts b/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts
index 8d8b6f0f..12910e43 100644
--- a/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts
+++ b/src/components/multiselect-toolbar/ms-toolbar-action-filters.ts
@@ -2,20 +2,52 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ResourceKind } from "models/resource";
-import { MultiSelectMenuActionSet, MultiSelectMenuActionNames } from "views-components/multiselect-toolbar/ms-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";
+import { ResourceKind } from 'models/resource';
+import { MultiSelectMenuActionSet, MultiSelectMenuActionNames } from 'views-components/multiselect-toolbar/ms-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, [MultiSelectMenuActionSet, Set<string>]>;
 
-const { MOVE_TO, ADD_TO_TRASH: TOGGLE_TRASH_ACTION, ADD_TO_FAVORITES: TOGGLE_FAVORITE_ACTION, REMOVE, MAKE_A_COPY } = MultiSelectMenuActionNames;
+const {
+    ADD_TO_FAVORITES,
+    ADD_TO_TRASH,
+    API_DETAILS,
+    COPY_AND_RERUN_PROCESS,
+    COPY_TO_CLIPBOARD,
+    EDIT_PPROJECT,
+    FREEZE_PROJECT,
+    MAKE_A_COPY,
+    MOVE_TO,
+    NEW_PROJECT,
+    OPEN_IN_NEW_TAB,
+    OPEN_W_3RD_PARTY_CLIENT,
+    REMOVE,
+    SHARE,
+    VIEW_DETAILS,
+} = MultiSelectMenuActionNames;
 
 //these sets govern what actions are on the ms toolbar for each resource kind
-const projectMSActionsFilter = new Set([MOVE_TO, TOGGLE_TRASH_ACTION, TOGGLE_FAVORITE_ACTION]);
+const projectMSActionsFilter = new Set([
+    ADD_TO_FAVORITES,
+    ADD_TO_TRASH,
+    API_DETAILS,
+    COPY_AND_RERUN_PROCESS,
+    COPY_TO_CLIPBOARD,
+    EDIT_PPROJECT,
+    FREEZE_PROJECT,
+    MAKE_A_COPY,
+    MOVE_TO,
+    NEW_PROJECT,
+    OPEN_IN_NEW_TAB,
+    OPEN_W_3RD_PARTY_CLIENT,
+    REMOVE,
+    SHARE,
+    VIEW_DETAILS,
+]);
 const processResourceMSActionsFilter = new Set([MOVE_TO, REMOVE]);
-const collectionMSActionsFilter = new Set([MAKE_A_COPY, MOVE_TO, TOGGLE_TRASH_ACTION]);
+const collectionMSActionsFilter = new Set([MAKE_A_COPY, MOVE_TO, ADD_TO_TRASH]);
 
 const { COLLECTION, PROJECT, PROCESS } = ResourceKind;
 
diff --git a/src/views-components/multiselect-toolbar/ms-menu-action-set.ts b/src/views-components/multiselect-toolbar/ms-menu-action-set.ts
index 38c5748f..fa4f9283 100644
--- a/src/views-components/multiselect-toolbar/ms-menu-action-set.ts
+++ b/src/views-components/multiselect-toolbar/ms-menu-action-set.ts
@@ -9,13 +9,21 @@ import { FavoritesState } from "store/favorites/favorites-reducer";
 import { ContextMenuResource } from "store/context-menu/context-menu-actions";
 
 export const MultiSelectMenuActionNames = {
-  MAKE_A_COPY: "Make a copy",
-  MOVE_TO: "Move to",
-  ADD_TO_TRASH: "Add to Trash",
   ADD_TO_FAVORITES: "Add to Favorites",
-  COPY_TO_CLIPBOARD: "Copy to clipboard",
+  ADD_TO_TRASH: "Add to Trash",
+  API_DETAILS: 'API Details',
   COPY_AND_RERUN_PROCESS: "Copy and re-run process",
+  COPY_TO_CLIPBOARD: "Copy to clipboard",
+  EDIT_PPROJECT: 'Edit project',
+  FREEZE_PROJECT: 'Freeze Project',
+  MAKE_A_COPY: "Make a copy",
+  MOVE_TO: "Move to",
+  NEW_PROJECT: 'New project',
+  OPEN_IN_NEW_TAB: 'Open in new tab',
+  OPEN_W_3RD_PARTY_CLIENT: 'Open with 3rd party client',
   REMOVE: "Remove",
+  SHARE: 'Share',
+  VIEW_DETAILS: 'View details',
 };
 
 export type MultiSelectMenuAction = {
diff --git a/src/views-components/multiselect-toolbar/ms-project-action-set.ts b/src/views-components/multiselect-toolbar/ms-project-action-set.ts
index ff28f0ad..dc620a19 100644
--- a/src/views-components/multiselect-toolbar/ms-project-action-set.ts
+++ b/src/views-components/multiselect-toolbar/ms-project-action-set.ts
@@ -2,17 +2,37 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { MultiSelectMenuAction, MultiSelectMenuActionNames } from "views-components/multiselect-toolbar/ms-menu-action-set";
-import { MoveToIcon, Link } from "components/icon/icon";
-import { openMoveProjectDialog } from "store/projects/project-move-actions";
-import { toggleProjectTrashed } from "store/trash/trash-actions";
-import { copyToClipboardAction } from "store/open-in-new-tab/open-in-new-tab.actions";
-import { toggleFavorite } from "store/favorites/favorites-actions";
-import { favoritePanelActions } from "store/favorite-panel/favorite-panel-action";
-import { AddFavoriteIcon, RemoveFavoriteIcon } from "components/icon/icon";
-import { RestoreFromTrashIcon, TrashIcon } from "components/icon/icon";
-import { getResource } from "store/resources/resources";
-import { checkFavorite } from "store/favorites/favorites-reducer";
+import { MultiSelectMenuAction, MultiSelectMenuActionNames } from 'views-components/multiselect-toolbar/ms-menu-action-set';
+import { openMoveProjectDialog } from 'store/projects/project-move-actions';
+import { toggleProjectTrashed } from 'store/trash/trash-actions';
+import { copyToClipboardAction, openInNewTabAction } from 'store/open-in-new-tab/open-in-new-tab.actions';
+import { toggleFavorite } from 'store/favorites/favorites-actions';
+import { favoritePanelActions } from 'store/favorite-panel/favorite-panel-action';
+import {
+    AddFavoriteIcon,
+    AdvancedIcon,
+    DetailsIcon,
+    FreezeIcon,
+    FolderSharedIcon,
+    Link,
+    MoveToIcon,
+    NewProjectIcon,
+    OpenIcon,
+    RemoveFavoriteIcon,
+    RenameIcon,
+    ShareIcon,
+    UnfreezeIcon,
+} from 'components/icon/icon';
+import { RestoreFromTrashIcon, TrashIcon } from 'components/icon/icon';
+import { getResource } from 'store/resources/resources';
+import { checkFavorite } from 'store/favorites/favorites-reducer';
+import { toggleDetailsPanel } from 'store/details-panel/details-panel-action';
+import { openAdvancedTabDialog } from 'store/advanced-tab/advanced-tab';
+import { openWebDavS3InfoDialog } from 'store/collections/collection-info-actions';
+import { openSharingDialog } from 'store/sharing-dialog/sharing-dialog-actions';
+import { openProjectCreateDialog } from 'store/projects/project-create-actions';
+import { openProjectUpdateDialog } from 'store/projects/project-update-actions';
+import { freezeProject, unfreezeProject } from 'store/projects/project-lock-actions';
 
 export const msToggleFavoriteAction = {
     name: MultiSelectMenuActionNames.ADD_TO_FAVORITES,
@@ -21,7 +41,7 @@ export const msToggleFavoriteAction = {
     altName: 'Remove from Favorites',
     altIcon: RemoveFavoriteIcon,
     isForMulti: false,
-    useAlts: (uuid, resources, favorites)=>{
+    useAlts: (uuid, resources, favorites) => {
         return checkFavorite(uuid, favorites);
     },
     execute: (dispatch, resources) => {
@@ -31,6 +51,16 @@ export const msToggleFavoriteAction = {
     },
 };
 
+export const msOpenInNewTabMenuAction = {
+    name: MultiSelectMenuActionNames.OPEN_IN_NEW_TAB,
+    icon: OpenIcon,
+    hasAlts: false,
+    isForMulti: false,
+    execute: (dispatch, resources) => {
+        dispatch(openInNewTabAction(resources[0]));
+    },
+};
+
 export const msCopyToClipboardMenuAction = {
     name: MultiSelectMenuActionNames.COPY_TO_CLIPBOARD,
     icon: Link,
@@ -41,6 +71,56 @@ export const msCopyToClipboardMenuAction = {
     },
 };
 
+export const msViewDetailsAction = {
+    name: MultiSelectMenuActionNames.VIEW_DETAILS,
+    icon: DetailsIcon,
+    hasAlts: false,
+    isForMulti: false,
+    execute: (dispatch) => {
+        dispatch(toggleDetailsPanel());
+    },
+};
+
+export const msAdvancedAction = {
+    name: MultiSelectMenuActionNames.API_DETAILS,
+    icon: AdvancedIcon,
+    hasAlts: false,
+    isForMulti: false,
+    execute: (dispatch, resources) => {
+        dispatch(openAdvancedTabDialog(resources[0].uuid));
+    },
+};
+
+export const msOpenWith3rdPartyClientAction = {
+    name: MultiSelectMenuActionNames.OPEN_W_3RD_PARTY_CLIENT,
+    icon: FolderSharedIcon,
+    hasAlts: false,
+    isForMulti: false,
+    execute: (dispatch, resources) => {
+        dispatch(openWebDavS3InfoDialog(resources[0].uuid));
+    },
+};
+
+export const msEditProjectAction = {
+    name: MultiSelectMenuActionNames.EDIT_PPROJECT,
+    icon: RenameIcon,
+    hasAlts: false,
+    isForMulti: false,
+    execute: (dispatch, resources) => {
+        dispatch(openProjectUpdateDialog(resources[0]));
+    },
+};
+
+export const msShareAction = {
+    name: MultiSelectMenuActionNames.SHARE,
+    icon: ShareIcon,
+    hasAlts: false,
+    isForMulti: false,
+    execute: (dispatch, resources) => {
+        dispatch(openSharingDialog(resources[0].uuid));
+    },
+};
+
 export const msMoveToAction = {
     name: MultiSelectMenuActionNames.MOVE_TO,
     icon: MoveToIcon,
@@ -68,4 +148,47 @@ export const msToggleTrashAction = {
     },
 };
 
-export const msProjectActionSet: MultiSelectMenuAction[][] = [[msCopyToClipboardMenuAction, msMoveToAction, msToggleTrashAction, msToggleFavoriteAction]];
+export const msFreezeProjectAction = {
+    name: MultiSelectMenuActionNames.FREEZE_PROJECT,
+    icon: FreezeIcon,
+    hasAlts: true,
+    altName: 'Unfreeze Project',
+    altIcon: UnfreezeIcon,
+    isForMulti: false,
+    useAlts: () => false,
+    execute: (dispatch, resources) => {
+        if (resources[0].isFrozen) {
+            dispatch(unfreezeProject(resources[0].uuid));
+        } else {
+            dispatch(freezeProject(resources[0].uuid));
+        }
+    },
+};
+
+export const msNewProjectAction: any = {
+    name: MultiSelectMenuActionNames.NEW_PROJECT,
+    icon: NewProjectIcon,
+    hasAlts: false,
+    isForMulti: false,
+    execute: (dispatch, resource): void => {
+        dispatch(openProjectCreateDialog(resource.uuid));
+    },
+};
+
+export const msProjectActionSet: MultiSelectMenuAction[][] = [
+    [
+        msCopyToClipboardMenuAction,
+        msToggleFavoriteAction,
+        msOpenInNewTabMenuAction,
+        msCopyToClipboardMenuAction,
+        msViewDetailsAction,
+        msAdvancedAction,
+        msOpenWith3rdPartyClientAction,
+        msEditProjectAction,
+        msShareAction,
+        msMoveToAction,
+        msToggleTrashAction,
+        msFreezeProjectAction,
+        msNewProjectAction,
+    ],
+];

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list