[ARVADOS-WORKBENCH2] updated: 1.1.4-265-gf5e55e7

Git user git at public.curoverse.com
Tue Jul 10 09:20:32 EDT 2018


Summary of changes:
 src/components/attribute/attribute.tsx             |  28 ++-
 src/components/data-explorer/data-explorer.tsx     |   2 +
 src/components/data-table/data-table.tsx           |   6 +-
 src/components/empty-state/empty-state.tsx         |  46 +++++
 src/components/icon/icon.tsx                       |  50 +++++
 src/store/details-panel/details-panel-action.ts    |  44 ++++
 src/store/details-panel/details-panel-reducer.ts   |  26 +++
 src/store/navigation/navigation-action.ts          |   8 +-
 src/store/store.ts                                 |   5 +-
 .../data-explorer/data-explorer.tsx                |   7 +-
 .../details-panel/details-panel.tsx                | 222 +++++++++++++++------
 src/views/project-panel/project-panel.tsx          |   6 +-
 src/views/workbench/workbench.test.tsx             |   2 +-
 src/views/workbench/workbench.tsx                  |  29 ++-
 14 files changed, 391 insertions(+), 90 deletions(-)
 create mode 100644 src/components/empty-state/empty-state.tsx
 create mode 100644 src/components/icon/icon.tsx
 create mode 100644 src/store/details-panel/details-panel-action.ts
 create mode 100644 src/store/details-panel/details-panel-reducer.ts

       via  f5e55e7a71f2fc2390d392af752c61b4d3135cb6 (commit)
       via  808b1f59d53a83c9ad456931c7e38f127b4d8342 (commit)
       via  13eaae7bc025eaf4765acea06b596ca88eb6ff05 (commit)
       via  9004a33fe4598b83a8cce315cc28528b3d224a12 (commit)
       via  61cfe9a4e7c483f5b018dda8e2c46eb8ce3db26a (commit)
       via  f05e6a9cece7e3b118134136ee81bd7477ad10a0 (commit)
       via  0e3c4c507b9d3ec37b808b7a38cf111722659403 (commit)
       via  d8c787ee061c3953628362f5eb6c37123f5ca0f5 (commit)
       via  7622261116e685cad4af9cf6a4d1dd9c58cd1605 (commit)
       via  0b1b9f181db6c43a8bbc9b2b2d6ab48a51003b2d (commit)
       via  d5e09062859cc29dff60b16be912ff3743173b34 (commit)
       via  76215c43cae99e1ce7964dcfafae59b2134f72b3 (commit)
      from  2a3330b84782b9fac42f16a8644f442d06906b21 (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 f5e55e7a71f2fc2390d392af752c61b4d3135cb6
Merge: 2a3330b 808b1f5
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date:   Tue Jul 10 15:20:15 2018 +0200

    Resolve merge conflicts
    
    Feature #13694
    
    Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>

diff --cc src/components/data-explorer/data-explorer.tsx
index e90b1c2,9b099ac..9085b1f
--- a/src/components/data-explorer/data-explorer.tsx
+++ b/src/components/data-explorer/data-explorer.tsx
@@@ -21,8 -24,9 +21,9 @@@ interface DataExplorerProps<T> 
      page: number;
      onSearch: (value: string) => void;
      onRowClick: (item: T) => void;
+     onRowDoubleClick: (item: T) => void;
      onColumnToggle: (column: DataColumn<T>) => void;
 -    onContextAction: (action: ContextMenuAction, item: T) => void;
 +    onContextMenu: (event: React.MouseEvent<HTMLElement>, item: T) => void;
      onSortToggle: (column: DataColumn<T>) => void;
      onFiltersChange: (filters: DataTableFilterItem[], column: DataColumn<T>) => void;
      onChangePage: (page: number) => void;
@@@ -49,7 -68,8 +50,8 @@@ class DataExplorer<T extends DataItem> 
                  columns={[...this.props.columns, this.contextMenuColumn]}
                  items={this.props.items}
                  onRowClick={(_, item: T) => this.props.onRowClick(item)}
 +                onContextMenu={this.props.onContextMenu}
+                 onRowDoubleClick={(_, item: T) => this.props.onRowDoubleClick(item)}
 -                onRowContextMenu={this.openContextMenu}
                  onFiltersChange={this.props.onFiltersChange}
                  onSortToggle={this.props.onSortToggle} />
              <Toolbar>
diff --cc src/components/data-table/data-table.tsx
index 854b322,c657e11..8f4ffc6
--- a/src/components/data-table/data-table.tsx
+++ b/src/components/data-table/data-table.tsx
@@@ -15,7 -15,8 +15,8 @@@ export interface DataTableProps<T> 
      items: T[];
      columns: DataColumns<T>;
      onRowClick: (event: React.MouseEvent<HTMLTableRowElement>, item: T) => void;
 +    onContextMenu: (event: React.MouseEvent<HTMLElement>, item: T) => void;
+     onRowDoubleClick: (event: React.MouseEvent<HTMLTableRowElement>, item: T) => void;
 -    onRowContextMenu: (event: React.MouseEvent<HTMLTableRowElement>, item: T) => void;
      onSortToggle: (column: DataColumn<T>) => void;
      onFiltersChange: (filters: DataTableFilterItem[], column: DataColumn<T>) => void;
  }
