[ARVADOS-WORKBENCH2] updated: 1.1.4-589-g876e5e2
Git user
git at public.curoverse.com
Mon Aug 13 13:48:48 EDT 2018
Summary of changes:
.../data-explorer/data-explorer.test.tsx | 13 ++-
src/components/data-explorer/data-explorer.tsx | 112 ++++++++++++++-------
src/components/default-view/default-view.tsx | 46 +++++++++
.../details-attribute/details-attribute.tsx | 21 ++--
src/components/side-panel/side-panel.tsx | 2 +-
src/store/navigation/navigation-action.ts | 10 +-
src/store/project/project-action.ts | 25 ++---
src/store/side-panel/side-panel-reducer.ts | 11 +-
.../action-sets/root-project-action-set.ts | 27 +++--
.../details-panel/empty-details.tsx | 40 +-------
src/views/favorite-panel/favorite-panel.tsx | 5 +-
src/views/project-panel/project-panel.tsx | 14 ++-
src/views/workbench/workbench.test.tsx | 1 +
src/views/workbench/workbench.tsx | 9 +-
14 files changed, 216 insertions(+), 120 deletions(-)
create mode 100644 src/components/default-view/default-view.tsx
via 876e5e2f31a218255845977489ea70aacc0211cd (commit)
via df041a7ff7f8515adc49b2e2ddd3fc6663b345af (commit)
via eb880179bed8f07348faeccb79d34c9726d206e8 (commit)
via 3626497d024cddee09990afd6e08a24debaf5c7b (commit)
via 732294bc8aeafde5e85a4437cbd36b0d2648b04e (commit)
via 786d7c2b99da82c92d0ab5bc242f75513a46b4b5 (commit)
via 0eea74dd422f762226b5b854274a8c18b9c24a1b (commit)
via c3cbb4ad3272bbd8f8b282a3db00a86c674e4117 (commit)
via 08f35d9b26a06b70da6e54533782276617c5bed1 (commit)
from dd89200ad6fdbfa337fdbab5f54def8712c6746c (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 876e5e2f31a218255845977489ea70aacc0211cd
Merge: dd89200 df041a7
Author: Daniel Kos <daniel.kos at contractors.roche.com>
Date: Mon Aug 13 19:48:41 2018 +0200
refs #master Merge branch 'origin/master' into 14007-ts-paths
# Conflicts:
# src/components/data-explorer/data-explorer.test.tsx
# src/components/data-explorer/data-explorer.tsx
# src/store/navigation/navigation-action.ts
# src/views-components/context-menu/action-sets/root-project-action-set.ts
# src/views-components/details-panel/empty-details.tsx
# src/views/favorite-panel/favorite-panel.tsx
# src/views/project-panel/project-panel.tsx
# src/views/workbench/workbench.test.tsx
# src/views/workbench/workbench.tsx
Arvados-DCO-1.1-Signed-off-by: Daniel Kos <daniel.kos at contractors.roche.com>
diff --cc src/components/data-explorer/data-explorer.tsx
index eaa3464,7acc1a8..2811bd4
--- a/src/components/data-explorer/data-explorer.tsx
+++ b/src/components/data-explorer/data-explorer.tsx
@@@ -10,9 -10,11 +10,11 @@@ import { DataTable, DataColumns } from
import { DataColumn } from "../data-table/data-column";
import { DataTableFilterItem } from '../data-table-filters/data-table-filters';
import { SearchInput } from '../search-input/search-input';
-import { ArvadosTheme } from "../../common/custom-theme";
+import { ArvadosTheme } from "~/common/custom-theme";
+ import { DefaultView } from '../default-view/default-view';
+ import { IconType } from '../icon/icon';
- type CssRules = "searchBox" | "toolbar";
+ type CssRules = 'searchBox' | "toolbar" | 'defaultRoot' | 'defaultMessage' | 'defaultIcon';
const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
searchBox: {
diff --cc src/store/navigation/navigation-action.ts
index e50bce0,dc68021..79d2447
--- a/src/store/navigation/navigation-action.ts
+++ b/src/store/navigation/navigation-action.ts
@@@ -60,6 -59,14 +59,13 @@@ export const setProjectItem = (itemId:
dispatch(projectPanelActions.RESET_PAGINATION());
dispatch(projectPanelActions.REQUEST_ITEMS());
}));
-
+ } else {
+ const uuid = services.authService.getUuid();
+ if (itemId === uuid) {
+ dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM_ACTIVE(uuid));
+ dispatch(projectPanelActions.RESET_PAGINATION());
+ dispatch(projectPanelActions.REQUEST_ITEMS());
+ }
}
};
diff --cc src/views-components/context-menu/action-sets/root-project-action-set.ts
index 556ba5d,c88b1b4..fb380fc
--- a/src/views-components/context-menu/action-sets/root-project-action-set.ts
+++ b/src/views-components/context-menu/action-sets/root-project-action-set.ts
@@@ -5,15 -5,27 +5,28 @@@
import { reset } from "redux-form";
import { ContextMenuActionSet } from "../context-menu-action-set";
-import { projectActions } from "../../../store/project/project-action";
+import { projectActions } from "~/store/project/project-action";
+import { NewProjectIcon } from "~/components/icon/icon";
+ import { collectionCreateActions } from "../../../store/collections/creator/collection-creator-action";
import { PROJECT_CREATE_DIALOG } from "../../dialog-create/dialog-project-create";
+ import { COLLECTION_CREATE_DIALOG } from "../../dialog-create/dialog-collection-create";
+ import { NewProjectIcon, CollectionIcon } from "../../../components/icon/icon";
- export const rootProjectActionSet: ContextMenuActionSet = [[{
- icon: NewProjectIcon,
- name: "New project",
- execute: (dispatch, resource) => {
- dispatch(reset(PROJECT_CREATE_DIALOG));
- dispatch(projectActions.OPEN_PROJECT_CREATOR({ ownerUuid: resource.uuid }));
+ export const rootProjectActionSet: ContextMenuActionSet = [[
+ {
+ icon: NewProjectIcon,
+ name: "New project",
+ execute: (dispatch, resource) => {
+ dispatch(reset(PROJECT_CREATE_DIALOG));
+ dispatch(projectActions.OPEN_PROJECT_CREATOR({ ownerUuid: resource.uuid }));
+ }
+ },
+ {
+ icon: CollectionIcon,
+ name: "New Collection",
+ execute: (dispatch, resource) => {
+ dispatch(reset(COLLECTION_CREATE_DIALOG));
+ dispatch(collectionCreateActions.OPEN_COLLECTION_CREATOR({ ownerUuid: resource.uuid }));
+ }
}
- }]];
+ ]];
diff --cc src/views-components/details-panel/empty-details.tsx
index ccaa561,47cb403..76778d7
--- a/src/views-components/details-panel/empty-details.tsx
+++ b/src/views-components/details-panel/empty-details.tsx
@@@ -3,44 -3,10 +3,10 @@@
// SPDX-License-Identifier: AGPL-3.0
import * as React from 'react';
- import { DefaultIcon, IconType, ProjectsIcon } from '~/components/icon/icon';
-import { DefaultIcon, ProjectsIcon } from '../../components/icon/icon';
-import { EmptyResource } from '../../models/empty';
++import { DefaultIcon, ProjectsIcon } from '~/components/icon/icon';
+import { EmptyResource } from '~/models/empty';
import { DetailsData } from "./details-data";
- import Typography from "@material-ui/core/Typography";
- import { StyleRulesCallback, WithStyles, withStyles } from "@material-ui/core/styles";
- import { ArvadosTheme } from "~/common/custom-theme";
- import Icon from "@material-ui/core/Icon/Icon";
-
- type CssRules = 'container' | 'icon';
-
- const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
- container: {
- textAlign: 'center'
- },
- icon: {
- color: theme.palette.grey["500"],
- fontSize: '72px'
- }
- });
-
- export interface EmptyStateDataProps {
- message: string;
- icon: IconType;
- details?: string;
- children?: React.ReactNode;
- }
-
- type EmptyStateProps = EmptyStateDataProps & WithStyles<CssRules>;
-
- const EmptyState = withStyles(styles)(
- ({ classes, details, message, children, icon: Icon }: EmptyStateProps) =>
- <Typography className={classes.container} component="div">
- <Icon className={classes.icon}/>
- <Typography variant="body1" gutterBottom>{message}</Typography>
- {details && <Typography gutterBottom>{details}</Typography>}
- {children && <Typography gutterBottom>{children}</Typography>}
- </Typography>
- );
-import { DefaultView } from '../../components/default-view/default-view';
++import { DefaultView } from '~/components/default-view/default-view';
export class EmptyDetails extends DetailsData<EmptyResource> {
getIcon(className?: string) {
diff --cc src/views/favorite-panel/favorite-panel.tsx
index 899ef3a,a48395d..618f0ab
--- a/src/views/favorite-panel/favorite-panel.tsx
+++ b/src/views/favorite-panel/favorite-panel.tsx
@@@ -5,19 -5,20 +5,20 @@@
import * as React from 'react';
import { FavoritePanelItem } from './favorite-panel-item';
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core';
-import { DataExplorer } from "../../views-components/data-explorer/data-explorer";
+import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
import { DispatchProp, connect } from 'react-redux';
-import { DataColumns } from '../../components/data-table/data-table';
+import { DataColumns } from '~/components/data-table/data-table';
import { RouteComponentProps } from 'react-router';
-import { RootState } from '../../store/store';
-import { DataTableFilterItem } from '../../components/data-table-filters/data-table-filters';
-import { ContainerRequestState } from '../../models/container-request';
-import { SortDirection } from '../../components/data-table/data-column';
-import { ResourceKind } from '../../models/resource';
-import { resourceLabel } from '../../common/labels';
-import { ArvadosTheme } from '../../common/custom-theme';
-import { renderName, renderStatus, renderType, renderOwner, renderFileSize, renderDate } from '../../views-components/data-explorer/renderers';
-import { FAVORITE_PANEL_ID } from "../../store/favorite-panel/favorite-panel-action";
-import { FavoriteIcon } from '../../components/icon/icon';
+import { RootState } from '~/store/store';
+import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters';
+import { ContainerRequestState } from '~/models/container-request';
+import { SortDirection } from '~/components/data-table/data-column';
+import { ResourceKind } from '~/models/resource';
+import { resourceLabel } from '~/common/labels';
+import { ArvadosTheme } from '~/common/custom-theme';
+import { renderName, renderStatus, renderType, renderOwner, renderFileSize, renderDate } from '~/views-components/data-explorer/renderers';
+import { FAVORITE_PANEL_ID } from "~/store/favorite-panel/favorite-panel-action";
++import { FavoriteIcon } from '~/components/icon/icon';
type CssRules = "toolbar" | "button";
diff --cc src/views/project-panel/project-panel.tsx
index fccd93e,cf4aca5..e9179a1
--- a/src/views/project-panel/project-panel.tsx
+++ b/src/views/project-panel/project-panel.tsx
@@@ -5,23 -5,29 +5,29 @@@
import * as React from 'react';
import { ProjectPanelItem } from './project-panel-item';
import { Button, StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core';
-import { DataExplorer } from "../../views-components/data-explorer/data-explorer";
+import { DataExplorer } from "~/views-components/data-explorer/data-explorer";
import { DispatchProp, connect } from 'react-redux';
-import { DataColumns } from '../../components/data-table/data-table';
+import { DataColumns } from '~/components/data-table/data-table';
import { RouteComponentProps } from 'react-router';
-import { RootState } from '../../store/store';
-import { DataTableFilterItem } from '../../components/data-table-filters/data-table-filters';
-import { ContainerRequestState } from '../../models/container-request';
-import { SortDirection } from '../../components/data-table/data-column';
-import { ResourceKind } from '../../models/resource';
-import { resourceLabel } from '../../common/labels';
-import { ArvadosTheme } from '../../common/custom-theme';
-import { renderName, renderStatus, renderType, renderOwner, renderFileSize, renderDate } from '../../views-components/data-explorer/renderers';
-import { restoreBranch } from '../../store/navigation/navigation-action';
-import { ProjectIcon } from '../../components/icon/icon';
+import { RootState } from '~/store/store';
+import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters';
+import { ContainerRequestState } from '~/models/container-request';
+import { SortDirection } from '~/components/data-table/data-column';
+import { ResourceKind } from '~/models/resource';
+import { resourceLabel } from '~/common/labels';
+import { ArvadosTheme } from '~/common/custom-theme';
+import { renderName, renderStatus, renderType, renderOwner, renderFileSize, renderDate } from '~/views-components/data-explorer/renderers';
+import { restoreBranch } from '~/store/navigation/navigation-action';
++import { ProjectIcon } from '~/components/icon/icon';
- type CssRules = "toolbar" | "button";
+ type CssRules = 'root' | "toolbar" | "button";
const styles: StyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
+ root: {
+ position: 'relative',
+ width: '100%',
+ height: '100%'
+ },
toolbar: {
paddingBottom: theme.spacing.unit * 3,
textAlign: "right"
diff --cc src/views/workbench/workbench.test.tsx
index 3587283,588b6d9..d03e117
--- a/src/views/workbench/workbench.test.tsx
+++ b/src/views/workbench/workbench.test.tsx
@@@ -17,8 -19,10 +17,9 @@@ const history = createBrowserHistory()
it('renders without crashing', () => {
const div = document.createElement('div');
- const store = configureStore(createBrowserHistory(), createServices("/arvados/v1"));
+ const services = createServices("/arvados/v1");
++ services.authService.getUuid = jest.fn().mockReturnValueOnce('test');
+ const store = configureStore(createBrowserHistory(), services);
ReactDOM.render(
<MuiThemeProvider theme={CustomTheme}>
<Provider store={store}>
diff --cc src/views/workbench/workbench.tsx
index a7f14aa,356a670..a0be372
--- a/src/views/workbench/workbench.tsx
+++ b/src/views/workbench/workbench.tsx
@@@ -6,49 -6,49 +6,49 @@@ import * as React from 'react'
import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles';
import Drawer from '@material-ui/core/Drawer';
import { connect, DispatchProp } from "react-redux";
- import { Route, RouteComponentProps, Switch } from "react-router";
-import { Route, Switch, RouteComponentProps, Redirect } from "react-router";
-import { login, logout } from "../../store/auth/auth-action";
-import { User } from "../../models/user";
-import { RootState } from "../../store/store";
-import { MainAppBar, MainAppBarActionProps, MainAppBarMenuItem } from '../../views-components/main-app-bar/main-app-bar';
-import { Breadcrumb } from '../../components/breadcrumbs/breadcrumbs';
++import { Route, RouteComponentProps, Switch, Redirect } from "react-router";
+import { login, logout } from "~/store/auth/auth-action";
+import { User } from "~/models/user";
+import { RootState } from "~/store/store";
+import { MainAppBar, MainAppBarActionProps, MainAppBarMenuItem } from '~/views-components/main-app-bar/main-app-bar';
+import { Breadcrumb } from '~/components/breadcrumbs/breadcrumbs';
import { push } from 'react-router-redux';
import { reset } from 'redux-form';
-import { ProjectTree } from '../../views-components/project-tree/project-tree';
-import { TreeItem } from "../../components/tree/tree";
-import { getTreePath } from '../../store/project/project-reducer';
-import { sidePanelActions } from '../../store/side-panel/side-panel-action';
-import { SidePanel, SidePanelItem } from '../../components/side-panel/side-panel';
-import { ItemMode, setProjectItem } from "../../store/navigation/navigation-action";
-import { projectActions } from "../../store/project/project-action";
-import { collectionCreateActions } from '../../store/collections/creator/collection-creator-action';
-import { ProjectPanel } from "../project-panel/project-panel";
-import { DetailsPanel } from '../../views-components/details-panel/details-panel';
-import { ArvadosTheme } from '../../common/custom-theme';
-import { CreateProjectDialog } from "../../views-components/create-project-dialog/create-project-dialog";
+import { ProjectTree } from '~/views-components/project-tree/project-tree';
+import { TreeItem } from "~/components/tree/tree";
+import { getTreePath } from '~/store/project/project-reducer';
+import { sidePanelActions } from '~/store/side-panel/side-panel-action';
+import { SidePanel, SidePanelItem } from '~/components/side-panel/side-panel';
+import { ItemMode, setProjectItem } from "~/store/navigation/navigation-action";
+import { projectActions } from "~/store/project/project-action";
+import { collectionCreateActions } from '~/store/collections/creator/collection-creator-action';
+import { ProjectPanel } from "~/views/project-panel/project-panel";
+import { DetailsPanel } from '~/views-components/details-panel/details-panel';
+import { ArvadosTheme } from '~/common/custom-theme';
+import { CreateProjectDialog } from "~/views-components/create-project-dialog/create-project-dialog";
-import { detailsPanelActions, loadDetails } from "../../store/details-panel/details-panel-action";
-import { contextMenuActions } from "../../store/context-menu/context-menu-actions";
-import { SidePanelIdentifiers } from '../../store/side-panel/side-panel-reducer';
-import { ProjectResource } from '../../models/project';
-import { ResourceKind } from '../../models/resource';
-import { ContextMenu, ContextMenuKind } from "../../views-components/context-menu/context-menu";
+import { detailsPanelActions, loadDetails } from "~/store/details-panel/details-panel-action";
+import { contextMenuActions } from "~/store/context-menu/context-menu-actions";
+import { SidePanelIdentifiers } from '~/store/side-panel/side-panel-reducer';
+import { ProjectResource } from '~/models/project';
+import { ResourceKind } from '~/models/resource';
+import { ContextMenu, ContextMenuKind } from "~/views-components/context-menu/context-menu";
import { FavoritePanel } from "../favorite-panel/favorite-panel";
-import { CurrentTokenDialog } from '../../views-components/current-token-dialog/current-token-dialog';
-import { Snackbar } from '../../views-components/snackbar/snackbar';
-import { favoritePanelActions } from '../../store/favorite-panel/favorite-panel-action';
-import { CreateCollectionDialog } from '../../views-components/create-collection-dialog/create-collection-dialog';
+import { CurrentTokenDialog } from '~/views-components/current-token-dialog/current-token-dialog';
+import { Snackbar } from '~/views-components/snackbar/snackbar';
+import { favoritePanelActions } from '~/store/favorite-panel/favorite-panel-action';
+import { CreateCollectionDialog } from '~/views-components/create-collection-dialog/create-collection-dialog';
import { CollectionPanel } from '../collection-panel/collection-panel';
-import { loadCollection, loadCollectionTags } from '../../store/collection-panel/collection-panel-action';
-import { getCollectionUrl } from '../../models/collection';
-import { UpdateCollectionDialog } from '../../views-components/update-collection-dialog/update-collection-dialog.';
-import { AuthService } from "../../services/auth-service/auth-service";
-import { RenameFileDialog } from '../../views-components/rename-file-dialog/rename-file-dialog';
-import { FileRemoveDialog } from '../../views-components/file-remove-dialog/file-remove-dialog';
-import { MultipleFilesRemoveDialog } from '../../views-components/file-remove-dialog/multiple-files-remove-dialog';
-import { DialogCollectionCreateWithSelectedFile } from '../../views-components/create-collection-dialog-with-selected/create-collection-dialog-with-selected';
-import { COLLECTION_CREATE_DIALOG } from '../../views-components/dialog-create/dialog-collection-create';
-import { PROJECT_CREATE_DIALOG } from '../../views-components/dialog-create/dialog-project-create';
+import { loadCollection, loadCollectionTags } from '~/store/collection-panel/collection-panel-action';
+import { getCollectionUrl } from '~/models/collection';
+import { UpdateCollectionDialog } from '~/views-components/update-collection-dialog/update-collection-dialog.';
+import { AuthService } from "~/services/auth-service/auth-service";
+import { RenameFileDialog } from '~/views-components/rename-file-dialog/rename-file-dialog';
+import { FileRemoveDialog } from '~/views-components/file-remove-dialog/file-remove-dialog';
+import { MultipleFilesRemoveDialog } from '~/views-components/file-remove-dialog/multiple-files-remove-dialog';
+import { DialogCollectionCreateWithSelectedFile } from '~/views-components/create-collection-dialog-with-selected/create-collection-dialog-with-selected';
+import { COLLECTION_CREATE_DIALOG } from '~/views-components/dialog-create/dialog-collection-create';
+import { PROJECT_CREATE_DIALOG } from '~/views-components/dialog-create/dialog-project-create';
const DRAWER_WITDH = 240;
const APP_BAR_HEIGHT = 100;
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list