[ARVADOS-WORKBENCH2] updated: 1.1.4-96-g4bbaf2a
Git user
git at public.curoverse.com
Mon Jun 18 07:03:43 EDT 2018
Summary of changes:
package.json | 30 +--
src/common/formatters.ts | 42 +++
src/components/data-explorer/data-explorer.tsx | 191 ++++++++++++++
src/components/data-explorer/data-item.ts | 12 +
.../{tree/tree.test.tsx => data-explorer/index.ts} | 5 +-
.../column-selector/column-selector.test.tsx | 79 ++++++
.../data-table/column-selector/column-selector.tsx | 56 ++++
src/components/data-table/data-column.ts | 16 ++
src/components/data-table/data-table.test.tsx | 107 ++++++++
src/components/data-table/data-table.tsx | 74 ++++++
src/components/data-table/index.ts | 9 +
src/components/popover/popover.test.tsx | 69 +++++
src/components/popover/popover.tsx | 69 +++++
src/components/project-tree/project-tree.test.tsx | 79 ++++--
src/components/project-tree/project-tree.tsx | 8 +-
src/components/tree/tree.test.tsx | 54 +++-
src/components/tree/tree.tsx | 70 +++--
src/models/project.ts | 1 +
src/services/project-service/project-service.ts | 5 +-
src/store/project/project-action.ts | 2 +-
src/store/project/project-reducer.test.ts | 35 +--
src/store/project/project-reducer.ts | 19 +-
src/views/data-explorer/data-explorer.tsx | 62 +++++
src/views/workbench/workbench.tsx | 41 ++-
yarn.lock | 284 +++++++++++----------
25 files changed, 1172 insertions(+), 247 deletions(-)
create mode 100644 src/common/formatters.ts
create mode 100644 src/components/data-explorer/data-explorer.tsx
create mode 100644 src/components/data-explorer/data-item.ts
copy src/components/{tree/tree.test.tsx => data-explorer/index.ts} (53%)
create mode 100644 src/components/data-table/column-selector/column-selector.test.tsx
create mode 100644 src/components/data-table/column-selector/column-selector.tsx
create mode 100644 src/components/data-table/data-column.ts
create mode 100644 src/components/data-table/data-table.test.tsx
create mode 100644 src/components/data-table/data-table.tsx
create mode 100644 src/components/data-table/index.ts
create mode 100644 src/components/popover/popover.test.tsx
create mode 100644 src/components/popover/popover.tsx
create mode 100644 src/views/data-explorer/data-explorer.tsx
via 4bbaf2a0cede89ea50d63d210c6631adc1970620 (commit)
via 0dbd184178c1016a19828fa80df9f91dec907993 (commit)
via 430515acafe8731fdbeea5f9caae58991683ad94 (commit)
via fbd2012fa56f6de44dfc4008d70e5a21cfcaf459 (commit)
via e70279bebea915b5ddbef11357ab7a36201d6d85 (commit)
via 750a9abc14ba1e17784a386399237ebf35fb279b (commit)
via c16ef38920e9d011215a519bc58624a614717cd6 (commit)
via a78b68335f520c4a7d50362811369bf83a921296 (commit)
via 250d01c990a4f47bfdaa31ef9d3d7b79e602cb2c (commit)
via 0c793af552b746f9a9d3fef8005f6e23a3e1803e (commit)
via 9999a9db9fede0e1971dc792389982b428a1bb19 (commit)
via 7cea5abf194fe6709ec25dbbd819e4c4be2faba0 (commit)
via e806c7001a4be0bb4b5a27995d89bd560d5fe8db (commit)
via a0bace185804d0d263249d65af442bed2890ca7b (commit)
via ce3be10391676729b35aafcb8d525daf5c74ceea (commit)
via e25469d58a038391fa16184da4f7078a0eae805a (commit)
via 9f2313889301e05c721d58a8a9c3a667da990495 (commit)
via 7b5dbd45ca461a8c58cfb148980b1ffe3f6d801e (commit)
via 60503a22e8681732571bbfb9840edb37908a62b0 (commit)
via be414d2f98cac5fb96cf16e78943e1ecb8945e0f (commit)
via 9b9176157227d347493ad2a7572dbca57ed9308b (commit)
via e5e907eac3162ddf7e76a431f66b8c26e80b0acf (commit)
via dbb23fe7623260b495ad64f0601feefdd103d376 (commit)
via 799ab572df62562e8634e0e76683c3973c8337c4 (commit)
via 6d53fc76c84291e57f33d55cb1f211bfb63b9f19 (commit)
via 5361dea818f3f5c2b71ba4ce7ecb97e601c0403a (commit)
via a3620f307448f7854be04a12bce741385cc27ddd (commit)
via 6471df421940db8b44adc93171a27659f7e3bdf1 (commit)
via d183e99c2202a1bfce258af2fe96a6cb1d08cad7 (commit)
via 7adbd161925c71840bf4ddb799b87f1734e5af7e (commit)
via 7ba0401cff3906814ba976ea36adab9b3d5c3922 (commit)
via 7f95b6ead934a15e849c7650a08475633a8bfb09 (commit)
via 973fce01f05a50d4aa0169a88281f20476b305b2 (commit)
from fbe620454ddcba2c96b7a0f6049e05e3d12e5422 (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 4bbaf2a0cede89ea50d63d210c6631adc1970620
Merge: fbe6204 0dbd184
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date: Mon Jun 18 13:03:22 2018 +0200
Merge branch 'master'
Feature #13628
Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
diff --cc src/store/project/project-reducer.test.ts
index 3e82883,cfb73fa..311ec9d
--- a/src/store/project/project-reducer.test.ts
+++ b/src/store/project/project-reducer.test.ts
@@@ -2,9 -2,8 +2,9 @@@
//
// SPDX-License-Identifier: AGPL-3.0
-import projectsReducer from "./project-reducer";
+import projectsReducer, { findTreeBranch } from "./project-reducer";
import actions from "./project-action";
- import { TreeItem } from "../../components/tree/tree";
++import { TreeItem, TreeItemStatus } from "../../components/tree/tree";
describe('project-reducer', () => {
it('should add new project to the list', () => {
@@@ -34,69 -35,22 +36,72 @@@
};
const projects = [project, project];
- const state = projectsReducer(initialState, actions.PROJECTS_SUCCESS({projects, parentItemId: undefined}));
+ const state = projectsReducer(initialState, actions.PROJECTS_SUCCESS({ projects, parentItemId: undefined }));
expect(state).toEqual([{
- active: false,
- open: false,
- id: "test123",
- items: [],
- data: project
- }, {
- active: false,
- open: false,
- id: "test123",
- items: [],
- data: project
- }
+ active: false,
+ open: false,
+ id: "test123",
+ items: [],
+ data: project,
+ status: 0
+ }, {
+ active: false,
+ open: false,
+ id: "test123",
+ items: [],
+ data: project,
+ status: 0
+ }
]);
});
});
+
+describe("findTreeBranch", () => {
+
+ const createTreeItem = (id: string, items?: Array<TreeItem<string>>): TreeItem<string> => ({
+ id,
+ items,
+ active: false,
+ data: "",
+ open: false,
++ status: TreeItemStatus.Initial
+ });
+
+ it("should return an array that matches path to the given item", () => {
+ const tree: Array<TreeItem<string>> = [
+ createTreeItem("1", [
+ createTreeItem("1.1", [
+ createTreeItem("1.1.1"),
+ createTreeItem("1.1.2")
+ ])
+ ]),
+ createTreeItem("2", [
+ createTreeItem("2.1", [
+ createTreeItem("2.1.1"),
+ createTreeItem("2.1.2")
+ ])
+ ])
+ ];
+ const branch = findTreeBranch(tree, "2.1.1");
+ expect(branch.map(item => item.id)).toEqual(["2", "2.1", "2.1.1"]);
+ });
+
+ it("should return empty array if item is not found", () => {
+ const tree: Array<TreeItem<string>> = [
+ createTreeItem("1", [
+ createTreeItem("1.1", [
+ createTreeItem("1.1.1"),
+ createTreeItem("1.1.2")
+ ])
+ ]),
+ createTreeItem("2", [
+ createTreeItem("2.1", [
+ createTreeItem("2.1.1"),
+ createTreeItem("2.1.2")
+ ])
+ ])
+ ];
+ expect(findTreeBranch(tree, "3")).toHaveLength(0);
+ });
+
+});
diff --cc src/views/workbench/workbench.tsx
index cb69186,90df260..0aecc0d
--- a/src/views/workbench/workbench.tsx
+++ b/src/views/workbench/workbench.tsx
@@@ -27,10 -16,10 +16,11 @@@ import { Breadcrumb } from '../../compo
import { push } from 'react-router-redux';
import projectActions from "../../store/project/project-action";
import ProjectTree from '../../components/project-tree/project-tree';
- import { TreeItem } from "../../components/tree/tree";
+ import { TreeItem, TreeItemStatus } from "../../components/tree/tree";
import { Project } from "../../models/project";
import { projectService } from '../../services/services';
+import { findTreeBranch } from '../../store/project/project-reducer';
+ import DataExplorer from '../data-explorer/data-explorer';
const drawerWidth = 240;
@@@ -77,7 -66,7 +67,8 @@@ interface WorkbenchActionProps
type WorkbenchProps = WorkbenchDataProps & WorkbenchActionProps & DispatchProp & WithStyles<CssRules>;
interface NavBreadcrumb extends Breadcrumb {
- path: string;
+ itemId: string;
++ status: TreeItemStatus;
}
interface NavMenuItem extends MainAppBarMenuItem {
@@@ -128,9 -125,7 +119,9 @@@ class Workbench extends React.Component
mainAppBarActions: MainAppBarActionProps = {
- onBreadcrumbClick: ({ itemId }: NavBreadcrumb) => {
- this.toggleProjectTreeItem(itemId);
- onBreadcrumbClick: (breadcrumb: NavBreadcrumb) => this.props.dispatch(push(breadcrumb.path)),
++ onBreadcrumbClick: ({ itemId, status }: NavBreadcrumb) => {
++ this.toggleProjectTreeItem(itemId, status);
+ },
onSearch: searchText => {
this.setState({ searchText });
this.props.dispatch(push(`/search?q=${searchText}`));
@@@ -138,17 -133,17 +129,25 @@@
onMenuItemClick: (menuItem: NavMenuItem) => menuItem.action()
};
- toggleProjectTreeItem = (itemId: string) => {
+ toggleProjectTreeItem = (itemId: string, status: TreeItemStatus) => {
+ if (status === TreeItemStatus.Loaded) {
+ this.openProjectItem(itemId);
+ } else {
+ this.props.dispatch<any>(projectService.getProjectList(itemId)).then(() => this.openProjectItem(itemId));
+ }
+ }
+
+ openProjectItem = (itemId: string) => {
+ const branch = findTreeBranch(this.props.projects, itemId);
+ this.setState({
+ breadcrumbs: branch.map(item => ({
+ label: item.data.name,
- itemId: item.data.uuid
++ itemId: item.data.uuid,
++ status: item.status
+ }))
+ });
- this.props.dispatch<any>(projectService.getProjectList(itemId)).then(() => {
- this.props.dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM(itemId));
- });
+ this.props.dispatch(projectActions.TOGGLE_PROJECT_TREE_ITEM(itemId));
+ this.props.dispatch(push(`/project/${itemId}`));
}
render() {
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list