[ARVADOS-WORKBENCH2] updated: 1.1.4-168-g81db818

Git user git at public.curoverse.com
Sat Jun 30 08:20:00 EDT 2018


Summary of changes:
 src/views/project-panel/project-panel.tsx | 17 +++--------------
 src/views/workbench/workbench.tsx         | 20 +++++++++++++-------
 2 files changed, 16 insertions(+), 21 deletions(-)

       via  81db818eb5a3404d0b98e6afbbbccc1ae064fd48 (commit)
      from  2d37867eccb0a76df1a285e7b7e32bbb13db99a1 (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 81db818eb5a3404d0b98e6afbbbccc1ae064fd48
Author: Michal Klobukowski <michal.klobukowski at contractors.roche.com>
Date:   Sat Jun 30 14:19:36 2018 +0200

    Improve handling on of project url changes
    
    Feature #13678
    
    Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski at contractors.roche.com>

diff --git a/src/views/project-panel/project-panel.tsx b/src/views/project-panel/project-panel.tsx
index 0cd74ff..dd61e58 100644
--- a/src/views/project-panel/project-panel.tsx
+++ b/src/views/project-panel/project-panel.tsx
@@ -19,10 +19,9 @@ import { RouteComponentProps } from 'react-router';
 
 export const PROJECT_PANEL_ID = "projectPanel";
 
-type ProjectPanelProps = { onItemOpen: (itemId: string) => void }
+type ProjectPanelProps = { onItemClick: (item: ProjectPanelItem) => void }
     & DispatchProp
-    & WithStyles<CssRules>
-    & RouteComponentProps<{ id: string }>;
+    & WithStyles<CssRules>;
 class ProjectPanel extends React.Component<ProjectPanelProps> {
     render() {
         return <div>
@@ -42,7 +41,7 @@ class ProjectPanel extends React.Component<ProjectPanelProps> {
                 contextActions={contextMenuActions}
                 onColumnToggle={this.toggleColumn}
                 onFiltersChange={this.changeFilters}
-                onRowClick={this.openProject}
+                onRowClick={this.props.onItemClick}
                 onSortToggle={this.toggleSort}
                 onSearch={this.search}
                 onContextAction={this.executeAction}
@@ -55,12 +54,6 @@ class ProjectPanel extends React.Component<ProjectPanelProps> {
         this.props.dispatch(actions.SET_COLUMNS({ id: PROJECT_PANEL_ID, columns }));
     }
 
-    componentWillReceiveProps(nextProps: ProjectPanelProps) {
-        if (this.props.match.params.id !== nextProps.match.params.id) {
-            this.props.onItemOpen(nextProps.match.params.id);
-        }
-    }
-
     toggleColumn = (toggledColumn: DataColumn<ProjectPanelItem>) => {
         this.props.dispatch(actions.TOGGLE_COLUMN({ id: PROJECT_PANEL_ID, columnName: toggledColumn.name }));
     }
@@ -88,10 +81,6 @@ class ProjectPanel extends React.Component<ProjectPanelProps> {
     changeRowsPerPage = (rowsPerPage: number) => {
         this.props.dispatch(actions.SET_ROWS_PER_PAGE({ id: PROJECT_PANEL_ID, rowsPerPage }));
     }
-
-    openProject = (item: ProjectPanelItem) => {
-        this.props.onItemOpen(item.uuid);
-    }
 }
 
 type CssRules = "toolbar" | "button";
diff --git a/src/views/workbench/workbench.tsx b/src/views/workbench/workbench.tsx
index c095868..48cab3c 100644
--- a/src/views/workbench/workbench.tsx
+++ b/src/views/workbench/workbench.tsx
@@ -157,7 +157,7 @@ class Workbench extends React.Component<WorkbenchProps, WorkbenchState> {
             label: item.data.name,
             itemId: item.data.uuid,
             status: item.status
-        }));  
+        }));
 
         const { classes, user } = this.props;
         return (
@@ -206,12 +206,18 @@ class Workbench extends React.Component<WorkbenchProps, WorkbenchState> {
         );
     }
 
-    renderProjectPanel = (props: RouteComponentProps<any>) =>
-        <ProjectPanel
-            onItemOpen={itemId => this.props.dispatch<any>(
-                setProjectItem(itemId, ItemMode.ACTIVE)
-            )}
-            {...props} />
+    renderProjectPanel = (props: RouteComponentProps<{ id: string }>) => {
+        if (props.match.params.id !== this.props.currentProjectId) {
+            this.props.dispatch<any>(
+                setProjectItem(props.match.params.id, ItemMode.ACTIVE)
+            );
+        }
+        return <ProjectPanel
+            onItemClick={item => this.props.dispatch<any>(
+                setProjectItem(item.uuid, ItemMode.ACTIVE)
+            )} />;
+    }
+
 }
 
 export default connect<WorkbenchDataProps>(

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


hooks/post-receive
-- 




More information about the arvados-commits mailing list