[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