[arvados-workbench2] updated: 2.6.0-43-gb80db251

git repository hosting git at public.arvados.org
Fri Jun 23 14:08:55 UTC 2023


Summary of changes:
 src/components/data-explorer/data-explorer.tsx     |  51 +++++-
 .../multiselectToolbar/MultiselectToolbar.tsx      | 178 +++++++++++++--------
 .../action-sets/collection-action-set.ts           | 164 +++++++++----------
 .../process-remove-many-dialog.tsx                 |   1 -
 4 files changed, 233 insertions(+), 161 deletions(-)

       via  b80db2511622b7600fa7a03e7db4c5c82cf61d39 (commit)
      from  1a3746a005fb857cc6760fde34e78cbcbb7d11e5 (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 b80db2511622b7600fa7a03e7db4c5c82cf61d39
Author: Lisa Knox <lisaknox83 at gmail.com>
Date:   Fri Jun 23 10:08:49 2023 -0400

    15768: first step in revamp: imported context menu actions and got them to work for one item Arvados-DCO-1.1-Signed-off-by: Lisa Knox <lisa.knox at curii.com>

diff --git a/src/components/data-explorer/data-explorer.tsx b/src/components/data-explorer/data-explorer.tsx
index b1d4605f..e2b88304 100644
--- a/src/components/data-explorer/data-explorer.tsx
+++ b/src/components/data-explorer/data-explorer.tsx
@@ -3,7 +3,18 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import React from 'react';
-import { Grid, Paper, Toolbar, StyleRulesCallback, withStyles, WithStyles, TablePagination, IconButton, Tooltip, Button } from '@material-ui/core';
+import {
+    Grid,
+    Paper,
+    Toolbar,
+    StyleRulesCallback,
+    withStyles,
+    WithStyles,
+    TablePagination,
+    IconButton,
+    Tooltip,
+    Button,
+} from '@material-ui/core';
 import { ColumnSelector } from 'components/column-selector/column-selector';
 import { DataTable, DataColumns, DataTableFetchMode } from 'components/data-table/data-table';
 import { DataColumn } from 'components/data-table/data-column';
@@ -14,10 +25,19 @@ import { DataTableFilters } from 'components/data-table-filters/data-table-filte
 import { CloseIcon, IconType, MaximizeIcon, UnMaximizeIcon, MoreOptionsIcon } from 'components/icon/icon';
 import { PaperProps } from '@material-ui/core/Paper';
 import { MPVPanelProps } from 'components/multi-panel-view/multi-panel-view';
-import { MultiselectToolbar, defaultActions } from 'components/multiselectToolbar/MultiselectToolbar';
+import { MultiselectToolbar } from 'components/multiselectToolbar/MultiselectToolbar';
 import { TCheckedList } from 'components/data-table/data-table';
 
-type CssRules = 'searchBox' | 'headerMenu' | 'toolbar' | 'footer' | 'root' | 'moreOptionsButton' | 'title' | 'dataTable' | 'container';
+type CssRules =
+    | 'searchBox'
+    | 'headerMenu'
+    | 'toolbar'
+    | 'footer'
+    | 'root'
+    | 'moreOptionsButton'
+    | 'title'
+    | 'dataTable'
+    | 'container';
 
 const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
     searchBox: {
@@ -102,7 +122,10 @@ interface DataExplorerActionProps<T> {
     setCheckedListOnStore: (checkedList: TCheckedList) => void;
 }
 
-type DataExplorerProps<T> = DataExplorerDataProps<T> & DataExplorerActionProps<T> & WithStyles<CssRules> & MPVPanelProps;
+type DataExplorerProps<T> = DataExplorerDataProps<T> &
+    DataExplorerActionProps<T> &
+    WithStyles<CssRules> &
+    MPVPanelProps;
 
 export const DataExplorer = withStyles(styles)(
     class DataExplorerGeneric<T> extends React.Component<DataExplorerProps<T>> {
@@ -203,11 +226,20 @@ export const DataExplorer = withStyles(styles)(
                                     <Toolbar className={classes.toolbar}>
                                         {!hideSearchInput && (
                                             <div className={classes.searchBox}>
-                                                {!hideSearchInput && <SearchInput label={searchLabel} value={searchValue} selfClearProp={''} onSearch={onSearch} />}
+                                                {!hideSearchInput && (
+                                                    <SearchInput
+                                                        label={searchLabel}
+                                                        value={searchValue}
+                                                        selfClearProp={''}
+                                                        onSearch={onSearch}
+                                                    />
+                                                )}
                                             </div>
                                         )}
                                         {actions}
-                                        {!hideColumnSelector && <ColumnSelector columns={columns} onColumnToggle={onColumnToggle} />}
+                                        {!hideColumnSelector && (
+                                            <ColumnSelector columns={columns} onColumnToggle={onColumnToggle} />
+                                        )}
                                         {doUnMaximizePanel && panelMaximized && (
                                             <Tooltip title={`Unmaximize ${panelName || 'panel'}`} disableFocusListener>
                                                 <IconButton onClick={doUnMaximizePanel}>
@@ -230,7 +262,7 @@ export const DataExplorer = withStyles(styles)(
                                             </Tooltip>
                                         )}
                                     </Toolbar>
-                                    <MultiselectToolbar actions={defaultActions} />
+                                    <MultiselectToolbar />
                                 </Grid>
                             )}
                         </div>
@@ -301,7 +333,10 @@ export const DataExplorer = withStyles(styles)(
         renderContextMenuTrigger = (item: T) => (
             <Grid container justify='center'>
                 <Tooltip title='More options' disableFocusListener>
-                    <IconButton className={this.props.classes.moreOptionsButton} onClick={(event) => this.props.onContextMenu(event, item)}>
+                    <IconButton
+                        className={this.props.classes.moreOptionsButton}
+                        onClick={(event) => this.props.onContextMenu(event, item)}
+                    >
                         <MoreOptionsIcon />
                     </IconButton>
                 </Tooltip>
diff --git a/src/components/multiselectToolbar/MultiselectToolbar.tsx b/src/components/multiselectToolbar/MultiselectToolbar.tsx
index d141afd9..606c8ff2 100644
--- a/src/components/multiselectToolbar/MultiselectToolbar.tsx
+++ b/src/components/multiselectToolbar/MultiselectToolbar.tsx
@@ -4,7 +4,7 @@
 
 import React, { ReactElement } from 'react';
 import { connect } from 'react-redux';
-import { StyleRulesCallback, withStyles, WithStyles, Toolbar, Button } from '@material-ui/core';
+import { StyleRulesCallback, withStyles, WithStyles, Toolbar, Button, Tooltip, IconButton } from '@material-ui/core';
 import { ArvadosTheme } from 'common/custom-theme';
 import { RootState } from 'store/store';
 import { Dispatch } from 'redux';
@@ -23,6 +23,9 @@ import { ResourcesState } from 'store/resources/resources';
 import { Resource } from 'models/resource';
 import { getProcess } from 'store/processes/process';
 import { CopyProcessDialog, CopyManyProcessesDialog } from 'views-components/dialog-forms/copy-process-dialog';
+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';
 
 type CssRules = 'root' | 'button';
 
@@ -46,45 +49,57 @@ const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
     },
 });
 
-type MultiselectToolbarAction = {
-    name: string;
-    funcName: string;
-    relevantKinds: Set<ResourceKind>;
-};
+// type MultiselectToolbarAction = {
+//     name: string;
+//     funcName: string;
+//     relevantKinds: Set<ResourceKind>;
+// };
 
 //gleaned from src/views-components/context-menu/action-sets
-export const defaultActions: Array<MultiselectToolbarAction> = [
-    {
-        name: 'copy and re-run',
-        funcName: 'copySelected',
-        relevantKinds: new Set([ResourceKind.PROCESS]),
-    },
-    {
-        name: 'move',
-        funcName: 'moveSelected',
-        relevantKinds: new Set([ResourceKind.PROCESS, ResourceKind.PROJECT]),
-    },
-    {
-        name: 'remove',
-        funcName: 'removeSelected',
-        relevantKinds: new Set([ResourceKind.PROCESS, ResourceKind.COLLECTION]),
-    },
-    {
-        name: 'favorite',
-        funcName: 'favoriteSelected',
-        relevantKinds: new Set([ResourceKind.PROCESS, ResourceKind.PROJECT, ResourceKind.COLLECTION]),
-    },
-];
+// export const defaultActions: Array<MultiselectToolbarAction> = [
+//     // {
+//     //     name: 'copy and re-run',
+//     //     funcName: 'copySelected',
+//     //     relevantKinds: new Set([ResourceKind.PROCESS]),
+//     // },
+//     {
+//         name: 'copy',
+//         funcName: 'copyCollections',
+//         relevantKinds: new Set([ResourceKind.COLLECTION]),
+//     },
+//     {
+//         name: 'move',
+//         funcName: 'moveSelected',
+//         relevantKinds: new Set([ResourceKind.PROCESS, ResourceKind.PROJECT]),
+//     },
+//     {
+//         name: 'remove',
+//         funcName: 'removeSelected',
+//         relevantKinds: new Set([ResourceKind.PROCESS, ResourceKind.COLLECTION]),
+//     },
+//     {
+//         name: 'favorite',
+//         funcName: 'favoriteSelected',
+//         relevantKinds: new Set([ResourceKind.PROCESS, ResourceKind.PROJECT, ResourceKind.COLLECTION]),
+//     },
+// ];
 
 export type MultiselectToolbarProps = {
-    actions: Array<MultiselectToolbarAction>;
+    // actions: Array<MultiselectToolbarAction>;
     isVisible: boolean;
     checkedList: TCheckedList;
     resources: ResourcesState;
-    copySelected: (checkedList: TCheckedList, resources: ResourcesState) => void;
-    moveSelected: (resource) => void;
-    barSelected: () => void;
-    removeSelected: (checkedList: TCheckedList) => void;
+    // copySelected: (checkedList: TCheckedList, resources: ResourcesState) => void;
+    // copyCollections: (fn, resource: Resource) => void;
+    // moveSelected: (resource) => void;
+    // removeSelected: (checkedList: TCheckedList) => void;
+    executeMulti: (fn, checkedList: TCheckedList, resources: ResourcesState) => void;
+};
+
+const CollectionMSActionsFilter = {
+    MAKE_A_COPY: 'Make a copy',
+    MOVE_TO: 'Move to',
+    TOGGLE_TRASH_ACTION: 'ToggleTrashAction',
 };
 
 export const MultiselectToolbar = connect(
@@ -92,20 +107,37 @@ export const MultiselectToolbar = connect(
     mapDispatchToProps
 )(
     withStyles(styles)((props: MultiselectToolbarProps & WithStyles<CssRules>) => {
-        // console.log(props);
-        const { classes, actions, isVisible, checkedList, resources } = props;
-
+        const { classes, isVisible, checkedList, resources } = props;
         const currentResourceKinds = Array.from(selectedToKindSet(checkedList));
-        const buttons = actions.filter((action) => currentResourceKinds.length && currentResourceKinds.every((kind) => action.relevantKinds.has(kind as ResourceKind)));
+
+        const buttons = filterActions(collectionActionSet, CollectionMSActionsFilter);
+        console.log(selectedToArray(props.checkedList));
 
         return (
             <Toolbar className={classes.root} style={{ width: `${buttons.length * 5.5}rem` }}>
                 {buttons.length ? (
                     buttons.map((btn) => (
-                        <Button key={btn.name} className={classes.button} onClick={() => props[btn.funcName](checkedList)}>
-                            {/* {<CopyProcessDialog>{btn.name}</CopyProcessDialog>} */}
-                            {btn.name}
-                        </Button>
+                        <Tooltip title={btn.name} disableFocusListener>
+                            <IconButton
+                                onClick={() =>
+                                    props.executeMulti(
+                                        btn.execute,
+                                        checkedList,
+                                        props.resources
+                                        // getResource('tordo-4zz18-2dkyrfnrsjdda5v')(props.resources) as Resource
+                                    )
+                                }
+                            >
+                                {/* {console.log(btn.component && btn.component)} */}
+                                {btn.icon ? (
+                                    btn.icon({ className: 'foo' })
+                                ) : btn.name === 'ToggleTrashAction' ? (
+                                    <TrashIcon />
+                                ) : (
+                                    <>error</>
+                                )}
+                            </IconButton>
+                        </Tooltip>
                     ))
                 ) : (
                     <></>
@@ -115,6 +147,7 @@ export const MultiselectToolbar = connect(
     })
 );
 
+//todo: put these all in a /utils
 function selectedToArray(checkedList: TCheckedList): Array<string> {
     const arrayifiedSelectedList: Array<string> = [];
     for (const [key, value] of Object.entries(checkedList)) {
@@ -135,6 +168,12 @@ function selectedToKindSet(checkedList: TCheckedList): Set<string> {
     return setifiedList;
 }
 
+function filterActions(actionArray: ContextMenuActionSet, filters: Record<string, string>): Array<ContextMenuAction> {
+    return actionArray[0].filter((action) => Object.values(filters).includes(action.name as string));
+}
+
+//--------------------------------------------------//
+
 function mapStateToProps(state: RootState) {
     const { isVisible, checkedList } = state.multiselect;
     return {
@@ -146,35 +185,34 @@ function mapStateToProps(state: RootState) {
 
 function mapDispatchToProps(dispatch: Dispatch) {
     return {
-        copySelected: (checkedList: TCheckedList, resources: ResourcesState) => copyMoveMany(dispatch, checkedList),
-        moveSelected: (checkedList: TCheckedList) => {},
-        barSelected: () => {},
-        removeSelected: (checkedList: TCheckedList) => removeMultiProcesses(dispatch, checkedList),
+        // copySelected: (checkedList: TCheckedList, resources: ResourcesState) => copyMoveMany(dispatch, checkedList),
+        // copyCollections: (fn, resource) => fn(dispatch, resource),
+        // moveSelected: (checkedList: TCheckedList) => {},
+        // removeSelected: (checkedList: TCheckedList) => removeMultiProcesses(dispatch, checkedList),
+        executeMulti: (fn, checkedList: TCheckedList, resources: ResourcesState) =>
+            selectedToArray(checkedList).forEach((uuid) => {
+                console.log(uuid);
+                fn(dispatch, getResource(uuid)(resources));
+            }),
     };
 }
 
-function copyMoveMany(dispatch: Dispatch, checkedList: TCheckedList) {
-    const selectedList: Array<string> = selectedToArray(checkedList);
-    const uuid = selectedList[0];
-    // dispatch<any>(openCopyManyProcessesDialog(uuid));
-    dispatch<any>(openCopyManyProcessesDialog(selectedList));
-}
-
-function moveMultiProcesses(dispatch: Dispatch, checkedList: TCheckedList): void {
-    const selectedList: Array<string> = selectedToArray(checkedList);
-    // if (selectedList.length === 1) dispatch<any>(openMoveProcessDialog(selectedList[0]));
-}
-
-const RemoveFunctions = {
-    ONE_PROCESS: (uuid: string) => openRemoveProcessDialog(uuid),
-    MANY_PROCESSES: (list: Array<string>) => openRemoveManyProcessesDialog(list),
-};
-
-function removeMultiProcesses(dispatch: Dispatch, checkedList: TCheckedList): void {
-    const selectedList: Array<string> = selectedToArray(checkedList);
-    dispatch<any>(selectedList.length === 1 ? RemoveFunctions.ONE_PROCESS(selectedList[0]) : RemoveFunctions.MANY_PROCESSES(selectedList));
-}
-
-//onRemove
-//go through the array of selected and choose the appropriate removal function
-//have a constant with [ResourceKind]: different removal methods
+// function copyMoveMany(dispatch: Dispatch, checkedList: TCheckedList) {
+//     const selectedList: Array<string> = selectedToArray(checkedList);
+//     const uuid = selectedList[0];
+//     dispatch<any>(openCopyManyProcessesDialog(selectedList));
+// }
+
+// const RemoveFunctions = {
+//     ONE_PROCESS: (uuid: string) => openRemoveProcessDialog(uuid),
+//     MANY_PROCESSES: (list: Array<string>) => openRemoveManyProcessesDialog(list),
+// };
+
+// function removeMultiProcesses(dispatch: Dispatch, checkedList: TCheckedList): void {
+//     const selectedList: Array<string> = selectedToArray(checkedList);
+//     dispatch<any>(
+//         selectedList.length === 1
+//             ? RemoveFunctions.ONE_PROCESS(selectedList[0])
+//             : RemoveFunctions.MANY_PROCESSES(selectedList)
+//     );
+// }
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 edfaa3cd..5b170f67 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
@@ -2,12 +2,9 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import {
-    ContextMenuAction,
-    ContextMenuActionSet
-} from "../context-menu-action-set";
-import { ToggleFavoriteAction } from "../actions/favorite-action";
-import { toggleFavorite } from "store/favorites/favorites-actions";
+import { ContextMenuAction, ContextMenuActionSet } from '../context-menu-action-set';
+import { ToggleFavoriteAction } from '../actions/favorite-action';
+import { toggleFavorite } from 'store/favorites/favorites-actions';
 import {
     RenameIcon,
     ShareIcon,
@@ -18,23 +15,23 @@ import {
     OpenIcon,
     Link,
     RestoreVersionIcon,
-    FolderSharedIcon
-} from "components/icon/icon";
-import { openCollectionUpdateDialog } from "store/collections/collection-update-actions";
-import { favoritePanelActions } from "store/favorite-panel/favorite-panel-action";
+    FolderSharedIcon,
+} from 'components/icon/icon';
+import { openCollectionUpdateDialog } from 'store/collections/collection-update-actions';
+import { favoritePanelActions } from 'store/favorite-panel/favorite-panel-action';
 import { openMoveCollectionDialog } from 'store/collections/collection-move-actions';
-import { openCollectionCopyDialog } from "store/collections/collection-copy-actions";
-import { openWebDavS3InfoDialog } from "store/collections/collection-info-actions";
-import { ToggleTrashAction } from "views-components/context-menu/actions/trash-action";
-import { toggleCollectionTrashed } from "store/trash/trash-actions";
+import { openCollectionCopyDialog } from 'store/collections/collection-copy-actions';
+import { openWebDavS3InfoDialog } from 'store/collections/collection-info-actions';
+import { ToggleTrashAction } from 'views-components/context-menu/actions/trash-action';
+import { toggleCollectionTrashed } from 'store/trash/trash-actions';
 import { openSharingDialog } from 'store/sharing-dialog/sharing-dialog-actions';
-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 { openRestoreCollectionVersionDialog } from "store/collections/collection-version-actions";
-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 { copyToClipboardAction, openInNewTabAction } from 'store/open-in-new-tab/open-in-new-tab.actions';
+import { openRestoreCollectionVersionDialog } from 'store/collections/collection-version-actions';
+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';
 
 const toggleFavoriteAction: ContextMenuAction = {
     component: ToggleFavoriteAction,
@@ -43,90 +40,93 @@ const toggleFavoriteAction: ContextMenuAction = {
         dispatch<any>(toggleFavorite(resource)).then(() => {
             dispatch<any>(favoritePanelActions.REQUEST_ITEMS());
         });
-    }
-};
-
-const commonActionSet: 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: CopyIcon,
-        name: "Make a copy",
-        execute: (dispatch, resource) => {
-            dispatch<any>(openCollectionCopyDialog(resource));
-        }
+};
 
-    },
-    {
-        icon: DetailsIcon,
-        name: "View details",
-        execute: dispatch => {
-            dispatch<any>(toggleDetailsPanel());
-        }
-    },
-    {
-        icon: AdvancedIcon,
-        name: "API Details",
-        execute: (dispatch, resource) => {
-            dispatch<any>(openAdvancedTabDialog(resource.uuid));
-        }
-    },
-]];
+const commonActionSet: 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: CopyIcon,
+            name: 'Make a copy',
+            execute: (dispatch, resource) => {
+                dispatch<any>(openCollectionCopyDialog(resource));
+            },
+        },
+        {
+            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 readOnlyCollectionActionSet: ContextMenuActionSet = [[
-    ...commonActionSet.reduce((prev, next) => prev.concat(next), []),
-    toggleFavoriteAction,
-    {
-        icon: FolderSharedIcon,
-        name: "Open with 3rd party client",
-        execute: (dispatch, resource) => {
-            dispatch<any>(openWebDavS3InfoDialog(resource.uuid));
-        }
-    },
-]];
+export const readOnlyCollectionActionSet: ContextMenuActionSet = [
+    [
+        ...commonActionSet.reduce((prev, next) => prev.concat(next), []),
+        toggleFavoriteAction,
+        {
+            icon: FolderSharedIcon,
+            name: 'Open with 3rd party client',
+            execute: (dispatch, resource) => {
+                dispatch<any>(openWebDavS3InfoDialog(resource.uuid));
+            },
+        },
+    ],
+];
 
 export const collectionActionSet: ContextMenuActionSet = [
     [
         ...readOnlyCollectionActionSet.reduce((prev, next) => prev.concat(next), []),
         {
             icon: RenameIcon,
-            name: "Edit collection",
+            name: 'Edit collection',
             execute: (dispatch, resource) => {
                 dispatch<any>(openCollectionUpdateDialog(resource));
-            }
+            },
         },
         {
             icon: ShareIcon,
-            name: "Share",
+            name: 'Share',
             execute: (dispatch, { uuid }) => {
                 dispatch<any>(openSharingDialog(uuid));
-            }
+            },
         },
         {
             icon: MoveToIcon,
-            name: "Move to",
-            execute: (dispatch, resource) => dispatch<any>(openMoveCollectionDialog(resource))
+            name: 'Move to',
+            execute: (dispatch, resource) => dispatch<any>(openMoveCollectionDialog(resource)),
         },
         {
             component: ToggleTrashAction,
             name: 'ToggleTrashAction',
             execute: (dispatch, resource) => {
                 dispatch<any>(toggleCollectionTrashed(resource.uuid, resource.isTrashed!!));
-            }
+            },
         },
-    ]
+    ],
 ];
 
 export const collectionAdminActionSet: ContextMenuActionSet = [
@@ -139,9 +139,9 @@ export const collectionAdminActionSet: ContextMenuActionSet = [
                 dispatch<any>(togglePublicFavorite(resource)).then(() => {
                     dispatch<any>(publicFavoritePanelActions.REQUEST_ITEMS());
                 });
-            }
+            },
         },
-    ]
+    ],
 ];
 
 export const oldCollectionVersionActionSet: ContextMenuActionSet = [
@@ -152,7 +152,7 @@ export const oldCollectionVersionActionSet: ContextMenuActionSet = [
             name: 'Restore version',
             execute: (dispatch, { uuid }) => {
                 dispatch<any>(openRestoreCollectionVersionDialog(uuid));
-            }
+            },
         },
-    ]
+    ],
 ];
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 d6d35a78..d0d979af 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
@@ -10,7 +10,6 @@ import { removeProcessPermanently, REMOVE_MANY_PROCESSES_DIALOG } from 'store/pr
 
 const mapDispatchToProps = (dispatch: Dispatch, props: WithDialogProps<any>) => ({
     onConfirm: () => {
-        console.log(props.data.list);
         props.closeDialog();
         props.data.list.forEach((uuid: string) => dispatch<any>(removeProcessPermanently(uuid)));
     },

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


hooks/post-receive
-- 




More information about the arvados-commits mailing list