import { WORKFLOW_PANEL_ID } from '~/store/workflow-panel/workflow-panel-actions';
import {
ResourceLastModifiedDate,
- RosurceWorkflowName,
+ ResourceWorkflowName,
ResourceWorkflowStatus,
- ResourceShare
+ ResourceShare,
+ ResourceRunProcess
} from "~/views-components/data-explorer/renderers";
import { SortDirection } from '~/components/data-table/data-column';
import { DataColumns } from '~/components/data-table/data-table';
import { DataTableFilterItem } from '~/components/data-table-filters/data-table-filters';
import { Grid, Paper } from '@material-ui/core';
import { WorkflowDetailsCard } from './workflow-description-card';
+import { WorkflowResource } from '~/models/workflow';
+import { createTree } from '~/models/tree';
export enum WorkflowPanelColumnNames {
NAME = "Name",
type: ResourceStatus;
}
-interface WorkflowPanelDataProps {
- handleRowDoubleClick: any;
- handleRowClick: any;
+export interface WorkflowPanelDataProps {
+ workflow?: WorkflowResource;
}
+export interface WorfklowPanelActionProps {
+ handleRowDoubleClick: (workflowUuid: string) => void;
+ handleRowClick: (workflowUuid: string) => void;
+}
+
+export type WorkflowPanelProps = WorkflowPanelDataProps & WorfklowPanelActionProps;
+
export enum ResourceStatus {
PUBLIC = "Public",
PRIVATE = "Private",
}
};
-export const workflowPanelColumns: DataColumns<string, WorkflowPanelFilter> = [
+export const workflowPanelColumns: DataColumns<string> = [
{
name: WorkflowPanelColumnNames.NAME,
selected: true,
configurable: true,
sortDirection: SortDirection.ASC,
- filters: [],
- render: (uuid: string) => <RosurceWorkflowName uuid={uuid} />
+ filters: createTree(),
+ render: (uuid: string) => <ResourceWorkflowName uuid={uuid} />
},
{
name: WorkflowPanelColumnNames.AUTHORISATION,
selected: true,
configurable: true,
- 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
- }
- ],
+ filters: createTree(),
+ // TODO: restore filters
+ // 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} />,
},
{
selected: true,
configurable: true,
sortDirection: SortDirection.NONE,
- filters: [],
+ filters: createTree(),
render: (uuid: string) => <ResourceLastModifiedDate uuid={uuid} />
},
{
name: '',
selected: true,
configurable: false,
- filters: [],
+ filters: createTree(),
render: (uuid: string) => <ResourceShare uuid={uuid} />
+ },
+ {
+ name: '',
+ selected: true,
+ configurable: false,
+ filters: createTree(),
+ render: (uuid: string) => <ResourceRunProcess uuid={uuid} />
}
];
-export const WorkflowPanelView = ({...props}) => {
- return <Grid container spacing={16}>
+export const WorkflowPanelView = (props: WorkflowPanelProps) => {
+ return <Grid container spacing={16} style={{ minHeight: '500px' }}>
<Grid item xs={6}>
<DataExplorer
id={WORKFLOW_PANEL_ID}
onRowClick={props.handleRowClick}
onRowDoubleClick={props.handleRowDoubleClick}
contextMenuColumn={false}
- onContextMenu={e=>e}
+ onContextMenu={e => e}
dataTableDefaultView={<DataTableDefaultView icon={WorkflowIcon} />} />
</Grid>
<Grid item xs={6}>
- <Paper>
- <WorkflowDetailsCard />
+ <Paper style={{ height: '100%' }}>
+ <WorkflowDetailsCard workflow={props.workflow} />
</Paper>
</Grid>
</Grid>;
-};
\ No newline at end of file
+};