X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/01a728d112f5728b9552c7e63f074487a4d056f0..25216cc7acedc987c26a159f0b640210c0ef101e:/src/store/processes/process-input-actions.ts diff --git a/src/store/processes/process-input-actions.ts b/src/store/processes/process-input-actions.ts index b67622d3..ec9352d5 100644 --- a/src/store/processes/process-input-actions.ts +++ b/src/store/processes/process-input-actions.ts @@ -2,10 +2,14 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { dialogActions } from '~/store/dialog/dialog-actions'; -import { RootState } from '~/store/store'; +import { dialogActions } from 'store/dialog/dialog-actions'; +import { RootState } from 'store/store'; import { Dispatch } from 'redux'; -import { getProcess, Process } from '~/store/processes/process'; +import { getProcess, Process } from 'store/processes/process'; +import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions'; +import { getWorkflowInputs } from 'models/workflow'; +import { JSONMount } from 'models/mount-types'; +import { MOUNT_PATH_CWL_WORKFLOW } from 'models/process'; export const PROCESS_INPUT_DIALOG_NAME = 'processInputDialog'; @@ -13,7 +17,18 @@ export const openProcessInputDialog = (processUuid: string) => (dispatch: Dispatch, getState: () => RootState) => { const process = getProcess(processUuid)(getState().resources); if (process) { - const data: Process = process; - dispatch(dialogActions.OPEN_DIALOG({ id: PROCESS_INPUT_DIALOG_NAME, data })); + const data: any = process; + const inputs = getInputsFromWFMount(process); + if (inputs && inputs.length > 0) { + dispatch(dialogActions.OPEN_DIALOG({ id: PROCESS_INPUT_DIALOG_NAME, data })); + } else { + dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'There are no inputs in this process!', kind: SnackbarKind.ERROR })); + } } - }; \ No newline at end of file + }; + +const getInputsFromWFMount = (process: Process) => { + if (!process || !process.containerRequest.mounts[MOUNT_PATH_CWL_WORKFLOW] ) { return undefined; } + const mnt = process.containerRequest.mounts[MOUNT_PATH_CWL_WORKFLOW] as JSONMount; + return getWorkflowInputs(mnt.content); +}; \ No newline at end of file