X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/952aa1c7170d4b24951f40ed66b5f19a53d11daf..d416c9aa7b70da4f8998792a42616b991d882f26:/src/views/workflow-panel/workflow-description-card.tsx diff --git a/src/views/workflow-panel/workflow-description-card.tsx b/src/views/workflow-panel/workflow-description-card.tsx index 57cf89f7..b9e89c76 100644 --- a/src/views/workflow-panel/workflow-description-card.tsx +++ b/src/views/workflow-panel/workflow-description-card.tsx @@ -2,23 +2,60 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; -import { StyleRulesCallback, WithStyles, withStyles, CardContent, Tab, Tabs, Paper } from '@material-ui/core'; -import { ArvadosTheme } from '~/common/custom-theme'; -import { WorkflowIcon } from '~/components/icon/icon'; -import { DataTableDefaultView } from '~/components/data-table-default-view/data-table-default-view'; -import { WorkflowResource, parseWorkflowDefinition, getWorkflowInputs, stringifyInputType } from '~/models/workflow'; -import { DetailsAttribute } from '~/components/details-attribute/details-attribute'; +import React from 'react'; +import { + StyleRulesCallback, + WithStyles, + withStyles, + CardContent, + Tab, + Tabs, + Table, + TableHead, + TableCell, + TableBody, + TableRow, + Grid, +} from '@material-ui/core'; +import { ArvadosTheme } from 'common/custom-theme'; +import { WorkflowIcon } from 'components/icon/icon'; +import { DataTableDefaultView } from 'components/data-table-default-view/data-table-default-view'; +import { WorkflowResource, parseWorkflowDefinition, getWorkflowInputs, getInputLabel, stringifyInputType } from 'models/workflow'; +// import { WorkflowGraph } from "views/workflow-panel/workflow-graph"; +import { DetailsAttribute } from 'components/details-attribute/details-attribute'; +import { ResourceOwnerWithName } from 'views-components/data-explorer/renderers'; +import { formatDate } from "common/formatters"; -export type CssRules = 'root' | 'tab'; +export type CssRules = 'root' | 'tab' | 'inputTab' | 'graphTab' | 'graphTabWithChosenWorkflow' | 'descriptionTab' | 'inputsTable'; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ root: { - height: '100%', + height: '100%' }, tab: { - minWidth: '50%' - } + minWidth: '33%' + }, + inputTab: { + overflow: 'auto', + maxHeight: '300px', + marginTop: theme.spacing.unit + }, + graphTab: { + marginTop: theme.spacing.unit, + }, + graphTabWithChosenWorkflow: { + overflow: 'auto', + height: '450px', + marginTop: theme.spacing.unit, + }, + descriptionTab: { + overflow: 'auto', + maxHeight: '300px', + marginTop: theme.spacing.unit, + }, + inputsTable: { + tableLayout: 'fixed', + }, }); interface WorkflowDetailsCardDataProps { @@ -40,26 +77,47 @@ export const WorkflowDetailsCard = withStyles(styles)( render() { const { classes, workflow } = this.props; const { value } = this.state; - return + return
+ + {/* */} - {value === 0 && + {value === 0 && + {workflow ?
+ {workflow.description} +
: ( + + )} +
} + {value === 1 && {workflow - ? workflow.description + ? this.renderInputsTable() : } + messages={['Please select a workflow to see its inputs.']} /> + } } - {value === 1 && - {workflow && this.inputs - ? this.inputs.map(input => ) + {/* {value === 2 && + {workflow + ? + : + } + } */} + {value === 2 && + {workflow + ? : } + messages={['Please select a workflow to see its details.']} /> + } } - ; +
; } get inputs() { @@ -69,6 +127,52 @@ export const WorkflowDetailsCard = withStyles(styles)( return getWorkflowInputs(definition); } } - return; + return undefined; } - }); \ No newline at end of file + + renderInputsTable() { + return + + + Label + Type + Description + + + + {this.inputs && this.inputs.map(input => + + {getInputLabel(input)} + {stringifyInputType(input)} + {input.doc} + )} + +
; + } + }); + +export const WorkflowDetailsAttributes = ({ workflow }: WorkflowDetailsCardDataProps) => { + return + + + + + } /> + + + + + + + + + } /> + + ; +};