Restore context menu icon
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Fri, 22 Jun 2018 13:37:34 +0000 (15:37 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Fri, 22 Jun 2018 13:37:34 +0000 (15:37 +0200)
Feature #13633

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

src/components/data-explorer/data-explorer.tsx

index 9013f948bfd3910b46f6542ac649cc96cfc2d7bd..6a3103b140a49238175a104e1c07f3d9c4fb6ab9 100644 (file)
@@ -3,7 +3,8 @@
 // SPDX-License-Identifier: AGPL-3.0
 
 import * as React from 'react';
-import { Grid, Paper, Toolbar, StyleRulesCallback, withStyles, Theme, WithStyles, TablePagination, Table } from '@material-ui/core';
+import { Grid, Paper, Toolbar, StyleRulesCallback, withStyles, Theme, WithStyles, TablePagination, Table, IconButton } from '@material-ui/core';
+import MoreVertIcon from "@material-ui/icons/MoreVert";
 import ContextMenu, { ContextMenuActionGroup, ContextMenuAction } from "../../components/context-menu/context-menu";
 import ColumnSelector from "../../components/column-selector/column-selector";
 import DataTable from "../../components/data-table/data-table";
@@ -63,7 +64,9 @@ class DataExplorer<T> extends React.Component<DataExplorerProps<T> & WithStyles<
 
             </Toolbar>
             <DataTable
-                columns={this.props.columns}
+                columns={[
+                    ...this.props.columns,
+                    this.contextMenuColumn]}
                 items={this.props.items}
                 onRowClick={(_, item: T) => this.props.onRowClick(item)}
                 onRowContextMenu={this.openContextMenu}
@@ -115,6 +118,21 @@ class DataExplorer<T> extends React.Component<DataExplorerProps<T> & WithStyles<
         this.props.onChangeRowsPerPage(parseInt(event.target.value, 10));
     }
 
+    renderContextMenuTrigger = (item: T) =>
+        <Grid container justify="flex-end">
+            <IconButton onClick={event => this.openContextMenu(event, item)}>
+                <MoreVertIcon />
+            </IconButton>
+        </Grid>
+
+    contextMenuColumn = {
+        name: "Actions",
+        selected: true,
+        key: "context-actions",
+        renderHeader: () => null,
+        render: this.renderContextMenuTrigger
+    };
+
 }
 
 type CssRules = "searchBox" | "toolbar";