Remove unused project-panel-selectors module
[arvados.git] / src / views / project-panel / project-panel.tsx
index ff3dd9c8dd0876c1eed17d1490130e7e01d4ecc8..7323ce2b54e5f3b1954988e04c0ce95dd432474c 100644 (file)
@@ -9,14 +9,18 @@ import { formatDate, formatFileSize } from '../../common/formatters';
 import DataExplorer from "../../views-components/data-explorer/data-explorer";
 import { ContextMenuAction } from '../../components/context-menu/context-menu';
 import { DispatchProp, connect } from 'react-redux';
-import actions from "../../store/data-explorer/data-explorer-action";
 import { DataColumns } from '../../components/data-table/data-table';
-import { ResourceKind } from "../../models/resource";
 import { RouteComponentProps } from 'react-router';
 import { RootState } from '../../store/store';
+import { ResourceKind } from '../../models/kinds';
+import { DataTableFilterItem } from '../../components/data-table-filters/data-table-filters';
 
 export const PROJECT_PANEL_ID = "projectPanel";
 
+export interface ProjectPanelFilter extends DataTableFilterItem {
+    type: ResourceKind;
+}
+
 type ProjectPanelProps = {
     currentItemId: string,
     onItemClick: (item: ProjectPanelItem) => void,
@@ -90,10 +94,13 @@ const renderName = (item: ProjectPanelItem) =>
 
 const renderIcon = (item: ProjectPanelItem) => {
     switch (item.kind) {
-        case ResourceKind.PROJECT:
+        case ResourceKind.Project:
             return <i className="fas fa-folder fa-lg" />;
-        case ResourceKind.COLLECTION:
-            return <i className="fas fa-th fa-lg" />;
+        case ResourceKind.Collection:
+            return <i className="fas fa-archive fa-lg" />;
+        case ResourceKind.Process:
+        case ResourceKind.Workflow:
+            return <i className="fas fa-cogs fa-lg" />;
         default:
             return <i />;
     }
@@ -114,17 +121,35 @@ const renderOwner = (owner: string) =>
         {owner}
     </Typography>;
 
-const renderType = (type: string) =>
-    <Typography noWrap>
-        {type}
+
+
+const typeToLabel = (type: string) => {
+    switch(type){
+        case ResourceKind.Collection:
+            return "Data collection";
+        case ResourceKind.Project:
+            return "Project";
+        case ResourceKind.Process: 
+            return "Process";
+        default:
+            return "Unknown";
+    }
+};
+
+const renderType = (type: string) => {
+    return <Typography noWrap>
+        {typeToLabel(type)}
     </Typography>;
+};
 
 const renderStatus = (item: ProjectPanelItem) =>
     <Typography noWrap align="center">
         {item.status || "-"}
     </Typography>;
 
-export const columns: DataColumns<ProjectPanelItem> = [{
+
+
+export const columns: DataColumns<ProjectPanelItem, ProjectPanelFilter> = [{
     name: "Name",
     selected: true,
     sortDirection: "desc",
@@ -139,11 +164,17 @@ export const columns: DataColumns<ProjectPanelItem> = [{
     name: "Type",
     selected: true,
     filters: [{
-        name: "Collection",
-        selected: true
+        name: typeToLabel(ResourceKind.Collection),
+        selected: true,
+        type: ResourceKind.Collection
+    }, {
+        name: typeToLabel(ResourceKind.Process),
+        selected: true,
+        type: ResourceKind.Process
     }, {
-        name: "Project",
-        selected: true
+        name: typeToLabel(ResourceKind.Project),
+        selected: true,
+        type: ResourceKind.Project
     }],
     render: item => renderType(item.kind),
     width: "125px"