mirror of
https://github.com/ansible/awx.git
synced 2026-01-18 05:01:19 -03:30
fixes unresponsive clear all on survey step
This commit is contained in:
parent
935c7a5328
commit
b1a1c82169
@ -1,7 +1,10 @@
|
||||
export default function getSurveyValues(values) {
|
||||
const surveyValues = {};
|
||||
Object.keys(values).forEach(key => {
|
||||
if (key.startsWith('survey_')) {
|
||||
if (key.startsWith('survey_') && values[key] !== []) {
|
||||
if (Array.isArray(values[key]) && values[key].length === 0) {
|
||||
return;
|
||||
}
|
||||
surveyValues[key.substr(7)] = values[key];
|
||||
}
|
||||
});
|
||||
|
||||
@ -48,7 +48,7 @@ function PreviewStep({ resource, config, survey, formErrors, i18n }) {
|
||||
|
||||
return (
|
||||
<Fragment>
|
||||
{formErrors.length > 0 && (
|
||||
{formErrors && (
|
||||
<ErrorMessageWrapper>
|
||||
{i18n._(t`Some of the previous step(s) have errors`)}
|
||||
<Tooltip
|
||||
|
||||
@ -104,4 +104,31 @@ describe('PreviewStep', () => {
|
||||
extra_vars: 'one: 1',
|
||||
});
|
||||
});
|
||||
|
||||
test('should remove survey with empty array value', async () => {
|
||||
let wrapper;
|
||||
await act(async () => {
|
||||
wrapper = mountWithContexts(
|
||||
<Formik
|
||||
initialValues={{ extra_vars: 'one: 1' }}
|
||||
values={{ extra_vars: 'one: 1', survey_foo: [] }}
|
||||
>
|
||||
<PreviewStep
|
||||
resource={resource}
|
||||
config={{
|
||||
ask_variables_on_launch: true,
|
||||
}}
|
||||
formErrors={formErrors}
|
||||
/>
|
||||
</Formik>
|
||||
);
|
||||
});
|
||||
|
||||
const detail = wrapper.find('PromptDetail');
|
||||
expect(detail).toHaveLength(1);
|
||||
expect(detail.prop('resource')).toEqual(resource);
|
||||
expect(detail.prop('overrides')).toEqual({
|
||||
extra_vars: 'one: 1',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -146,9 +146,14 @@ function MultiSelectField({ question, i18n }) {
|
||||
} else {
|
||||
helpers.setValue(field.value.concat(option));
|
||||
}
|
||||
helpers.setTouched(true);
|
||||
}}
|
||||
isOpen={isOpen}
|
||||
selections={field.value}
|
||||
onClear={() => {
|
||||
helpers.setTouched(true);
|
||||
helpers.setValue([]);
|
||||
}}
|
||||
>
|
||||
{question.choices.split('\n').map(opt => (
|
||||
<SelectOption key={opt} value={opt} />
|
||||
|
||||
@ -45,15 +45,9 @@ export default function useSurveyStep(config, visitedSteps, i18n) {
|
||||
});
|
||||
return errors;
|
||||
};
|
||||
const formError = validate();
|
||||
const formError = Object.keys(validate()).length > 0;
|
||||
return {
|
||||
step: getStep(
|
||||
config,
|
||||
survey,
|
||||
Object.keys(formError).length > 0,
|
||||
i18n,
|
||||
visitedSteps
|
||||
),
|
||||
step: getStep(config, survey, formError, i18n, visitedSteps),
|
||||
formError,
|
||||
initialValues: getInitialValues(config, survey),
|
||||
survey,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user