- return process
- ? <MPVContainer className={props.classes.root} spacing={8} panelStates={panelsData} justify-content="flex-start" direction="column" wrap="nowrap">
- <MPVPanelContent forwardProps xs="auto" data-cy="process-details">
- <ProcessDetailsCard
- process={process}
- onContextMenu={event => props.onContextMenu(event, process)}
- cancelProcess={props.cancelProcess}
- />
- </MPVPanelContent>
- <MPVPanelContent forwardProps xs="auto" data-cy="process-cmd">
- <ProcessCmdCard
- onCopy={props.onCopyToClipboard}
- process={process} />
- </MPVPanelContent>
- <MPVPanelContent forwardProps xs maxHeight='50%' data-cy="process-logs">
- <ProcessLogsCard
- onCopy={props.onCopyToClipboard}
- process={process}
- lines={getProcessPanelLogs(processLogsPanel)}
- selectedFilter={{
- label: processLogsPanel.selectedFilter,
- value: processLogsPanel.selectedFilter
- }}
- filters={processLogsPanel.filters.map(
- filter => ({ label: filter, value: filter })
- )}
- onLogFilterChange={props.onLogFilterChange}
- navigateToLog={props.navigateToLog}
+ return process ? (
+ <MPVContainer
+ className={props.classes.root}
+ spacing={8}
+ panelStates={panelsData}
+ justify-content="flex-start"
+ direction="column"
+ wrap="nowrap">
+ <MPVPanelContent
+ forwardProps
+ xs="auto"
+ data-cy="process-details">
+ <ProcessDetailsCard
+ process={process}
+ onContextMenu={event => props.onContextMenu(event, process)}
+ cancelProcess={props.cancelProcess}
+ startProcess={props.startProcess}
+ resumeOnHoldWorkflow={props.resumeOnHoldWorkflow}
+ />
+ </MPVPanelContent>
+ <MPVPanelContent
+ forwardProps
+ xs="auto"
+ data-cy="process-cmd">
+ <ProcessCmdCard
+ onCopy={props.onCopyToClipboard}
+ process={process}
+ />
+ </MPVPanelContent>
+ <MPVPanelContent
+ forwardProps
+ xs
+ minHeight="50%"
+ data-cy="process-logs">
+ <ProcessLogsCard
+ onCopy={props.onCopyToClipboard}
+ process={process}
+ lines={getProcessPanelLogs(processLogsPanel)}
+ selectedFilter={{
+ label: processLogsPanel.selectedFilter,
+ value: processLogsPanel.selectedFilter,
+ }}
+ filters={processLogsPanel.filters.map(filter => ({ label: filter, value: filter }))}
+ onLogFilterChange={props.onLogFilterChange}
+ navigateToLog={props.navigateToLog}
+ pollProcessLogs={props.pollProcessLogs}
+ />
+ </MPVPanelContent>
+ <MPVPanelContent
+ forwardProps
+ xs
+ maxHeight="50%"
+ data-cy="process-inputs">
+ <ProcessIOCard
+ label={ProcessIOCardType.INPUT}
+ process={process}
+ params={inputParams}
+ raw={inputRaw}
+ mounts={inputMounts}
+ />
+ </MPVPanelContent>
+ <MPVPanelContent
+ forwardProps
+ xs
+ maxHeight="50%"
+ data-cy="process-outputs">
+ <ProcessIOCard
+ label={ProcessIOCardType.OUTPUT}
+ process={process}
+ params={outputParams}
+ raw={outputRaw?.rawOutputs}
+ outputUuid={outputUuid || ""}
+ />
+ </MPVPanelContent>
+ <MPVPanelContent
+ forwardProps
+ xs
+ data-cy="process-resources">
+ <ProcessResourceCard
+ process={process}
+ nodeInfo={nodeInfo}
+ />
+ </MPVPanelContent>
+ <MPVPanelContent
+ forwardProps
+ xs
+ maxHeight="50%"
+ data-cy="process-children">
+ <SubprocessPanel />
+ </MPVPanelContent>
+ </MPVContainer>
+ ) : (
+ <Grid
+ container
+ alignItems="center"
+ justify="center"
+ style={{ minHeight: "100%" }}>
+ <DefaultView
+ icon={ProcessIcon}
+ messages={["Process not found"]}