@@@ -69,12 -69,13 +70,13 @@@ class DataTable<T extends DataItem> ext
      }
  
      renderBodyRow = (item: T, index: number) => {
-         const { onRowClick, onContextMenu } = this.props;
 -        const { onRowClick, onRowDoubleClick, onRowContextMenu } = this.props;
++        const { onRowClick, onRowDoubleClick, onContextMenu } = this.props;
          return <TableRow
              hover
              key={item.key}
              onClick={event => onRowClick && onRowClick(event, item)}
-             onContextMenu={this.handleRowContextMenu(item)}>
 -            onDoubleClick={event => onRowDoubleClick && onRowDoubleClick(event, item) }
 -            onContextMenu={event => onRowContextMenu && onRowContextMenu(event, item)}>
++            onContextMenu={this.handleRowContextMenu(item)}
++            onDoubleClick={event => onRowDoubleClick && onRowDoubleClick(event, item) }>
              {this.mapVisibleColumns((column, index) => (
                  <TableCell key={column.key || index}>
                      {column.render(item)}
diff --cc src/views-components/data-explorer/data-explorer.tsx
index 2864cef,5ff8c66..e2e145b
--- a/src/views-components/data-explorer/data-explorer.tsx
+++ b/src/views-components/data-explorer/data-explorer.tsx
@@@ -14,14 -14,16 +14,15 @@@ import { ContextMenuAction, ContextMenu
  
  interface Props {
      id: string;
 -    contextActions: ContextMenuActionGroup[];
      onRowClick: (item: any) => void;
 +    onContextMenu: (event: React.MouseEvent<HTMLElement>, item: any) => void;
+     onRowDoubleClick: (item: any) => void;
 -    onContextAction: (action: ContextMenuAction, item: any) => void;
  }
  
 -const mapStateToProps = (state: RootState, { id, contextActions }: Props) =>
 +const mapStateToProps = (state: RootState, { id }: Props) =>
      getDataExplorer(state.dataExplorer, id);
  
- const mapDispatchToProps = (dispatch: Dispatch, { id, onRowClick, onContextMenu }: Props) => ({
 -const mapDispatchToProps = (dispatch: Dispatch, { id, contextActions, onRowClick, onRowDoubleClick, onContextAction }: Props) => ({
++const mapDispatchToProps = (dispatch: Dispatch, { id, onRowClick, onRowDoubleClick, onContextMenu }: Props) => ({
      onSearch: (searchValue: string) => {
          dispatch(actions.SET_SEARCH_VALUE({ id, searchValue }));
      },
@@@ -46,9 -48,13 +47,11 @@@
          dispatch(actions.SET_ROWS_PER_PAGE({ id, rowsPerPage }));
      },
  
 -    contextActions,
 -
      onRowClick,
  
-     onContextMenu
+     onRowDoubleClick,
 -
 -    onContextAction
++    
++    onContextMenu,
  });
  
  export default connect(mapStateToProps, mapDispatchToProps)(DataExplorer);
diff --cc src/views/project-panel/project-panel.tsx
index 04681c3,0708b16..0b1be09
--- a/src/views/project-panel/project-panel.tsx
+++ b/src/views/project-panel/project-panel.tsx
@@@ -25,9 -26,8 +25,10 @@@ export interface ProjectPanelFilter ext
  type ProjectPanelProps = {
      currentItemId: string,
      onItemClick: (item: ProjectPanelItem) => void,
-     onItemRouteChange: (itemId: string) => void,
 +    onContextMenu: (event: React.MouseEvent<HTMLElement>, item: ProjectPanelItem) => void;
 +    onDialogOpen: (ownerUuid: string) => void;
+     onItemDoubleClick: (item: ProjectPanelItem) => void,
+     onItemRouteChange: (itemId: string) => void
  }
      & DispatchProp
      & WithStyles<CssRules>
@@@ -49,8 -48,10 +50,9 @@@ class ProjectPanel extends React.Compon
              </div>
              <DataExplorer
                  id={PROJECT_PANEL_ID}
 -                contextActions={contextMenuActions}
                  onRowClick={this.props.onItemClick}
-                 onContextMenu={this.props.onContextMenu} />;
+                 onRowDoubleClick={this.props.onItemDoubleClick}
 -                onContextAction={this.executeAction} />;
++                onContextMenu={this.props.onContextMenu} />
          </div>;
      }
  
diff --cc src/views/workbench/workbench.tsx
index 303d055,959025b..6ad4d24
--- a/src/views/workbench/workbench.tsx
+++ b/src/views/workbench/workbench.tsx
@@@ -27,11 -27,8 +27,13 @@@ import projectActions from "../../store
  import ProjectPanel from "../project-panel/project-panel";
  import DetailsPanel from '../../views-components/details-panel/details-panel';
  import { ArvadosTheme } from '../../common/custom-theme';
 +import ContextMenu, { ContextMenuAction } from '../../components/context-menu/context-menu';
 +import { mockAnchorFromMouseEvent } from '../../components/popover/helpers';
 +import CreateProjectDialog from "../../views-components/create-project-dialog/create-project-dialog";
 +import { authService } from '../../services/services';
 +
+ import detailsPanelActions, { loadDetails } from "../../store/details-panel/details-panel-action";
+ import { ResourceKind } from '../../models/kinds';
  
  const drawerWidth = 240;
  const appBarHeight = 100;
@@@ -106,16 -99,11 +108,16 @@@ interface WorkbenchState 
          helpMenu: NavMenuItem[],
          anonymousMenu: NavMenuItem[]
      };
-     isDetailsPanelOpened: boolean;
  }
  
+ 
  class Workbench extends React.Component<WorkbenchProps, WorkbenchState> {
      state = {
 +        contextMenu: {
 +            anchorEl: undefined,
 +            itemUuid: undefined
 +        },
 +        isCreationDialogOpen: false,
          anchorEl: null,
          searchText: "",
          breadcrumbs: [],
@@@ -156,10 -144,7 +158,10 @@@
          },
          onMenuItemClick: (menuItem: NavMenuItem) => menuItem.action(),
          onDetailsPanelToggle: () => {
-             this.setState(prev => ({ isDetailsPanelOpened: !prev.isDetailsPanelOpened }));
+             this.props.dispatch(detailsPanelActions.TOGGLE_DETAILS_PANEL());
 +        },
 +        onContextMenu: (event: React.MouseEvent<HTMLElement>, breadcrumb: NavBreadcrumb) => {
 +            this.openContextMenu(event, breadcrumb.itemId);
          }
      };
  
@@@ -233,8 -191,11 +235,11 @@@
                              <ProjectTree
                                  projects={this.props.projects}
                                  toggleOpen={itemId => this.props.dispatch<any>(setProjectItem(itemId, ItemMode.OPEN))}
-                                 toggleActive={itemId => this.props.dispatch<any>(setProjectItem(itemId, ItemMode.ACTIVE))}
-                                 onContextMenu={(event, item) => this.openContextMenu(event, item.data.uuid)} />
++                                onContextMenu={(event, item) => this.openContextMenu(event, item.data.uuid)}
+                                 toggleActive={itemId => {
+                                     this.props.dispatch<any>(setProjectItem(itemId, ItemMode.ACTIVE));
+                                     this.props.dispatch<any>(loadDetails(itemId, ResourceKind.Project));
 -                                }}
 -                            />
++                                }}/>
                          </SidePanel>
                      </Drawer>}
                  <main className={classes.contentWrapper}>
@@@ -243,55 -204,24 +248,59 @@@
                              <Route path="/projects/:id" render={this.renderProjectPanel} />
                          </Switch>
                      </div>
-                     <DetailsPanel
-                         isOpened={this.state.isDetailsPanelOpened}
-                         onCloseDrawer={this.mainAppBarActions.onDetailsPanelToggle} />
+                     <DetailsPanel />
                  </main>
 +                <ContextMenu
 +                    anchorEl={this.state.contextMenu.anchorEl}
 +                    actions={contextMenuActions}
 +                    onActionClick={this.openCreateDialog}
 +                    onClose={this.closeContextMenu} />
 +                <CreateProjectDialog />
              </div>
          );
      }
  
      renderProjectPanel = (props: RouteComponentProps<{ id: string }>) => <ProjectPanel
          onItemRouteChange={itemId => this.props.dispatch<any>(setProjectItem(itemId, ItemMode.ACTIVE))}
