X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/4f88234088269faa064da9459376c3af2a740a7d..6df149b9bebe91e92de4c396f60127ee5b5b4de1:/src/views/process-panel/process-io-card.tsx diff --git a/src/views/process-panel/process-io-card.tsx b/src/views/process-panel/process-io-card.tsx index 2857aa1334..7d4565228c 100644 --- a/src/views/process-panel/process-io-card.tsx +++ b/src/views/process-panel/process-io-card.tsx @@ -59,8 +59,9 @@ import { InputCollectionMount } from 'store/processes/processes-actions'; import { connect } from 'react-redux'; import { RootState } from 'store/store'; import { ProcessOutputCollectionFiles } from './process-output-collection-files'; +import { Process } from 'store/processes/process'; -type CssRules = 'card' | 'content' | 'title' | 'header' | 'avatar' | 'iconHeader' | 'tableWrapper' | 'tableRoot' | 'paramValue' | 'keepLink' | 'imagePreview' | 'valArray' | 'emptyValue'; +type CssRules = 'card' | 'content' | 'title' | 'header' | 'avatar' | 'iconHeader' | 'tableWrapper' | 'tableRoot' | 'paramValue' | 'keepLink' | 'imagePreview' | 'valArray' | 'emptyValue' | 'symmetricTabs'; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ card: { @@ -94,6 +95,10 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ }, tableRoot: { width: '100%', + '& thead th': { + verticalAlign: 'bottom', + paddingBottom: '10px', + } }, paramValue: { display: 'flex', @@ -122,6 +127,11 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ emptyValue: { color: theme.customs.colors.grey500, }, + symmetricTabs: { + '& button': { + flexBasis: '0', + } + }, }); export enum ProcessIOCardType { @@ -129,6 +139,7 @@ export enum ProcessIOCardType { OUTPUT = 'Outputs', } export interface ProcessIOCardDataProps { + process: Process; label: ProcessIOCardType; params: ProcessIOParameter[]; raw?: any; @@ -139,11 +150,12 @@ export interface ProcessIOCardDataProps { type ProcessIOCardProps = ProcessIOCardDataProps & WithStyles & MPVPanelProps; export const ProcessIOCard = withStyles(styles)( - ({ classes, label, params, raw, mounts, outputUuid, doHidePanel, panelName }: ProcessIOCardProps) => { - const [tabState, setTabState] = useState(0); - const handleChange = (event: React.MouseEvent, value: number) => { - setTabState(value); + ({ classes, label, params, raw, mounts, outputUuid, doHidePanel, panelName, process }: ProcessIOCardProps) => { + const [mainProcTabState, setMainProcTabState] = useState(0); + const handleMainProcTabChange = (event: React.MouseEvent, value: number) => { + setMainProcTabState(value); } + const PanelIcon = label == ProcessIOCardType.INPUT ? InputIcon : OutputIcon; return @@ -169,30 +181,38 @@ export const ProcessIOCard = withStyles(styles)( } />
- - - - {label === ProcessIOCardType.INPUT && } - {label === ProcessIOCardType.OUTPUT && } - - {tabState === 0 &&
- {params.length ? - : - - - } -
} - {tabState === 1 &&
- {params.length ? - : - - - } -
} - {tabState === 2 &&
- {label === ProcessIOCardType.INPUT && } - {label === ProcessIOCardType.OUTPUT && } -
} + {!process.containerRequest.requestingContainerUuid ? + (<> + + + + + {mainProcTabState === 0 &&
+ {params.length ? + : + + + } +
} + {mainProcTabState === 1 &&
+ {params.length ? + : + + + } +
} + ) : + (<> + + {label === ProcessIOCardType.INPUT && } + {label === ProcessIOCardType.OUTPUT && } + +
+ {label === ProcessIOCardType.INPUT && } + {label === ProcessIOCardType.OUTPUT && } +
+ ) + }
; @@ -427,7 +447,7 @@ const KeepUrlBase = withStyles(styles)(({auth, res, pdh, classes}: KeepUrlProps // Passing a pdh always returns a relative wb2 collection url const pdhWbPath = getNavUrl(pdhUrl.replace('keep:', ''), auth); return pdhUrl && pdhWbPath ? - {pdhUrl} : + {pdhUrl} : <>; }); @@ -438,8 +458,9 @@ const KeepUrlPath = withStyles(styles)(({auth, res, pdh, classes}: KeepUrlProps const keepUrlPathNav = getKeepNavUrl(auth, res, pdh); return keepUrlPath && keepUrlPathNav ? - handleClick(keepUrlPathNav)}>{keepUrlPath} : - <>; + handleClick(keepUrlPathNav)}>{keepUrlPath} : + // Show No value for root collection io that lacks path part + ; }); const getKeepNavUrl = (auth: AuthState, file: File | Directory, pdh?: string): string => {