X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/1bc3f80b1aebb3c81b55e1afaad0a649aa9b3b9f..5430c336b96cbb7c20bffa1cbdb8cffea32fb460:/src/store/run-process-panel/run-process-panel-actions.ts diff --git a/src/store/run-process-panel/run-process-panel-actions.ts b/src/store/run-process-panel/run-process-panel-actions.ts index adb5ade7..e0dada5c 100644 --- a/src/store/run-process-panel/run-process-panel-actions.ts +++ b/src/store/run-process-panel/run-process-panel-actions.ts @@ -21,6 +21,9 @@ import { } from 'views/run-process-panel/run-process-advanced-form'; import { dialogActions } from 'store/dialog/dialog-actions'; import { setBreadcrumbs } from 'store/breadcrumbs/breadcrumbs-actions'; +import { getResource } from 'store/resources/resources'; +import { ProjectResource } from "models/project"; +import { UserResource } from "models/user"; export const runProcessPanelActions = unionize({ SET_PROCESS_PATHNAME: ofType(), @@ -99,15 +102,23 @@ export const setWorkflow = (workflow: WorkflowResource, isWorkflowChanged = true const advancedFormValues = getWorkflowRunnerSettings(workflow); + let owner = getResource(getState().runProcessPanel.processOwnerUuid)(getState().resources); + const userUuid = getUserUuid(getState()); + if (!owner || !userUuid || owner.writableBy.indexOf(userUuid) === -1) { + owner = undefined; + } + if (isStepChanged && isWorkflowChanged) { dispatch(runProcessPanelActions.SET_STEP_CHANGED(false)); dispatch(runProcessPanelActions.SET_SELECTED_WORKFLOW(workflow)); dispatch(loadPresets(workflow.uuid)); + dispatch(initialize(RUN_PROCESS_BASIC_FORM, { name: workflow.name, owner })); dispatch(initialize(RUN_PROCESS_ADVANCED_FORM, advancedFormValues)); } if (!isWorkflowChanged) { dispatch(runProcessPanelActions.SET_SELECTED_WORKFLOW(workflow)); dispatch(loadPresets(workflow.uuid)); + dispatch(initialize(RUN_PROCESS_BASIC_FORM, { name: workflow.name, owner })); dispatch(initialize(RUN_PROCESS_ADVANCED_FORM, advancedFormValues)); } }; @@ -144,7 +155,7 @@ export const runProcess = async (dispatch: Dispatch, getState: () => RootSt const userUuid = getUserUuid(getState()); if (!userUuid) { return; } const { processOwnerUuid, selectedWorkflow } = state.runProcessPanel; - const ownerUUid = processOwnerUuid ? processOwnerUuid : userUuid; + const ownerUUid = basicForm.owner ? basicForm.owner.uuid : (processOwnerUuid ? processOwnerUuid : userUuid); if (selectedWorkflow) { const advancedForm = getFormValues(RUN_PROCESS_ADVANCED_FORM)(state) as RunProcessAdvancedFormData || getWorkflowRunnerSettings(selectedWorkflow); const newProcessData = { @@ -173,9 +184,9 @@ export const runProcess = async (dispatch: Dispatch, getState: () => RootSt ], outputPath: '/var/spool/cwl', priority: 1, - outputName: advancedForm[OUTPUT_FIELD] ? advancedForm[OUTPUT_FIELD] : undefined, + outputName: advancedForm[OUTPUT_FIELD] ? advancedForm[OUTPUT_FIELD] : `Output from ${basicForm.name}`, properties: { - workflowUuid: selectedWorkflow.uuid, + template_uuid: selectedWorkflow.uuid, workflowName: selectedWorkflow.name }, useExisting: false