[ARVADOS-WORKBENCH2] updated: 1.2.0-937-ge4b54c3
Git user
git at public.curoverse.com
Wed Nov 21 10:14:25 EST 2018
Summary of changes:
src/common/webdav.ts | 34 ++++-
src/components/data-explorer/data-explorer.tsx | 4 +-
src/components/icon/icon.tsx | 2 +
src/index.tsx | 2 +
src/models/repositories.ts | 10 ++
src/models/resource.ts | 4 +
src/models/ssh-key.ts | 17 +++
src/models/tree.test.ts | 10 +-
src/models/tree.ts | 9 +-
src/routes/route-change-handlers.ts | 10 +-
src/routes/routes.ts | 10 +-
.../authorized-keys-service.ts | 34 +++++
.../collection-service/collection-service.ts | 4 +-
.../common-service/common-resource-service.ts | 3 +
src/services/groups-service/groups-service.ts | 2 +-
src/services/project-service/project-service.ts | 26 +++-
.../repositories-service/repositories-service.ts | 22 +++
src/services/services.ts | 6 +
src/store/advanced-tab/advanced-tab.ts | 70 +++++++---
src/store/auth/auth-action.ts | 63 ++++++++-
src/store/auth/auth-reducer.test.ts | 4 +-
src/store/auth/auth-reducer.ts | 16 ++-
.../collection-panel-files-actions.ts | 18 ++-
src/store/collections/collection-copy-actions.ts | 2 +
src/store/collections/collection-move-actions.ts | 2 +
.../collections/collection-partial-copy-actions.ts | 2 +
src/store/collections/collection-upload-actions.ts | 2 +-
src/store/context-menu/context-menu-actions.ts | 15 +-
src/store/details-panel/details-panel-action.ts | 63 ++++++++-
src/store/navigation/navigation-action.ts | 4 +
src/store/processes/process-copy-actions.ts | 2 +
src/store/processes/process-move-actions.ts | 2 +
src/store/projects/project-move-actions.ts | 2 +
src/store/repositories/repositories-actions.ts | 107 ++++++++++++++
src/store/repositories/repositories-reducer.ts | 20 +++
.../run-process-panel/run-process-panel-actions.ts | 2 +-
src/store/store.ts | 4 +-
src/store/tree-picker/picker-id.tsx | 16 +++
src/store/tree-picker/tree-picker-actions.ts | 37 +++--
src/store/tree-picker/tree-picker-reducer.ts | 4 +
src/store/workbench/workbench-actions.ts | 39 ++++--
src/validators/is-rsa-key.tsx | 10 ++
src/validators/validators.tsx | 8 +-
.../advanced-tab-dialog/advanced-tab-dialog.tsx | 2 +-
.../action-sets/collection-action-set.ts | 3 +-
.../action-sets/collection-resource-action-set.ts | 3 +-
.../context-menu/action-sets/process-action-set.ts | 3 +-
.../action-sets/process-resource-action-set.ts | 4 +-
.../context-menu/action-sets/project-action-set.ts | 3 +-
.../action-sets/repository-action-set.ts | 35 +++++
.../action-sets/trashed-collection-action-set.ts | 3 +-
src/views-components/context-menu/context-menu.tsx | 3 +-
.../details-panel/details-panel.tsx | 5 +-
.../details-panel/project-details.tsx | 87 +++++++++---
.../dialog-copy/dialog-collection-partial-copy.tsx | 19 ++-
src/views-components/dialog-copy/dialog-copy.tsx | 31 +++--
.../dialog-create/dialog-repository-create.tsx | 21 +++
.../dialog-create/dialog-ssh-key-create.tsx | 25 ++++
.../dialog-forms/copy-collection-dialog.ts | 4 +-
.../dialog-forms/copy-process-dialog.ts | 4 +-
.../dialog-forms/create-repository-dialog.ts | 19 +++
.../dialog-forms/create-ssh-key-dialog.ts | 19 +++
.../dialog-forms/move-collection-dialog.ts | 4 +-
.../dialog-forms/move-process-dialog.ts | 4 +-
.../dialog-forms/move-project-dialog.ts | 4 +-
.../dialog-forms/partial-copy-collection-dialog.ts | 5 +-
.../dialog-move/dialog-move-to.tsx | 18 ++-
.../form-fields/collection-form-fields.tsx | 13 +-
.../form-fields/repository-form-fields.tsx | 30 ++++
.../form-fields/ssh-key-form-fields.tsx | 25 ++++
src/views-components/main-app-bar/account-menu.tsx | 8 +-
.../main-content-bar/main-content-bar.tsx | 21 ++-
.../project-properties-dialog.tsx | 73 ++++++++++
.../project-properties-form.tsx | 95 +++++++++++++
.../project-tree-picker/project-tree-picker.tsx | 17 ++-
.../generic-projects-tree-picker.tsx | 8 ++
.../projects-tree-picker/projects-tree-picker.tsx | 16 ++-
.../repositories-sample-git-dialog.tsx | 78 +++++++++++
.../repository-attributes-dialog.tsx | 89 ++++++++++++
.../repository-remove-dialog.ts} | 13 +-
.../rich-text-editor-dialog.tsx | 4 +-
.../repositories-panel/repositories-panel.tsx | 154 +++++++++++++++++++++
src/views/ssh-key-panel/ssh-key-panel-root.tsx | 55 ++++++++
src/views/ssh-key-panel/ssh-key-panel.tsx | 23 +++
src/views/workbench/workbench.tsx | 16 +++
85 files changed, 1602 insertions(+), 187 deletions(-)
create mode 100644 src/models/repositories.ts
create mode 100644 src/models/ssh-key.ts
create mode 100644 src/services/authorized-keys-service/authorized-keys-service.ts
create mode 100644 src/services/repositories-service/repositories-service.ts
create mode 100644 src/store/repositories/repositories-actions.ts
create mode 100644 src/store/repositories/repositories-reducer.ts
create mode 100644 src/store/tree-picker/picker-id.tsx
create mode 100644 src/validators/is-rsa-key.tsx
create mode 100644 src/views-components/context-menu/action-sets/repository-action-set.ts
create mode 100644 src/views-components/dialog-create/dialog-repository-create.tsx
create mode 100644 src/views-components/dialog-create/dialog-ssh-key-create.tsx
create mode 100644 src/views-components/dialog-forms/create-repository-dialog.ts
create mode 100644 src/views-components/dialog-forms/create-ssh-key-dialog.ts
create mode 100644 src/views-components/form-fields/repository-form-fields.tsx
create mode 100644 src/views-components/form-fields/ssh-key-form-fields.tsx
create mode 100644 src/views-components/project-properties-dialog/project-properties-dialog.tsx
create mode 100644 src/views-components/project-properties-dialog/project-properties-form.tsx
create mode 100644 src/views-components/repositories-sample-git-dialog/repositories-sample-git-dialog.tsx
create mode 100644 src/views-components/repository-attributes-dialog/repository-attributes-dialog.tsx
copy src/views-components/{process-remove-dialog/process-remove-dialog.tsx => repository-remove-dialog/repository-remove-dialog.ts} (55%)
create mode 100644 src/views/repositories-panel/repositories-panel.tsx
create mode 100644 src/views/ssh-key-panel/ssh-key-panel-root.tsx
create mode 100644 src/views/ssh-key-panel/ssh-key-panel.tsx
via e4b54c3b5d99c99553e319ead28c3aa8dcd6eecc (commit)
via da61c0b626bfef292175bb0c623213cb1efad63d (commit)
via dab7bbaf5fdee0e4e56c0bbfe14da5ad42b5869d (commit)
via d4068786fd7136cfe21c3ef3ad3040f57ed3385a (commit)
via aed25c0fef7e65b307d702e8ee515567d6c2a7c1 (commit)
via b56fac763b24e34c5c2ba42cf9e183ffcc2014fc (commit)
via 3bb5a602028d5ace55da8af3637a7f9d4eb48c00 (commit)
via 9eaee66663fa21962f46e301ba6257ab63a9b10c (commit)
via 65bdf250e5a09633e482bacd968666861643c150 (commit)
via c27efd822acfd3bd93fc3e2e3e24a24146811eb7 (commit)
via e4bb589377e9be89787f1b3cc15a0cd2f17a6f7a (commit)
via e858ef67d3d17323b31eeb92e99ff8de70b5d591 (commit)
via 13bf073c77ca9fcf75ebd31098a9bf538e96c9c9 (commit)
via 42db83a0075f9704dcbfb2cd29821c97ff0fe34b (commit)
via 62ff5a943865229c1630c66366f824511048ce63 (commit)
via 856192df2e78cb7182122a77592044f5e51b1888 (commit)
via e3d13624759c128c326b64e9e0e60996bd28aadf (commit)
via cab8fbece33e9c6188b911552790f459c740f4cd (commit)
via c31b1e6d6d213bbae060d1111e3831c728433466 (commit)
via 2de62809f717c64091505a01961b517ee6ccc9d4 (commit)
via a0aedfcf68e7b3d4caeee3e36d776ca0b34780bf (commit)
via f06b0aa5faeecdc4dfbc803170635ecfc19293de (commit)
via 70bf37e9881a433b740cc70376d4b6680a582910 (commit)
via ead22eaffc696e9619d0ba7a71c8d54099200685 (commit)
via 1a59e5dcc15a9a1aebfd15a08903fcb75efd2aac (commit)
via 0a0db4ca8433ae210df5cf1475dd2b77e4aabec9 (commit)
via 82908c571a492f19f2ea402e033fa84b6df15b61 (commit)
via abf8502a9a1f061f58586b966a4012674d9cb71e (commit)
via 123bae90530147cf31e220066999b416d3610ae2 (commit)
via 9e1596de7ac6ed8286b17c5e3d2b39bc0c03fa8f (commit)
via 6e7601cf151b8384b353b3c90134e4bbb4939d2f (commit)
via ed5c052b271d357da4b85a10db33edd10d43685d (commit)
via 2636921500b01485584eb43263815957b867122a (commit)
via aed4e6256e6d5ecb5edc60a04a5aab6f04d9fb99 (commit)
via 185f57cf4371e7811077bee56976028dd640688d (commit)
via fcda82dca52aa45926f8e656c45baf892acdc634 (commit)
via fc05ea3e89e7618ea0a52d88a377533512d5ec32 (commit)
via de434883528ce218d384686092e82742a18491c7 (commit)
via ea4c952433d2ee3906999f629b8bc2076e0af13c (commit)
via 2edee5acc1ef219dd90a7314c87df5683569afaa (commit)
via 6f08c46e8d91662aab3b3e600868328c1bd1bacd (commit)
via a5f55ef0fa6bd61ba5678d5ccdbf26589c093212 (commit)
via 6d1da474f9ae85108bbde00fe341cca65fd0ca06 (commit)
via f528f6f6ca52c8654b52f84e52339da8e91a9d9c (commit)
via c1b42ed027b39f04d4bf61b27d0603818cdd2bee (commit)
via db6ff2ea8246badb7bdcfb0ec0ad169134c5c7ba (commit)
via dd00886a1098e82a70b814d7d4c2f30d3e6e69c7 (commit)
via fa8e4468481efa1d43065b73ae1fa08fb0e851a7 (commit)
via c4fb72d1ddf4080cae66e296b873e5605e83e326 (commit)
via 0101b0b9c7416f7aadb94ca71258b4d4e60af58a (commit)
via a2783c48c8210410de72bd17a32ab72d0f364cde (commit)
via 90f56604ead086b6acc582bcb745a75e8bde5267 (commit)
via 59ddd20573eab6116c590c2a692c0131fa2f3f4f (commit)
via 02e77918141f173e5a61b17623c8cad0e8a1bae3 (commit)
via 807660c78edbb1672af8b60348961896e48487b6 (commit)
via 61eb34ae0ce62f67769baeba02b4e15971873e34 (commit)
via 1eb2cc60cbf40d86db2304e11a678c3aa51af321 (commit)
via bb89fb18a6edfd90e80470abf040f6a5b9f6da1d (commit)
via 00ec76eb43a0f27c02669cbfce16d0d2211ff0b4 (commit)
via d1231b6ce7e8d40498b15011b88117812acdf632 (commit)
via ce19ce10f479c168f72003495696fdd0f01ecc52 (commit)
from 9bfdbacc69b6ccbcedd07b3d906efbac6e192202 (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 e4b54c3b5d99c99553e319ead28c3aa8dcd6eecc
Merge: 9bfdbac da61c0b
Author: Pawel Kowalczyk <pawel.kowalczyk at contractors.roche.com>
Date: Wed Nov 21 16:14:05 2018 +0100
fixed conflicts
Feature #13864
Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk <pawel.kowalczyk at contractors.roche.com>
diff --cc src/models/resource.ts
index f200713,520520f..d2f524f
--- a/src/models/resource.ts
+++ b/src/models/resource.ts
@@@ -28,8 -28,8 +28,9 @@@ export enum ResourceKind
LOG = "arvados#log",
PROCESS = "arvados#containerRequest",
PROJECT = "arvados#group",
+ REPOSITORY = "arvados#repository",
USER = "arvados#user",
+ VIRTUAL_MACHINE = "arvados#virtualMachine",
WORKFLOW = "arvados#workflow",
NONE = "arvados#none"
}
@@@ -40,8 -40,8 +41,9 @@@ export enum ResourceObjectType
CONTAINER_REQUEST = 'xvhdp',
GROUP = 'j7d0g',
LOG = '57u5n',
+ REPOSITORY = 's0uqq',
USER = 'tpzed',
+ VIRTUAL_MACHINE = '2x53u',
WORKFLOW = '7fd4e',
}
@@@ -75,8 -75,8 +77,10 @@@ export const extractUuidKind = (uuid: s
return ResourceKind.LOG;
case ResourceObjectType.WORKFLOW:
return ResourceKind.WORKFLOW;
+ case ResourceObjectType.VIRTUAL_MACHINE:
+ return ResourceKind.VIRTUAL_MACHINE;
+ case ResourceObjectType.REPOSITORY:
+ return ResourceKind.REPOSITORY;
default:
return undefined;
}
diff --cc src/routes/route-change-handlers.ts
index ca15a15,c7f3555..22d0b7c
--- a/src/routes/route-change-handlers.ts
+++ b/src/routes/route-change-handlers.ts
@@@ -4,8 -4,8 +4,8 @@@
import { History, Location } from 'history';
import { RootStore } from '~/store/store';
- import { matchProcessRoute, matchProcessLogRoute, matchProjectRoute, matchCollectionRoute, matchFavoritesRoute, matchTrashRoute, matchRootRoute, matchSharedWithMeRoute, matchRunProcessRoute, matchWorkflowRoute, matchSearchResultsRoute, matchVirtualMachineRoute } from './routes';
- import { loadProject, loadCollection, loadFavorites, loadTrash, loadProcess, loadProcessLog, loadVirtualMachines } from '~/store/workbench/workbench-actions';
-import { matchProcessRoute, matchProcessLogRoute, matchProjectRoute, matchCollectionRoute, matchFavoritesRoute, matchTrashRoute, matchRootRoute, matchSharedWithMeRoute, matchRunProcessRoute, matchWorkflowRoute, matchSearchResultsRoute, matchSshKeysRoute, matchRepositoriesRoute } from './routes';
-import { loadProject, loadCollection, loadFavorites, loadTrash, loadProcess, loadProcessLog, loadSshKeys, loadRepositories } from '~/store/workbench/workbench-actions';
++import { matchProcessRoute, matchProcessLogRoute, matchProjectRoute, matchCollectionRoute, matchFavoritesRoute, matchTrashRoute, matchRootRoute, matchSharedWithMeRoute, matchRunProcessRoute, matchWorkflowRoute, matchSearchResultsRoute, matchSshKeysRoute, matchRepositoriesRoute, matchVirtualMachineRoute } from './routes';
++import { loadProject, loadCollection, loadFavorites, loadTrash, loadProcess, loadProcessLog, loadSshKeys, loadRepositories, loadVirtualMachines } from '~/store/workbench/workbench-actions';
import { navigateToRootProject } from '~/store/navigation/navigation-action';
import { loadSharedWithMe, loadRunProcess, loadWorkflow, loadSearchResults } from '~//store/workbench/workbench-actions';
@@@ -26,8 -27,8 +27,9 @@@ const handleLocationChange = (store: Ro
const searchResultsMatch = matchSearchResultsRoute(pathname);
const sharedWithMeMatch = matchSharedWithMeRoute(pathname);
const runProcessMatch = matchRunProcessRoute(pathname);
+ const virtualMachineMatch = matchVirtualMachineRoute(pathname);
const workflowMatch = matchWorkflowRoute(pathname);
+ const sshKeysMatch = matchSshKeysRoute(pathname);
if (projectMatch) {
store.dispatch(loadProject(projectMatch.params.id));
@@@ -51,7 -52,9 +53,11 @@@
store.dispatch(loadWorkflow);
} else if (searchResultsMatch) {
store.dispatch(loadSearchResults);
+ } else if (virtualMachineMatch) {
+ store.dispatch(loadVirtualMachines);
+ } else if(repositoryMatch) {
+ store.dispatch(loadRepositories);
+ } else if (sshKeysMatch) {
+ store.dispatch(loadSshKeys);
}
};
diff --cc src/routes/routes.ts
index 3723847,c9c2ae2..71cdfda
--- a/src/routes/routes.ts
+++ b/src/routes/routes.ts
@@@ -16,11 -16,12 +16,13 @@@ export const Routes =
FAVORITES: '/favorites',
TRASH: '/trash',
PROCESS_LOGS: `/process-logs/:id(${RESOURCE_UUID_PATTERN})`,
+ REPOSITORIES: '/repositories',
SHARED_WITH_ME: '/shared-with-me',
RUN_PROCESS: '/run-process',
+ VIRTUAL_MACHINES: '/virtual-machines',
WORKFLOWS: '/workflows',
- SEARCH_RESULTS: '/search-results'
+ SEARCH_RESULTS: '/search-results',
+ SSH_KEYS: `/ssh-keys`
};
export const getResourceUrl = (uuid: string) => {
@@@ -78,5 -79,8 +80,11 @@@ export const matchWorkflowRoute = (rout
export const matchSearchResultsRoute = (route: string) =>
matchPath<ResourceRouteParams>(route, { path: Routes.SEARCH_RESULTS });
+export const matchVirtualMachineRoute = (route: string) =>
+ matchPath<ResourceRouteParams>(route, { path: Routes.VIRTUAL_MACHINES });
++
+ export const matchRepositoriesRoute = (route: string) =>
+ matchPath<ResourceRouteParams>(route, { path: Routes.REPOSITORIES });
+
+ export const matchSshKeysRoute = (route: string) =>
+ matchPath(route, { path: Routes.SSH_KEYS });
diff --cc src/services/services.ts
index 9e9fcc5,308505c..f1ef86b
--- a/src/services/services.ts
+++ b/src/services/services.ts
@@@ -24,7 -24,8 +24,9 @@@ import { ApiActions } from "~/services/
import { WorkflowService } from "~/services/workflow-service/workflow-service";
import { SearchService } from '~/services/search-service/search-service';
import { PermissionService } from "~/services/permission-service/permission-service";
+import { VirtualMachinesService } from "~/services/virtual-machines-service/virtual-machines-service";
+ import { RepositoriesService } from '~/services/repositories-service/repositories-service';
+ import { AuthorizedKeysService } from '~/services/authorized-keys-service/authorized-keys-service';
export type ServiceRepository = ReturnType<typeof createServices>;
@@@ -43,8 -45,8 +46,9 @@@ export const createServices = (config:
const logService = new LogService(apiClient, actions);
const permissionService = new PermissionService(apiClient, actions);
const projectService = new ProjectService(apiClient, actions);
+ const repositoriesService = new RepositoriesService(apiClient, actions);
const userService = new UserService(apiClient, actions);
+ const virtualMachineService = new VirtualMachinesService(apiClient, actions);
const workflowService = new WorkflowService(apiClient, actions);
const ancestorsService = new AncestorService(groupsService, userService);
diff --cc src/store/navigation/navigation-action.ts
index c4cf625,fc08f3a..2bfd8b9
--- a/src/store/navigation/navigation-action.ts
+++ b/src/store/navigation/navigation-action.ts
@@@ -62,4 -62,6 +62,8 @@@ export const navigateToRunProcess = pus
export const navigateToSearchResults = push(Routes.SEARCH_RESULTS);
+export const navigateToVirtualMachines = push(Routes.VIRTUAL_MACHINES);
++
+ export const navigateToRepositories = push(Routes.REPOSITORIES);
+
+ export const navigateToSshKeys= push(Routes.SSH_KEYS);
diff --cc src/store/store.ts
index 3f1f4a2,5e648c9..4ab0918
--- a/src/store/store.ts
+++ b/src/store/store.ts
@@@ -43,7 -43,7 +43,8 @@@ import { searchBarReducer } from './sea
import { SEARCH_RESULTS_PANEL_ID } from '~/store/search-results-panel/search-results-panel-actions';
import { SearchResultsMiddlewareService } from './search-results-panel/search-results-middleware-service';
import { resourcesDataReducer } from "~/store/resources-data/resources-data-reducer";
+import { virtualMachinesReducer } from "~/store/virtual-machines/virtual-machines-reducer";
+ import { repositoriesReducer } from '~/store/repositories/repositories-reducer';
const composeEnhancers =
(process.env.NODE_ENV === 'development' &&
@@@ -113,5 -113,5 +114,6 @@@ const createRootReducer = (services: Se
runProcessPanel: runProcessPanelReducer,
appInfo: appInfoReducer,
searchBar: searchBarReducer,
- virtualMachines: virtualMachinesReducer
++ virtualMachines: virtualMachinesReducer,
+ repositories: repositoriesReducer
});
diff --cc src/store/workbench/workbench-actions.ts
index 52d6c9e,5e33661..12dbe7b
--- a/src/store/workbench/workbench-actions.ts
+++ b/src/store/workbench/workbench-actions.ts
@@@ -53,7 -54,7 +54,8 @@@ import { collectionPanelActions } from
import { CollectionResource } from "~/models/collection";
import { searchResultsPanelActions, loadSearchResultsPanel } from '~/store/search-results-panel/search-results-panel-actions';
import { searchResultsPanelColumns } from '~/views/search-results-panel/search-results-panel-view';
+import { loadVirtualMachinesPanel } from '~/store/virtual-machines/virtual-machines-actions';
+ import { loadRepositoriesPanel } from '~/store/repositories/repositories-actions';
export const WORKBENCH_LOADING_SCREEN = 'workbenchLoadingScreen';
@@@ -391,11 -392,16 +393,22 @@@ export const loadSearchResults = handle
await dispatch(loadSearchResultsPanel());
});
+export const loadVirtualMachines = handleFirstTimeLoad(
+ async (dispatch: Dispatch<any>) => {
+ await dispatch(loadVirtualMachinesPanel());
+ dispatch(setBreadcrumbs([{ label: 'Virtual Machines' }]));
+ });
++
+ export const loadRepositories = handleFirstTimeLoad(
+ async (dispatch: Dispatch<any>) => {
+ await dispatch(loadRepositoriesPanel());
+ dispatch(setBreadcrumbs([{ label: 'Repositories' }]));
+ });
+
+ export const loadSshKeys = handleFirstTimeLoad(
+ async (dispatch: Dispatch<any>) => {
+ await dispatch(loadSshKeysPanel());
+ });
const finishLoadingProject = (project: GroupContentsResource | string) =>
async (dispatch: Dispatch<any>) => {
diff --cc src/views-components/main-app-bar/account-menu.tsx
index baf893e,f00c678..ca88021
--- a/src/views-components/main-app-bar/account-menu.tsx
+++ b/src/views-components/main-app-bar/account-menu.tsx
@@@ -8,10 -8,11 +8,12 @@@ import { User, getUserFullname } from "
import { DropdownMenu } from "~/components/dropdown-menu/dropdown-menu";
import { UserPanelIcon } from "~/components/icon/icon";
import { DispatchProp, connect } from 'react-redux';
- import { logout } from "~/store/auth/auth-action";
+ import { logout } from '~/store/auth/auth-action';
import { RootState } from "~/store/store";
- import { openCurrentTokenDialog } from '../../store/current-token-dialog/current-token-dialog-actions';
+ import { openCurrentTokenDialog } from '~/store/current-token-dialog/current-token-dialog-actions';
+ import { openRepositoriesPanel } from "~/store/repositories/repositories-actions";
+ import { navigateToSshKeys } from '~/store/navigation/navigation-action';
+import { openVirtualMachines } from "~/store/virtual-machines/virtual-machines-actions";
interface AccountMenuProps {
user?: User;
@@@ -31,8 -32,9 +33,10 @@@ export const AccountMenu = connect(mapS
<MenuItem>
{getUserFullname(user)}
</MenuItem>
+ <MenuItem onClick={() => dispatch(openVirtualMachines())}>Virtual Machines</MenuItem>
+ <MenuItem onClick={() => dispatch(openRepositoriesPanel())}>Repositories</MenuItem>
<MenuItem onClick={() => dispatch(openCurrentTokenDialog)}>Current token</MenuItem>
+ <MenuItem onClick={() => dispatch(navigateToSshKeys)}>Ssh Keys</MenuItem>
<MenuItem>My account</MenuItem>
<MenuItem onClick={() => dispatch(logout())}>Logout</MenuItem>
</DropdownMenu>
diff --cc src/views-components/main-content-bar/main-content-bar.tsx
index b38f85b,741a7e0..6b84bde
--- a/src/views-components/main-content-bar/main-content-bar.tsx
+++ b/src/views-components/main-content-bar/main-content-bar.tsx
@@@ -6,11 -6,10 +6,10 @@@ import * as React from "react"
import { Toolbar, IconButton, Tooltip, Grid } from "@material-ui/core";
import { DetailsIcon } from "~/components/icon/icon";
import { Breadcrumbs } from "~/views-components/breadcrumbs/breadcrumbs";
- import { detailsPanelActions } from "~/store/details-panel/details-panel-action";
import { connect } from 'react-redux';
import { RootState } from '~/store/store';
- import { matchWorkflowRoute } from '~/routes/routes';
- import { matchVirtualMachineRoute } from '~/routes/routes';
-import { matchWorkflowRoute, matchSshKeysRoute, matchRepositoriesRoute } from '~/routes/routes';
++import { matchWorkflowRoute, matchSshKeysRoute, matchRepositoriesRoute, matchVirtualMachineRoute } from '~/routes/routes';
+ import { toggleDetailsPanel } from '~/store/details-panel/details-panel-action';
interface MainContentBarProps {
onDetailsPanelToggle: () => void;
@@@ -23,16 -22,22 +22,28 @@@ const isWorkflowPath = ({ router }: Roo
return !!match;
};
+const isVirtualMachinePath = ({ router }: RootState) => {
+ const pathname = router.location ? router.location.pathname : '';
+ const match = matchVirtualMachineRoute(pathname);
+ return !!match;
+};
+
+ const isRepositoriesPath = ({ router }: RootState) => {
+ const pathname = router.location ? router.location.pathname : '';
+ const match = matchRepositoriesRoute(pathname);
+ return !!match;
+ };
+
+ const isSshKeysPath = ({ router }: RootState) => {
+ const pathname = router.location ? router.location.pathname : '';
+ const match = matchSshKeysRoute(pathname);
+ return !!match;
+ };
+
export const MainContentBar = connect((state: RootState) => ({
- buttonVisible: !isWorkflowPath(state) && !isVirtualMachinePath(state)
- buttonVisible: !isWorkflowPath(state) && !isSshKeysPath(state) && !isRepositoriesPath(state)
++ buttonVisible: !isWorkflowPath(state) && !isSshKeysPath(state) && !isRepositoriesPath(state) && !isVirtualMachinePath(state)
}), {
- onDetailsPanelToggle: detailsPanelActions.TOGGLE_DETAILS_PANEL
+ onDetailsPanelToggle: toggleDetailsPanel
})((props: MainContentBarProps) =>
<Toolbar>
<Grid container>
diff --cc src/views/workbench/workbench.tsx
index 4ebc99b,ebdf57c..5ebf105
--- a/src/views/workbench/workbench.tsx
+++ b/src/views/workbench/workbench.tsx
@@@ -47,7 -48,13 +48,14 @@@ import { SshKeyPanel } from '~/views/ss
import { SharingDialog } from '~/views-components/sharing-dialog/sharing-dialog';
import { AdvancedTabDialog } from '~/views-components/advanced-tab-dialog/advanced-tab-dialog';
import { ProcessInputDialog } from '~/views-components/process-input-dialog/process-input-dialog';
+import { VirtualMachinePanel } from '~/views/virtual-machine-panel/virtual-machine-panel';
+ import { ProjectPropertiesDialog } from '~/views-components/project-properties-dialog/project-properties-dialog';
+ import { RepositoriesPanel } from '~/views/repositories-panel/repositories-panel';
+ import { RepositoriesSampleGitDialog } from '~/views-components/repositories-sample-git-dialog/repositories-sample-git-dialog';
+ import { RepositoryAttributesDialog } from '~/views-components/repository-attributes-dialog/repository-attributes-dialog';
+ import { CreateRepositoryDialog } from '~/views-components/dialog-forms/create-repository-dialog';
+ import { RemoveRepositoryDialog } from '~/views-components/repository-remove-dialog/repository-remove-dialog';
+ import { CreateSshKeyDialog } from '~/views-components/dialog-forms/create-ssh-key-dialog';
type CssRules = 'root' | 'container' | 'splitter' | 'asidePanel' | 'contentWrapper' | 'content';
@@@ -117,7 -124,8 +125,9 @@@ export const WorkbenchPanel
<Route path={Routes.RUN_PROCESS} component={RunProcessPanel} />
<Route path={Routes.WORKFLOWS} component={WorkflowPanel} />
<Route path={Routes.SEARCH_RESULTS} component={SearchResultsPanel} />
+ <Route path={Routes.VIRTUAL_MACHINES} component={VirtualMachinePanel} />
+ <Route path={Routes.REPOSITORIES} component={RepositoriesPanel} />
+ <Route path={Routes.SSH_KEYS} component={SshKeyPanel} />
</Switch>
</Grid>
</Grid>
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list