[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