1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
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";
12 export const ProcessInputDialog = withDialog(PROCESS_INPUT_DIALOG_NAME)(
13 (props: WithDialogProps<any>) =>
17 onClose={props.closeDialog}>
19 title="Inputs - Pipeline template that generates a config file from a template" />
21 <RunProcessInputsForm inputs={getInputs(props.data.containerRequest)} />
27 onClick={props.closeDialog}>
34 const getInputs = (data: any) =>
35 data && data.mounts.varLibCwlWorkflowJson ? data.mounts.varLibCwlWorkflowJson.content.graph.filter((a: any) => a.class === 'Workflow')[0].inputs.map((it: any) => (
36 { type: it.type, id: it.id, label: it.label, value: getInputValue(it.id, data.mounts.varLibCwlCwlInputJson.content), disabled: true }
39 const snakeToCamel = (s: string) => {
40 const a = s.split('/');
41 return a[1].replace(/(\_\w)/g, (m: string) => m[1].toUpperCase());
44 export const getInputValue = (id: string, data: any) => {
45 const a = snakeToCamel(id);