auth
authorPawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>
Mon, 24 Sep 2018 13:40:13 +0000 (15:40 +0200)
committerPawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>
Mon, 24 Sep 2018 13:40:13 +0000 (15:40 +0200)
Feature #13857

Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>

src/views-components/data-explorer/renderers.tsx
src/views/workflow-panel/workflow-panel.tsx

index b9d0bc8ca3196f1bb1d7f3ee2d33831bf0796749..039ef47f8f3e15ecdc2ecd9c488c8775d3cdfc4d 100644 (file)
@@ -17,6 +17,7 @@ import { getProcess, Process, getProcessStatus, getProcessStatusColor } from '~/
 import { ArvadosTheme } from '~/common/custom-theme';
 import { compose } from 'redux';
 import { WorkflowResource } from '~/models/workflow';
+import { ResourceStatus } from '~/views/workflow-panel/workflow-panel';
 
 export const renderName = (item: { name: string; uuid: string, kind: string }) =>
     <Grid container alignItems="center" wrap="nowrap" spacing={16}>
@@ -78,15 +79,19 @@ export const renderDate = (date?: string) => {
     return <Typography noWrap style={{ minWidth: '100px' }}>{formatDate(date)}</Typography>;
 };
 
-export const renderWorkflowStatus = () => {
-    return <Typography noWrap style={{ width: '60px' }}>{"Public"}</Typography>;
+export const renderWorkflowStatus = (ownerUuid?: string) => {
+    if (ownerUuid === 'qr1hi-j7d0g-2ax8o1pscovq2lg') {
+        return <Typography noWrap style={{ width: '60px' }}>{ResourceStatus.PUBLIC}</Typography>;
+    } else {
+        return <Typography noWrap style={{ width: '60px' }}>{ResourceStatus.PRIVATE}</Typography>;
+    }
 };
 
 export const ResourceWorkflowStatus = connect(
     (state: RootState, props: { uuid: string }) => {
         const resource = getResource<WorkflowResource>(props.uuid)(state.resources);
-        return {};
-    })((props: { status?: string }) => renderWorkflowStatus());
+        return { ownerUuid: resource ? resource.ownerUuid : '' };
+    })((props: { ownerUuid?: string }) => renderWorkflowStatus(props.ownerUuid));
 
 export const ResourceLastModifiedDate = connect(
     (state: RootState, props: { uuid: string }) => {
index ae058c3d0a857479d9450ad069a474c83b92252f..8cbdb1afc9c3b0899c212673466cd7a74389849d 100644 (file)
@@ -33,14 +33,18 @@ export enum WorkflowPanelColumnNames {
     SHARE = 'Share'
 }
 
+export interface WorkflowPanelFilter extends DataTableFilterItem {
+    type: ResourceStatus;
+}
+
 interface WorkflowPanelDataProps {
     resources: ResourcesState;
 }
 
 export enum ResourceStatus {
-    PUBLIC = 'public',
-    PRIVATE = 'private',
-    SHARED = 'shared'
+    PUBLIC = "Public",
+    PRIVATE = "Private",
+    SHARED = "Shared"
 }
 
 const resourceStatus = (type: string) => {
@@ -64,7 +68,7 @@ const ResourceShare = (props: { uuid: string }) => {
     </Tooltip>;
 };
 
-export const workflowPanelColumns: DataColumns<string, DataTableFilterItem> = [
+export const workflowPanelColumns: DataColumns<string, WorkflowPanelFilter> = [
     {
         name: WorkflowPanelColumnNames.NAME,
         selected: true,
@@ -77,19 +81,21 @@ export const workflowPanelColumns: DataColumns<string, DataTableFilterItem> = [
         name: WorkflowPanelColumnNames.AUTHORISATION,
         selected: true,
         configurable: true,
-        sortDirection: SortDirection.NONE,
         filters: [
             {
                 name: resourceStatus(ResourceStatus.PUBLIC),
                 selected: true,
+                type: ResourceStatus.PUBLIC
             },
             {
                 name: resourceStatus(ResourceStatus.PRIVATE),
                 selected: true,
+                type: ResourceStatus.PRIVATE
             },
             {
                 name: resourceStatus(ResourceStatus.SHARED),
                 selected: true,
+                type: ResourceStatus.SHARED
             }
         ],
         render: (uuid: string) => <ResourceWorkflowStatus uuid={uuid} />,
@@ -105,8 +111,7 @@ export const workflowPanelColumns: DataColumns<string, DataTableFilterItem> = [
     {
         name: '',
         selected: true,
-        configurable: true,
-        sortDirection: SortDirection.NONE,
+        configurable: false,
         filters: [],
         render: (uuid: string) => <ResourceShare uuid={uuid} />
     }