Replace project-panel with project-explorer
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Tue, 26 Jun 2018 08:11:48 +0000 (10:11 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Tue, 26 Jun 2018 08:11:48 +0000 (10:11 +0200)
Feature #13678

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/views-components/project-explorer/project-explorer-item.ts
src/views-components/project-explorer/project-explorer.tsx
src/views/project-panel/project-panel-selectors.ts [deleted file]
src/views/project-panel/project-panel.tsx [deleted file]
src/views/workbench/workbench.tsx

index 055c22cfeabe89adf593fb4e4e8e435a7ea0006d..b7c8707cb2a15a484a544fb7ecbbf92e0e1efde2 100644 (file)
@@ -2,6 +2,9 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
+import { TreeItem } from "../../components/tree/tree";
+import { Project } from "../../models/project";
+
 export interface ProjectExplorerItem {
     uuid: string;
     name: string;
@@ -11,3 +14,11 @@ export interface ProjectExplorerItem {
     fileSize?: number;
     status?: string;
 }
+
+export const mapProjectTreeItem = (item: TreeItem<Project>): ProjectExplorerItem => ({
+    name: item.data.name,
+    type: item.data.kind,
+    owner: item.data.ownerUuid,
+    lastModified: item.data.modifiedAt,
+    uuid: item.data.uuid
+});
\ No newline at end of file
index c4d40e8ac697d831e12cdc19338c08b1ba1a2afe..e9dc2a9ebf65e595296fef0014a1170253f985b0 100644 (file)
@@ -16,35 +16,10 @@ import { DataColumns } from '../../components/data-table/data-table';
 
 export const PROJECT_EXPLORER_ID = "projectExplorer";
 class ProjectExplorer extends React.Component<DispatchProp> {
-
-    contextMenuActions = [[{
-        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"
-    }
-    ]];
-
     render() {
         return <DataExplorer
             id={PROJECT_EXPLORER_ID}
-            contextActions={this.contextMenuActions}
+            contextActions={contextMenuActions}
             onColumnToggle={this.toggleColumn}
             onFiltersChange={this.changeFilters}
             onRowClick={console.log}
@@ -182,4 +157,28 @@ const columns: DataColumns<ProjectExplorerItem> = [{
     render: item => renderDate(item.lastModified)
 }];
 
+const contextMenuActions = [[{
+    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()(ProjectExplorer);
diff --git a/src/views/project-panel/project-panel-selectors.ts b/src/views/project-panel/project-panel-selectors.ts
deleted file mode 100644 (file)
index 610f2fa..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) The Arvados Authors. All rights reserved.
-//
-// SPDX-License-Identifier: AGPL-3.0
-
-import { TreeItem } from "../../components/tree/tree";
-import { Project } from "../../models/project";
-import { ProjectExplorerItem } from "../../views-components/project-explorer/project-explorer-item";
-
-export const mapProjectTreeItem = (item: TreeItem<Project>): ProjectExplorerItem => ({
-    name: item.data.name,
-    type: item.data.kind,
-    owner: item.data.ownerUuid,
-    lastModified: item.data.modifiedAt,
-    uuid: item.data.uuid
-});
diff --git a/src/views/project-panel/project-panel.tsx b/src/views/project-panel/project-panel.tsx
deleted file mode 100644 (file)
index afc6ce0..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) The Arvados Authors. All rights reserved.
-//
-// SPDX-License-Identifier: AGPL-3.0
-
-import * as React from 'react';
-import { RouteComponentProps } from 'react-router-dom';
-import { DispatchProp, connect } from 'react-redux';
-import { ProjectState, findTreeItem } from '../../store/project/project-reducer';
-import { RootState } from '../../store/store';
-import ProjectExplorer from '../../views-components/project-explorer/project-explorer';
-
-interface ProjectPanelDataProps {
-    projects: ProjectState;
-}
-
-type ProjectPanelProps = ProjectPanelDataProps & RouteComponentProps<{ name: string }> & DispatchProp;
-
-class ProjectPanel extends React.Component<ProjectPanelProps> {
-
-    render() {
-        return (
-            <ProjectExplorer />
-        );
-    }
-}
-
-export default connect(
-    (state: RootState) => ({
-        projects: state.projects
-    })
-)(ProjectPanel);
index a05d4db564623155cf31468f461f295f883241fe..92cbc5d0995b757ab31579eff83c1489afe808e1 100644 (file)
@@ -19,11 +19,9 @@ import ProjectTree from '../../views-components/project-tree/project-tree';
 import { TreeItem, TreeItemStatus } from "../../components/tree/tree";
 import { Project } from "../../models/project";
 import { getTreePath, findTreeItem } from '../../store/project/project-reducer';
-import ProjectPanel from '../project-panel/project-panel';
-import { PROJECT_EXPLORER_ID } from '../../views-components/project-explorer/project-explorer';
-import { ProjectExplorerItem } from '../../views-components/project-explorer/project-explorer-item';
+import ProjectExplorer, { PROJECT_EXPLORER_ID } from '../../views-components/project-explorer/project-explorer';
+import { ProjectExplorerItem, mapProjectTreeItem } from '../../views-components/project-explorer/project-explorer-item';
 import sidePanelActions from '../../store/side-panel/side-panel-action';
-import { projectService } from '../../services/services';
 import SidePanel, { SidePanelItem } from '../../components/side-panel/side-panel';
 
 const drawerWidth = 240;
@@ -195,13 +193,7 @@ class Workbench extends React.Component<WorkbenchProps, WorkbenchState> {
 
         const project = findTreeItem(this.props.projects, itemId);
         const items: ProjectExplorerItem[] = project && project.items
-            ? project.items.map(({ data }) => ({
-                uuid: data.uuid,
-                name: data.name,
-                type: data.kind,
-                owner: data.ownerUuid,
-                lastModified: data.modifiedAt
-            }))
+            ? project.items.map(mapProjectTreeItem)
             : [];
         this.props.dispatch(dataExplorerActions.SET_ITEMS({ id: PROJECT_EXPLORER_ID, items }));
     }
@@ -239,7 +231,7 @@ class Workbench extends React.Component<WorkbenchProps, WorkbenchState> {
                 <main className={classes.contentWrapper}>
                     <div className={classes.content}>
                         <Switch>
-                            <Route path="/project/:name" component={ProjectPanel} />
+                            <Route path="/project/:name" component={ProjectExplorer} />
                         </Switch>
                     </div>
                 </main>