diff --git a/awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.js b/awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.js index 52a4aab23b..52b8263088 100644 --- a/awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.js +++ b/awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.js @@ -24,9 +24,7 @@ function ExecutionEnvironmentLookup({ id, globallyAvailable, helperTextInvalid, - isDefaultEnvironment, isDisabled, - isGlobalDefaultEnvironment, isValid, onBlur, onChange, @@ -37,9 +35,9 @@ function ExecutionEnvironmentLookup({ validate, value, fieldName, + overrideLabel, }) { const location = useLocation(); - const { request: fetchProject, error: fetchProjectError, @@ -198,15 +196,9 @@ function ExecutionEnvironmentLookup({ ); - const renderLabel = ( - globalDefaultEnvironment, - defaultExecutionEnvironment - ) => { - if (globalDefaultEnvironment) { - return t`Global Default Execution Environment`; - } - if (defaultExecutionEnvironment) { - return t`Default Execution Environment`; + const renderLabel = () => { + if (overrideLabel) { + return null; } return t`Execution Environment`; }; @@ -214,7 +206,7 @@ function ExecutionEnvironmentLookup({ return ( } helperTextInvalid={helperTextInvalid} validated={isValid ? 'default' : 'error'} @@ -235,24 +227,22 @@ ExecutionEnvironmentLookup.propTypes = { value: ExecutionEnvironment, popoverContent: string, onChange: func.isRequired, - isDefaultEnvironment: bool, - isGlobalDefaultEnvironment: bool, projectId: oneOfType([number, string]), organizationId: oneOfType([number, string]), validate: func, fieldName: string, + overrideLabel: bool, }; ExecutionEnvironmentLookup.defaultProps = { id: 'execution-environments', popoverContent: '', - isDefaultEnvironment: false, - isGlobalDefaultEnvironment: false, value: null, projectId: null, organizationId: null, validate: () => undefined, fieldName: 'execution_environment', + overrideLabel: false, }; export default ExecutionEnvironmentLookup; diff --git a/awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.test.js b/awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.test.js index d110059a9b..ea6c82df81 100644 --- a/awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.test.js +++ b/awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.test.js @@ -54,7 +54,6 @@ describe('ExecutionEnvironmentLookup', () => { wrapper = mountWithContexts( {}} /> @@ -64,12 +63,9 @@ describe('ExecutionEnvironmentLookup', () => { wrapper.update(); expect(ExecutionEnvironmentsAPI.read).toHaveBeenCalledTimes(1); expect(wrapper.find('ExecutionEnvironmentLookup')).toHaveLength(1); - expect( - wrapper.find('FormGroup[label="Default Execution Environment"]').length - ).toBe(1); expect( wrapper.find('FormGroup[label="Execution Environment"]').length - ).toBe(0); + ).toBe(1); }); test('should fetch execution environments', async () => { diff --git a/awx/ui/src/components/Lookup/Lookup.js b/awx/ui/src/components/Lookup/Lookup.js index 4449cc85ea..357b607d6a 100644 --- a/awx/ui/src/components/Lookup/Lookup.js +++ b/awx/ui/src/components/Lookup/Lookup.js @@ -54,7 +54,6 @@ function Lookup(props) { } = props; const [typedText, setTypedText] = useState(''); const debounceRequest = useDebounce(onDebounce, 1000); - useField({ name: fieldName, validate: (val) => { @@ -79,6 +78,8 @@ function Lookup(props) { dispatch({ type: 'SET_VALUE', value }); if (value?.name) { setTypedText(value.name); + } else { + setTypedText(''); } }, [value, multiple]); diff --git a/awx/ui/src/screens/Setting/MiscSystem/MiscSystemEdit/MiscSystemEdit.js b/awx/ui/src/screens/Setting/MiscSystem/MiscSystemEdit/MiscSystemEdit.js index 37cc5ddce2..31d3dc14e7 100644 --- a/awx/ui/src/screens/Setting/MiscSystem/MiscSystemEdit/MiscSystemEdit.js +++ b/awx/ui/src/screens/Setting/MiscSystem/MiscSystemEdit/MiscSystemEdit.js @@ -1,6 +1,5 @@ import React, { useCallback, useEffect } from 'react'; import { useHistory } from 'react-router-dom'; -import { t } from '@lingui/macro'; import { Formik } from 'formik'; import { Form } from '@patternfly/react-core'; import { CardBody } from 'components/Card'; @@ -8,7 +7,6 @@ import ContentError from 'components/ContentError'; import ContentLoading from 'components/ContentLoading'; import { FormSubmitError } from 'components/FormField'; import { FormColumnLayout } from 'components/FormLayout'; -import { ExecutionEnvironmentLookup } from 'components/Lookup'; import { useSettings } from 'contexts/Settings'; import useModal from 'hooks/useModal'; import useRequest from 'hooks/useRequest'; @@ -16,6 +14,7 @@ import { SettingsAPI, ExecutionEnvironmentsAPI } from 'api'; import { BooleanField, EncryptedField, + ExecutionEnvField, InputField, ObjectField, RevertAllAlert, @@ -174,32 +173,9 @@ function MiscSystemEdit() { name="ACTIVITY_STREAM_ENABLED_FOR_INVENTORY_SYNC" config={system.ACTIVITY_STREAM_ENABLED_FOR_INVENTORY_SYNC} /> - - formik.setFieldTouched('DEFAULT_EXECUTION_ENVIRONMENT') - } - value={formik.values.DEFAULT_EXECUTION_ENVIRONMENT} - onChange={(value) => { - formik.setFieldValue( - 'DEFAULT_EXECUTION_ENVIRONMENT', - value - ); - formik.setFieldTouched( - 'DEFAULT_EXECUTION_ENVIRONMENT', - true, - false - ); - }} - popoverContent={t`The Execution Environment to be used when one has not been configured for a job template.`} - isGlobalDefaultEnvironment - fieldName="DEFAULT_EXECUTION_ENVIRONMENT" + { + const [field, meta, helpers] = useField({ name }); + return config ? ( + helpers.setValue(config.default)} + > + { + helpers.setValue(value, false); + }} + overrideLabel + fieldName={name} + /> + + ) : null; +}; +ExecutionEnvField.propTypes = { + name: string.isRequired, + config: shape({}).isRequired, +}; + const InputAlertField = ({ name, config }) => { const [field, meta] = useField({ name }); const isValid = !(meta.touched && meta.error); @@ -341,7 +371,6 @@ const InputField = ({ name, config, type = 'text', isRequired = false }) => { ]; const [field, meta] = useField({ name, validate: combine(validators) }); const isValid = !(meta.touched && meta.error); - return config ? (