Handle resource type in type filters
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Wed, 4 Jul 2018 13:54:33 +0000 (15:54 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Wed, 4 Jul 2018 13:54:33 +0000 (15:54 +0200)
Feature #13703

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

src/views/project-panel/project-panel.tsx

index 8d779d46afbc7be010c2c52fdf11645dcc832b0c..7323ce2b54e5f3b1954988e04c0ce95dd432474c 100644 (file)
@@ -13,9 +13,14 @@ import { DataColumns } from '../../components/data-table/data-table';
 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,
@@ -116,7 +121,9 @@ const renderOwner = (owner: string) =>
         {owner}
     </Typography>;
 
-const getItemTypeLabel = (type: string) => {
+
+
+const typeToLabel = (type: string) => {
     switch(type){
         case ResourceKind.Collection:
             return "Data collection";
@@ -124,8 +131,6 @@ const getItemTypeLabel = (type: string) => {
             return "Project";
         case ResourceKind.Process: 
             return "Process";
-        case ResourceKind.Workflow:
-            return "Workflow";
         default:
             return "Unknown";
     }
@@ -133,7 +138,7 @@ const getItemTypeLabel = (type: string) => {
 
 const renderType = (type: string) => {
     return <Typography noWrap>
-        {getItemTypeLabel(type)}
+        {typeToLabel(type)}
     </Typography>;
 };
 
@@ -142,7 +147,9 @@ const renderStatus = (item: ProjectPanelItem) =>
         {item.status || "-"}
     </Typography>;
 
-export const columns: DataColumns<ProjectPanelItem> = [{
+
+
+export const columns: DataColumns<ProjectPanelItem, ProjectPanelFilter> = [{
     name: "Name",
     selected: true,
     sortDirection: "desc",
@@ -157,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"