-         onItemClick={item => this.props.dispatch<any>(setProjectItem(item.uuid, ItemMode.ACTIVE))}
 +        onContextMenu={(event, item) => this.openContextMenu(event, item.uuid)}
 +        onDialogOpen={this.handleCreationDialogOpen}
+         onItemClick={item => {
+             this.props.dispatch<any>(loadDetails(item.uuid, item.kind as ResourceKind));
+         }}
+         onItemDoubleClick={item => {
+             this.props.dispatch<any>(setProjectItem(item.uuid, ItemMode.ACTIVE));
+             this.props.dispatch<any>(loadDetails(item.uuid, ResourceKind.Project));
+         }}
          {...props} />
 +}
  
 +const contextMenuActions = [[{
 +    icon: "fas fa-plus fa-fw",
 +    name: "New project",
 +    openCreateDialog: true
 +}, {
 +    icon: "fas fa-users fa-fw",
 +    name: "Share"
 +}, {
 +    icon: "fas fa-sign-out-alt fa-fw",
 +    name: "Move to"
 +}, {
 +    icon: "fas fa-star fa-fw",
 +    name: "Add to favourite"
 +}, {
 +    icon: "fas fa-edit fa-fw",
 +    name: "Rename"
 +}, {
 +    icon: "fas fa-copy fa-fw",
 +    name: "Make a copy"
 +}, {
 +    icon: "fas fa-download fa-fw",
 +    name: "Download"
 +}], [{
 +    icon: "fas fa-trash-alt fa-fw",
 +    name: "Remove"
  }
 +]];
  
  export default connect<WorkbenchDataProps>(
      (state: RootState) => ({

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list