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 ? (