X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/a5984c9693267f41237746af6b37d8402effdc39..9999a9db9fede0e1971dc792389982b428a1bb19:/src/views/workbench/workbench.tsx diff --git a/src/views/workbench/workbench.tsx b/src/views/workbench/workbench.tsx index 8c3145b823..59495e94b3 100644 --- a/src/views/workbench/workbench.tsx +++ b/src/views/workbench/workbench.tsx @@ -10,8 +10,6 @@ import AppBar from '@material-ui/core/AppBar'; import Toolbar from '@material-ui/core/Toolbar'; import Typography from '@material-ui/core/Typography'; import { connect, DispatchProp } from "react-redux"; -import Tree from "../../components/tree/tree"; -import { Project } from "../../models/project"; import ProjectList from "../../components/project-list/project-list"; import { Route, Switch } from "react-router"; import { Link } from "react-router-dom"; @@ -24,6 +22,12 @@ import { AccountCircle } from "@material-ui/icons"; import { User } from "../../models/user"; import Grid from "@material-ui/core/Grid/Grid"; import { RootState } from "../../store/store"; +import projectActions from "../../store/project/project-action" + +import ProjectTree from '../../components/project-tree/project-tree'; +import { TreeItem, TreeItemStatus } from "../../components/tree/tree"; +import { Project } from "../../models/project"; +import { projectService } from '../../services/services'; const drawerWidth = 240; @@ -58,7 +62,7 @@ const styles: StyleRulesCallback = (theme: Theme) => ({ }); interface WorkbenchDataProps { - projects: Project[]; + projects: Array>; user?: User; } @@ -100,46 +104,56 @@ class Workbench extends React.Component { }); }; + toggleProjectTreeItem = (itemId: string, status: TreeItemStatus) => { + if (status === TreeItemStatus.Loaded) { + this.props.dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM(itemId)) + } else { + this.props.dispatch(projectService.getProjectList(itemId)).then(() => { + this.props.dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM(itemId)); + }) + } + }; + render() { - const {classes, user} = this.props; + const { classes, user } = this.props; return (
- - Arvados
Workbench 2 + + Arvados
Workbench 2
{user ? - - + + {user.firstName} {user.lastName} - + aria-owns={this.state.anchorEl ? 'menu-appbar' : undefined} + aria-haspopup="true" + onClick={this.handleOpenMenu} + color="inherit"> + - Logout - My account + id="menu-appbar" + anchorEl={this.state.anchorEl} + anchorOrigin={{ + vertical: 'top', + horizontal: 'right', + }} + transformOrigin={{ + vertical: 'top', + horizontal: 'right', + }} + open={!!this.state.anchorEl} + onClose={this.handleClose}> + Logout + My account : @@ -148,20 +162,20 @@ class Workbench extends React.Component {
{user && - -
- - {p.name} - }/> - } + +
+ + }
-
+
- +