Merge branch 'master' of git.curoverse.com:arvados-workbench2 into 14512_admin_links
authorJanicki Artur <artur.janicki@contractors.roche.com>
Wed, 12 Dec 2018 09:55:10 +0000 (10:55 +0100)
committerJanicki Artur <artur.janicki@contractors.roche.com>
Wed, 12 Dec 2018 09:55:10 +0000 (10:55 +0100)
refs #2
14512

Arvados-DCO-1.1-Signed-off-by: Janicki Artur <artur.janicki@contractors.roche.com>

1  2 
src/models/link.ts
src/routes/route-change-handlers.ts
src/routes/routes.ts
src/store/navigation/navigation-action.ts
src/views-components/main-app-bar/admin-menu.tsx
src/views-components/main-content-bar/main-content-bar.tsx
src/views/workbench/workbench.tsx

Simple merge
Simple merge
Simple merge
index 0000000000000000000000000000000000000000,40ba91616e4675ddce7622b68d2168da8bcc6fdc..88aafbae61ef3c821d90b513389a772c4b0e41da
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,45 +1,43 @@@
 -import { 
 -    navigateToSshKeysAdmin, navigateToKeepServices, navigateToComputeNodes,
 -    navigateToApiClientAuthorizations
 -} from '~/store/navigation/navigation-action';
+ // Copyright (C) The Arvados Authors. All rights reserved.
+ //
+ // SPDX-License-Identifier: AGPL-3.0
+ import * as React from "react";
+ import { MenuItem } from "@material-ui/core";
+ import { User } from "~/models/user";
+ import { DropdownMenu } from "~/components/dropdown-menu/dropdown-menu";
+ import { AdminMenuIcon } from "~/components/icon/icon";
+ import { DispatchProp, connect } from 'react-redux';
+ import { logout } from '~/store/auth/auth-action';
+ import { RootState } from "~/store/store";
+ import { openRepositoriesPanel } from "~/store/repositories/repositories-actions";
 -                <MenuItem onClick={() => dispatch(navigateToSshKeysAdmin)}>Ssh Keys</MenuItem>
 -                <MenuItem onClick={() => dispatch(navigateToApiClientAuthorizations)}>Api Tokens</MenuItem>
++import * as NavigationAction from '~/store/navigation/navigation-action';
+ import { openAdminVirtualMachines } from "~/store/virtual-machines/virtual-machines-actions";
+ import { openUserPanel } from "~/store/users/users-actions";
+ interface AdminMenuProps {
+     user?: User;
+ }
+ const mapStateToProps = (state: RootState): AdminMenuProps => ({
+     user: state.auth.user
+ });
+ export const AdminMenu = connect(mapStateToProps)(
+     ({ user, dispatch }: AdminMenuProps & DispatchProp<any>) =>
+         user
+             ? <DropdownMenu
+                 icon={<AdminMenuIcon />}
+                 id="admin-menu"
+                 title="Admin Panel">
+                 <MenuItem onClick={() => dispatch(openRepositoriesPanel())}>Repositories</MenuItem>
+                 <MenuItem onClick={() => dispatch(openAdminVirtualMachines())}>Virtual Machines</MenuItem>
 -                <MenuItem onClick={() => dispatch(navigateToComputeNodes)}>Compute Nodes</MenuItem>
 -                <MenuItem onClick={() => dispatch(navigateToKeepServices)}>Keep Services</MenuItem>
++                <MenuItem onClick={() => dispatch(NavigationAction.navigateToSshKeysAdmin)}>Ssh Keys</MenuItem>
++                <MenuItem onClick={() => dispatch(NavigationAction.navigateToApiClientAuthorizations)}>Api Tokens</MenuItem>
+                 <MenuItem onClick={() => dispatch(openUserPanel())}>Users</MenuItem>
++                <MenuItem onClick={() => dispatch(NavigationAction.navigateToComputeNodes)}>Compute Nodes</MenuItem>
++                <MenuItem onClick={() => dispatch(NavigationAction.navigateToKeepServices)}>Keep Services</MenuItem>
++                <MenuItem onClick={() => dispatch(NavigationAction.navigateToLinks)}>Links</MenuItem>
+                 <MenuItem onClick={() => dispatch(logout())}>Logout</MenuItem>
+             </DropdownMenu>
+             : null);
index 03362178075c75be95fb7fcbbf6e51fc90d80cea,92592193a97c67ba7b467162a5e28650ed7617fa..3806b5245a75b0e58acfe4d6c4aba4247acdb434
@@@ -18,11 -18,12 +18,12 @@@ interface MainContentBarProps 
  
  const isButtonVisible = ({ router }: RootState) => {
      const pathname = router.location ? router.location.pathname : '';
-     return !Routes.matchWorkflowRoute(pathname) && !Routes.matchVirtualMachineRoute(pathname) &&
-         !Routes.matchRepositoriesRoute(pathname) && !Routes.matchSshKeysRoute(pathname) &&
+     return !Routes.matchWorkflowRoute(pathname) && !Routes.matchUserVirtualMachineRoute(pathname) &&
+         !Routes.matchAdminVirtualMachineRoute(pathname) && !Routes.matchRepositoriesRoute(pathname) &&
+         !Routes.matchSshKeysAdminRoute(pathname) && !Routes.matchSshKeysUserRoute(pathname) &&
          !Routes.matchKeepServicesRoute(pathname) && !Routes.matchComputeNodesRoute(pathname) &&
-         !Routes.matchApiClientAuthorizationsRoute(pathname) && !Routes.matchUsersRoute(pathname) && 
-         !Routes.matchLinksRoute(pathname);
+         !Routes.matchApiClientAuthorizationsRoute(pathname) && !Routes.matchUsersRoute(pathname) &&
 -        !Routes.matchMyAccountRoute(pathname);
++        !Routes.matchMyAccountRoute(pathname) && !Routes.matchLinksRoute(pathname);
  };
  
  export const MainContentBar = connect((state: RootState) => ({
Simple merge