1650c902db0adacde3b85b7f69c81be8d25dfa07
[arvados-workbench2.git] / src / views-components / process-input-dialog / process-input-dialog.tsx
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import * as React from "react";
6 import { Dialog, DialogActions, Button, CardHeader, DialogContent } from '@material-ui/core';
7 import { WithDialogProps } from '~/store/dialog/with-dialog';
8 import { withDialog } from "~/store/dialog/with-dialog";
9 import { PROCESS_INPUT_DIALOG_NAME } from '~/store/processes/process-input-actions';
10 import { RunProcessInputsForm } from "~/views/run-process-panel/run-process-inputs-form";
11
12 export const ProcessInputDialog = withDialog(PROCESS_INPUT_DIALOG_NAME)(
13     (props: WithDialogProps<any>) =>
14         <Dialog
15             open={props.open}
16             maxWidth={false}
17             onClose={props.closeDialog}>
18             <CardHeader
19                 title="Inputs - Pipeline template that generates a config file from a template" />
20             <DialogContent>
21                 <RunProcessInputsForm inputs={getInputs(props.data.containerRequest)} />
22             </DialogContent>
23             <DialogActions>
24                 <Button
25                     variant='text'
26                     color='primary'
27                     onClick={props.closeDialog}>
28                     Close
29                 </Button>
30             </DialogActions>
31         </Dialog>
32 );
33
34 const getInputs = (data: any) =>
35     data && data.mounts["/var/lib/cwl/workflow.json"] ? data.mounts["/var/lib/cwl/workflow.json"].content.$graph.find(
36         (a: any) => a.id === '#main').inputs.map(
37             (it: any) => (
38                 {
39                     type: it.type,
40                     id: it.id,
41                     label: it.label,
42                     value: data.mounts["/var/lib/cwl/cwl.input.json"].content[it.id],
43                     disabled: true
44                 }
45             )
46         ) : [];