From 90f6d4ed0532cf64085d1638b206a5bb20deec5d Mon Sep 17 00:00:00 2001 From: Keith Grant Date: Tue, 12 May 2020 10:23:25 -0700 Subject: [PATCH] fix merging of survey values into extra_vars --- awx/ui_next/src/components/LaunchPrompt/LaunchPrompt.jsx | 4 +++- .../src/components/LaunchPrompt/getSurveyValues.js | 9 +++++++++ .../src/components/LaunchPrompt/steps/PreviewStep.jsx | 4 +++- 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 awx/ui_next/src/components/LaunchPrompt/getSurveyValues.js diff --git a/awx/ui_next/src/components/LaunchPrompt/LaunchPrompt.jsx b/awx/ui_next/src/components/LaunchPrompt/LaunchPrompt.jsx index d568dc1810..246c54fb91 100644 --- a/awx/ui_next/src/components/LaunchPrompt/LaunchPrompt.jsx +++ b/awx/ui_next/src/components/LaunchPrompt/LaunchPrompt.jsx @@ -7,6 +7,7 @@ import ContentError from '@components/ContentError'; import ContentLoading from '@components/ContentLoading'; import mergeExtraVars from './mergeExtraVars'; import useSteps from './useSteps'; +import getSurveyValues from './getSurveyValues'; function LaunchPrompt({ config, resource, onLaunch, onCancel, i18n }) { const { @@ -33,13 +34,14 @@ function LaunchPrompt({ config, resource, onLaunch, onCancel, i18n }) { postValues[key] = value; } }; + const surveyValues = getSurveyValues(values); setValue('inventory_id', values.inventory?.id); setValue('credentials', values.credentials?.map(c => c.id)); setValue('job_type', values.job_type); setValue('limit', values.limit); setValue('job_tags', values.job_tags); setValue('skip_tags', values.skip_tags); - setValue('extra_vars', mergeExtraVars(values.extra_vars, values.survey)); + setValue('extra_vars', mergeExtraVars(values.extra_vars, surveyValues)); onLaunch(postValues); }; diff --git a/awx/ui_next/src/components/LaunchPrompt/getSurveyValues.js b/awx/ui_next/src/components/LaunchPrompt/getSurveyValues.js new file mode 100644 index 0000000000..0559eefc1f --- /dev/null +++ b/awx/ui_next/src/components/LaunchPrompt/getSurveyValues.js @@ -0,0 +1,9 @@ +export default function getSurveyValues(values) { + const surveyValues = {}; + Object.keys(values).forEach(key => { + if (key.startsWith('survey_')) { + surveyValues[key.substr(7)] = values[key]; + } + }); + return surveyValues; +} diff --git a/awx/ui_next/src/components/LaunchPrompt/steps/PreviewStep.jsx b/awx/ui_next/src/components/LaunchPrompt/steps/PreviewStep.jsx index 95e73509fb..e8df1ea8ff 100644 --- a/awx/ui_next/src/components/LaunchPrompt/steps/PreviewStep.jsx +++ b/awx/ui_next/src/components/LaunchPrompt/steps/PreviewStep.jsx @@ -3,13 +3,15 @@ import { useFormikContext } from 'formik'; import yaml from 'js-yaml'; import PromptDetail from '@components/PromptDetail'; import mergeExtraVars, { maskPasswords } from '../mergeExtraVars'; +import getSurveyValues from '../getSurveyValues'; function PreviewStep({ resource, config, survey, formErrors }) { const { values } = useFormikContext(); + const surveyValues = getSurveyValues(values); const passwordFields = survey.spec .filter(q => q.type === 'password') .map(q => q.variable); - const masked = maskPasswords(values.survey, passwordFields); + const masked = maskPasswords(surveyValues, passwordFields); return ( <>