X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0f5b0542513b572959e39400bae42e69aeb1a7b6..8d3cf07be66fb6b8a58c3999783ebc753c30428f:/services/workbench2/src/views/process-panel/process-panel-root.tsx diff --git a/services/workbench2/src/views/process-panel/process-panel-root.tsx b/services/workbench2/src/views/process-panel/process-panel-root.tsx index c04cf62afc..2a9b3882e8 100644 --- a/services/workbench2/src/views/process-panel/process-panel-root.tsx +++ b/services/workbench2/src/views/process-panel/process-panel-root.tsx @@ -2,34 +2,35 @@ // // SPDX-License-Identifier: AGPL-3.0 -import React from 'react'; -import { Grid, StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core'; -import { DefaultView } from 'components/default-view/default-view'; -import { ProcessIcon } from 'components/icon/icon'; -import { Process } from 'store/processes/process'; -import { SubprocessPanel } from 'views/subprocess-panel/subprocess-panel'; -import { SubprocessFilterDataProps } from 'components/subprocess-filter/subprocess-filter'; -import { MPVContainer, MPVPanelContent, MPVPanelState } from 'components/multi-panel-view/multi-panel-view'; -import { ArvadosTheme } from 'common/custom-theme'; -import { ProcessDetailsCard } from './process-details-card'; -import { ProcessIOCard, ProcessIOCardType, ProcessIOParameter } from './process-io-card'; -import { ProcessResourceCard } from './process-resource-card'; -import { getProcessPanelLogs, ProcessLogsPanel } from 'store/process-logs-panel/process-logs-panel'; -import { ProcessLogsCard } from './process-log-card'; -import { FilterOption } from 'views/process-panel/process-log-form'; -import { getInputCollectionMounts } from 'store/processes/processes-actions'; -import { WorkflowInputsData } from 'models/workflow'; -import { CommandOutputParameter } from 'cwlts/mappings/v1.0/CommandOutputParameter'; -import { AuthState } from 'store/auth/auth-reducer'; -import { ProcessCmdCard } from './process-cmd-card'; -import { ContainerRequestResource } from 'models/container-request'; -import { OutputDetails, NodeInstanceType } from 'store/process-panel/process-panel'; +import React from "react"; +import { StyleRulesCallback, WithStyles, withStyles } from "@material-ui/core"; +import { ProcessIcon } from "components/icon/icon"; +import { Process } from "store/processes/process"; +import { SubprocessPanel } from "views/subprocess-panel/subprocess-panel"; +import { SubprocessFilterDataProps } from "components/subprocess-filter/subprocess-filter"; +import { MPVContainer, MPVPanelContent, MPVPanelState } from "components/multi-panel-view/multi-panel-view"; +import { ArvadosTheme } from "common/custom-theme"; +import { ProcessDetailsCard } from "./process-details-card"; +import { ProcessIOCard, ProcessIOCardType, ProcessIOParameter } from "./process-io-card"; +import { ProcessResourceCard } from "./process-resource-card"; +import { getProcessPanelLogs, ProcessLogsPanel } from "store/process-logs-panel/process-logs-panel"; +import { ProcessLogsCard } from "./process-log-card"; +import { FilterOption } from "views/process-panel/process-log-form"; +import { getInputCollectionMounts } from "store/processes/processes-actions"; +import { WorkflowInputsData } from "models/workflow"; +import { CommandOutputParameter } from "cwlts/mappings/v1.0/CommandOutputParameter"; +import { AuthState } from "store/auth/auth-reducer"; +import { ProcessCmdCard } from "./process-cmd-card"; +import { ContainerRequestResource } from "models/container-request"; +import { OutputDetails, NodeInstanceType } from "store/process-panel/process-panel"; +import { NotFoundView } from 'views/not-found-panel/not-found-panel'; +import { CollectionFile } from 'models/collection-file'; -type CssRules = 'root'; +type CssRules = "root"; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ root: { - width: '100%', + width: "100%", }, }); @@ -41,10 +42,11 @@ export interface ProcessPanelRootDataProps { auth: AuthState; inputRaw: WorkflowInputsData | null; inputParams: ProcessIOParameter[] | null; - outputRaw: OutputDetails | null; + outputData: OutputDetails | null; outputDefinitions: CommandOutputParameter[]; outputParams: ProcessIOParameter[] | null; nodeInfo: NodeInstanceType | null; + usageReport: string | null; } export interface ProcessPanelRootActionProps { @@ -68,12 +70,12 @@ export type ProcessPanelRootProps = ProcessPanelRootDataProps & ProcessPanelRoot const panelsData: MPVPanelState[] = [ { name: "Details" }, - { name: "Command" }, { name: "Logs", visible: true }, - { name: "Inputs" }, + { name: "Subprocesses" }, { name: "Outputs" }, + { name: "Inputs" }, + { name: "Command" }, { name: "Resources" }, - { name: "Subprocesses" }, ]; export const ProcessPanelRoot = withStyles(styles)( @@ -83,10 +85,11 @@ export const ProcessPanelRoot = withStyles(styles)( processLogsPanel, inputRaw, inputParams, - outputRaw, + outputData, outputDefinitions, outputParams, nodeInfo, + usageReport, loadInputs, loadOutputs, loadNodeJson, @@ -94,7 +97,6 @@ export const ProcessPanelRoot = withStyles(styles)( updateOutputParams, ...props }: ProcessPanelRootProps) => { - const outputUuid = process?.containerRequest.outputUuid; const containerRequest = process?.containerRequest; const inputMounts = getInputCollectionMounts(process?.containerRequest); @@ -113,14 +115,25 @@ export const ProcessPanelRoot = withStyles(styles)( } }, [containerRequest, loadInputs, loadOutputs, loadOutputDefinitions, loadNodeJson]); + const maxHeight = "100%"; + // Trigger processing output params when raw or definitions change React.useEffect(() => { updateOutputParams(); - }, [outputRaw, outputDefinitions, updateOutputParams]); + }, [outputData, outputDefinitions, updateOutputParams]); - return process - ? - + return process ? ( + + props.onContextMenu(event, process)} @@ -129,29 +142,51 @@ export const ProcessPanelRoot = withStyles(styles)( resumeOnHoldWorkflow={props.resumeOnHoldWorkflow} /> - - - - + ({ label: filter, value: filter }) - )} + filters={processLogsPanel.filters.map(filter => ({ label: filter, value: filter }))} onLogFilterChange={props.onLogFilterChange} navigateToLog={props.navigateToLog} pollProcessLogs={props.pollProcessLogs} /> - + + + + + + + - - + - + - - - - : - - ; + ) : ( + + ); } );