Mock collection files removal dialogs
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Thu, 2 Aug 2018 13:39:56 +0000 (15:39 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Thu, 2 Aug 2018 13:39:56 +0000 (15:39 +0200)
Feature #13855

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/views-components/context-menu/action-sets/collection-files-action-set.ts
src/views-components/context-menu/action-sets/collection-files-item-action-set.ts
src/views-components/remove-dialog/remove-dialog.tsx [new file with mode: 0644]
src/views/workbench/workbench.tsx

index dc17e693e38a8cff841689ff29121f4f9bf3fa71..9396b9e472f2e287919370f821dbb94235ae6f2f 100644 (file)
@@ -4,6 +4,7 @@
 
 import { ContextMenuActionSet } from "../context-menu-action-set";
 import { collectionPanelFilesAction } from "../../../store/collection-panel/collection-panel-files/collection-panel-files-actions";
+import { openRemoveDialog } from "../../remove-dialog/remove-dialog";
 
 
 export const collectionFilesActionSet: ContextMenuActionSet = [[{
@@ -19,7 +20,7 @@ export const collectionFilesActionSet: ContextMenuActionSet = [[{
 },{
     name: "Remove selected",
     execute: (dispatch, resource) => {
-        return;
+        dispatch(openRemoveDialog('selected files'));
     }
 },{
     name: "Download selected",
index 5e8427647cd1fe4b15529d42e26d9c6cca946b96..da11b47694b380f11645ba7ddc04bcd20a11632a 100644 (file)
@@ -4,6 +4,7 @@
 
 import { ContextMenuActionSet } from "../context-menu-action-set";
 import { RenameIcon, DownloadIcon, RemoveIcon } from "../../../components/icon/icon";
+import { openRemoveDialog } from "../../remove-dialog/remove-dialog";
 
 
 export const collectionFilesItemActionSet: ContextMenuActionSet = [[{
@@ -22,6 +23,6 @@ export const collectionFilesItemActionSet: ContextMenuActionSet = [[{
     name: "Remove",
     icon: RemoveIcon,
     execute: (dispatch, resource) => {
-        return;
+        dispatch(openRemoveDialog('selected file'));
     }
 }]];
diff --git a/src/views-components/remove-dialog/remove-dialog.tsx b/src/views-components/remove-dialog/remove-dialog.tsx
new file mode 100644 (file)
index 0000000..f08727f
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+import * as React from "react";
+import { Dialog, DialogTitle, DialogContent, DialogActions, Button } from "@material-ui/core";
+import { withDialog } from "../../store/dialog/with-dialog";
+import { dialogActions } from "../../store/dialog/dialog-actions";
+
+export const REMOVE_DIALOG = 'removeCollectionFilesDialog';
+
+export const RemoveDialog = withDialog(REMOVE_DIALOG)(
+    (props) =>
+        <Dialog open={props.open}>
+            <DialogTitle>{`Removing ${props.data}`}</DialogTitle>
+            <DialogContent>
+                {`Are you sure you want to remove ${props.data}?`}
+            </DialogContent>
+            <DialogActions>
+                <Button
+                    variant='flat'
+                    color='primary'
+                    onClick={props.closeDialog}>
+                    Cancel
+                </Button>
+                <Button variant='raised' color='primary'>
+                    Remove
+                </Button>
+            </DialogActions>
+        </Dialog>
+);
+
+export const openRemoveDialog = (removedDataName: string) =>
+    dialogActions.OPEN_DIALOG({ id: REMOVE_DIALOG, data: removedDataName });
index 160e12f84017e5a99e19c6e0084d3546dbdd59c9..6fc3484d72d4306abfdab9c4dd8f4b3b1d299865 100644 (file)
@@ -41,6 +41,7 @@ import { CreateCollectionDialog } from '../../views-components/create-collection
 import { CollectionPanel } from '../collection-panel/collection-panel';
 import { loadCollection } from '../../store/collection-panel/collection-panel-action';
 import { getCollectionUrl } from '../../models/collection';
+import { RemoveDialog } from '../../views-components/remove-dialog/remove-dialog';
 
 const drawerWidth = 240;
 const appBarHeight = 100;
@@ -226,6 +227,7 @@ export const Workbench = withStyles(styles)(
                         <Snackbar />
                         <CreateProjectDialog />
                         <CreateCollectionDialog />
+                        <RemoveDialog />
                         <CurrentTokenDialog
                             currentToken={this.props.currentToken}
                             open={this.state.isCurrentTokenDialogOpen}