fix launch prompt errors when no survey present

This commit is contained in:
Keith Grant 2020-05-12 14:38:05 -07:00
parent 23a20b9db0
commit e532f4c0c5
3 changed files with 15 additions and 6 deletions

View File

@ -8,10 +8,16 @@ 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(surveyValues, passwordFields);
let extraVars;
if (survey && survey.spec) {
const passwordFields = survey.spec
.filter(q => q.type === 'password')
.map(q => q.variable);
const masked = maskPasswords(surveyValues, passwordFields);
extraVars = yaml.safeDump(mergeExtraVars(values.extra_vars, masked));
} else {
extraVars = values.extra_vars;
}
return (
<>
<PromptDetail
@ -19,7 +25,7 @@ function PreviewStep({ resource, config, survey, formErrors }) {
launchConfig={config}
overrides={{
...values,
extra_vars: yaml.safeDump(mergeExtraVars(values.extra_vars, masked)),
extra_vars: extraVars,
}}
/>
{formErrors && (

View File

@ -9,6 +9,9 @@ export default function useInventoryStep(config, resource, visitedSteps, i18n) {
const [stepErrors, setStepErrors] = useState({});
const validate = values => {
if (!config.ask_inventory_on_launch) {
return {};
}
const errors = {};
if (!values.inventory) {
errors.inventory = i18n._(t`An inventory must be selected`);

View File

@ -56,7 +56,7 @@ export default function useSurveyStep(config, resource, visitedSteps, i18n) {
isReady: !isLoading && !!survey,
error,
setTouched: setFieldsTouched => {
if (!survey) {
if (!survey || !survey.spec) {
return;
}
const fields = {};