X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/9638d07155597ad006b2c7e325e82a1bc5281aba..3c7e3cdc547ad5468421e1c049daa94b0d4b8bc0:/src/views-components/process-input-dialog/process-input-dialog.tsx diff --git a/src/views-components/process-input-dialog/process-input-dialog.tsx b/src/views-components/process-input-dialog/process-input-dialog.tsx index 2ad0a57f..9a186884 100644 --- a/src/views-components/process-input-dialog/process-input-dialog.tsx +++ b/src/views-components/process-input-dialog/process-input-dialog.tsx @@ -2,12 +2,14 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from "react"; +import React from "react"; import { Dialog, DialogActions, Button, CardHeader, DialogContent } from '@material-ui/core'; -import { WithDialogProps } from '~/store/dialog/with-dialog'; -import { withDialog } from "~/store/dialog/with-dialog"; -import { PROCESS_INPUT_DIALOG_NAME } from '~/store/processes/process-input-actions'; -import { RunProcessInputsForm } from "~/views/run-process-panel/run-process-inputs-form"; +import { WithDialogProps } from 'store/dialog/with-dialog'; +import { withDialog } from "store/dialog/with-dialog"; +import { PROCESS_INPUT_DIALOG_NAME } from 'store/processes/process-input-actions'; +import { RunProcessInputsForm } from "views/run-process-panel/run-process-inputs-form"; +import { MOUNT_PATH_CWL_WORKFLOW, MOUNT_PATH_CWL_INPUT } from "models/process"; +import { getWorkflowInputs } from "models/workflow"; export const ProcessInputDialog = withDialog(PROCESS_INPUT_DIALOG_NAME)( (props: WithDialogProps) => @@ -31,52 +33,17 @@ export const ProcessInputDialog = withDialog(PROCESS_INPUT_DIALOG_NAME)( ); -const getInputs = (data: any) => - data && data.mounts.varLibCwlWorkflowJson ? data.mounts.varLibCwlWorkflowJson.content.graph[1].inputs.map((it: any) => ( - { type: it.type, id: it.id, label: it.label, value: getInputValue(it.id, data.mounts.varLibCwlCwlInputJson.content), disabled: true } - )) : []; - -export const getInputValue = (id: string, data: any) => { - switch (id) { - case "#main/example_flag": - return data.exampleFlag; - case "#main/example_directory": - return data.exampleDirectory; - case "#main/example_double": - return data.exampleDouble; - case "#main/example_file": - return data.exampleFile; - case "#main/example_float": - return data.exampleFloat; - case "#main/example_int": - return data.exampleInt; - case "#main/example_long": - return data.exampleLong; - case "#main/example_null": - return data.exampleNull; - case "#main/example_string": - return data.exampleString; - case "#main/enum_type": - return data.enumType; - case "#main/multiple_collections": - return data.multipleCollections; - case "#main/example_string_array": - return data.exampleStringArray; - case "#main/example_int_array": - return data.exampleIntArray; - case "#main/example_float_array": - return data.exampleFloatArray; - case "#main/multiple_files": - return data.multipleFiles; - case "#main/collection": - return data.collection; - case "#main/optional_file_missing_label": - return data.optionalFileMissingLabel; - case "#main/optional_file": - return data.optionalFile; - case "#main/single_file": - return data.singleFile; - default: - return data.exampleString; - } -}; \ No newline at end of file +const getInputs = (data: any) => { + if (!data || !data.mounts || !data.mounts[MOUNT_PATH_CWL_WORKFLOW]) { return []; } + const inputs = getWorkflowInputs(data.mounts[MOUNT_PATH_CWL_WORKFLOW].content); + return inputs + ? inputs.map( (it: any) => ( + { + type: it.type, + id: it.id, + label: it.label, + value: data.mounts[MOUNT_PATH_CWL_INPUT].content[it.id.split('/').pop()] || [], + disabled: true + })) + : []; +};