diff --git a/awx/ui/src/screens/Setting/AzureAD/AzureADEdit/AzureADEdit.js b/awx/ui/src/screens/Setting/AzureAD/AzureADEdit/AzureADEdit.js
index cf728fc27d..bc3eadd1a1 100644
--- a/awx/ui/src/screens/Setting/AzureAD/AzureADEdit/AzureADEdit.js
+++ b/awx/ui/src/screens/Setting/AzureAD/AzureADEdit/AzureADEdit.js
@@ -94,10 +94,9 @@ function AzureADEdit() {
const initialValues = (fields) =>
Object.keys(fields).reduce((acc, key) => {
if (fields[key].type === 'list' || fields[key].type === 'nested object') {
- const emptyDefault = fields[key].type === 'list' ? '[]' : '{}';
acc[key] = fields[key].value
? JSON.stringify(fields[key].value, null, 2)
- : emptyDefault;
+ : null;
} else {
acc[key] = fields[key].value ?? '';
}
diff --git a/awx/ui/src/screens/Setting/GitHub/GitHubDetail/GitHubDetail.test.js b/awx/ui/src/screens/Setting/GitHub/GitHubDetail/GitHubDetail.test.js
index 3991192ba2..256f144459 100644
--- a/awx/ui/src/screens/Setting/GitHub/GitHubDetail/GitHubDetail.test.js
+++ b/awx/ui/src/screens/Setting/GitHub/GitHubDetail/GitHubDetail.test.js
@@ -147,8 +147,8 @@ describe('', () => {
);
assertDetail(wrapper, 'GitHub OAuth2 Key', 'mock github key');
assertDetail(wrapper, 'GitHub OAuth2 Secret', 'Encrypted');
- assertVariableDetail(wrapper, 'GitHub OAuth2 Organization Map', '{}');
- assertVariableDetail(wrapper, 'GitHub OAuth2 Team Map', '{}');
+ assertVariableDetail(wrapper, 'GitHub OAuth2 Organization Map', 'null');
+ assertVariableDetail(wrapper, 'GitHub OAuth2 Team Map', 'null');
});
test('should hide edit button from non-superusers', async () => {
@@ -226,12 +226,12 @@ describe('', () => {
assertVariableDetail(
wrapper,
'GitHub Organization OAuth2 Organization Map',
- '{}'
+ 'null'
);
assertVariableDetail(
wrapper,
'GitHub Organization OAuth2 Team Map',
- '{}'
+ 'null'
);
});
});
@@ -333,9 +333,13 @@ describe('', () => {
assertVariableDetail(
wrapper,
'GitHub Enterprise OAuth2 Organization Map',
- '{}'
+ 'null'
+ );
+ assertVariableDetail(
+ wrapper,
+ 'GitHub Enterprise OAuth2 Team Map',
+ 'null'
);
- assertVariableDetail(wrapper, 'GitHub Enterprise OAuth2 Team Map', '{}');
});
});
@@ -398,12 +402,12 @@ describe('', () => {
assertVariableDetail(
wrapper,
'GitHub Enterprise Organization OAuth2 Organization Map',
- '{}'
+ 'null'
);
assertVariableDetail(
wrapper,
'GitHub Enterprise Organization OAuth2 Team Map',
- '{}'
+ 'null'
);
});
});
@@ -463,12 +467,12 @@ describe('', () => {
assertVariableDetail(
wrapper,
'GitHub Enterprise Team OAuth2 Organization Map',
- '{}'
+ 'null'
);
assertVariableDetail(
wrapper,
'GitHub Enterprise Team OAuth2 Team Map',
- '{}'
+ 'null'
);
});
});
diff --git a/awx/ui/src/screens/Setting/GitHub/GitHubEdit/GitHubEdit.js b/awx/ui/src/screens/Setting/GitHub/GitHubEdit/GitHubEdit.js
index 107752bfc6..e936e1f224 100644
--- a/awx/ui/src/screens/Setting/GitHub/GitHubEdit/GitHubEdit.js
+++ b/awx/ui/src/screens/Setting/GitHub/GitHubEdit/GitHubEdit.js
@@ -92,10 +92,9 @@ function GitHubEdit() {
const initialValues = (fields) =>
Object.keys(fields).reduce((acc, key) => {
if (fields[key].type === 'list' || fields[key].type === 'nested object') {
- const emptyDefault = fields[key].type === 'list' ? '[]' : '{}';
acc[key] = fields[key].value
? JSON.stringify(fields[key].value, null, 2)
- : emptyDefault;
+ : null;
} else {
acc[key] = fields[key].value ?? '';
}
diff --git a/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseEdit/GitHubEnterpriseEdit.js b/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseEdit/GitHubEnterpriseEdit.js
index 02b8d5c434..4fa7d941b3 100644
--- a/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseEdit/GitHubEnterpriseEdit.js
+++ b/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseEdit/GitHubEnterpriseEdit.js
@@ -94,10 +94,9 @@ function GitHubEnterpriseEdit() {
const initialValues = (fields) =>
Object.keys(fields).reduce((acc, key) => {
if (fields[key].type === 'list' || fields[key].type === 'nested object') {
- const emptyDefault = fields[key].type === 'list' ? '[]' : '{}';
acc[key] = fields[key].value
? JSON.stringify(fields[key].value, null, 2)
- : emptyDefault;
+ : null;
} else {
acc[key] = fields[key].value ?? '';
}
diff --git a/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseEdit/GitHubEnterpriseEdit.test.js b/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseEdit/GitHubEnterpriseEdit.test.js
index 7179fbfa24..0f334e8365 100644
--- a/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseEdit/GitHubEnterpriseEdit.test.js
+++ b/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseEdit/GitHubEnterpriseEdit.test.js
@@ -133,7 +133,7 @@ describe('', () => {
SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL: '',
SOCIAL_AUTH_GITHUB_ENTERPRISE_KEY: '',
SOCIAL_AUTH_GITHUB_ENTERPRISE_SECRET: '',
- SOCIAL_AUTH_GITHUB_ENTERPRISE_TEAM_MAP: {},
+ SOCIAL_AUTH_GITHUB_ENTERPRISE_TEAM_MAP: null,
SOCIAL_AUTH_GITHUB_ENTERPRISE_ORGANIZATION_MAP: {
Default: {
users: false,
diff --git a/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseOrgEdit/GitHubEnterpriseOrgEdit.js b/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseOrgEdit/GitHubEnterpriseOrgEdit.js
index d914c46755..0f856558f5 100644
--- a/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseOrgEdit/GitHubEnterpriseOrgEdit.js
+++ b/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseOrgEdit/GitHubEnterpriseOrgEdit.js
@@ -94,10 +94,9 @@ function GitHubEnterpriseOrgEdit() {
const initialValues = (fields) =>
Object.keys(fields).reduce((acc, key) => {
if (fields[key].type === 'list' || fields[key].type === 'nested object') {
- const emptyDefault = fields[key].type === 'list' ? '[]' : '{}';
acc[key] = fields[key].value
? JSON.stringify(fields[key].value, null, 2)
- : emptyDefault;
+ : null;
} else {
acc[key] = fields[key].value ?? '';
}
diff --git a/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseOrgEdit/GitHubEnterpriseOrgEdit.test.js b/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseOrgEdit/GitHubEnterpriseOrgEdit.test.js
index 84dc3989dd..b6e55487c8 100644
--- a/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseOrgEdit/GitHubEnterpriseOrgEdit.test.js
+++ b/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseOrgEdit/GitHubEnterpriseOrgEdit.test.js
@@ -146,7 +146,7 @@ describe('', () => {
SOCIAL_AUTH_GITHUB_ENTERPRISE_ORG_KEY: '',
SOCIAL_AUTH_GITHUB_ENTERPRISE_ORG_SECRET: '',
SOCIAL_AUTH_GITHUB_ENTERPRISE_ORG_NAME: '',
- SOCIAL_AUTH_GITHUB_ENTERPRISE_ORG_TEAM_MAP: {},
+ SOCIAL_AUTH_GITHUB_ENTERPRISE_ORG_TEAM_MAP: null,
SOCIAL_AUTH_GITHUB_ENTERPRISE_ORG_ORGANIZATION_MAP: {
Default: {
users: false,
diff --git a/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseTeamEdit/GitHubEnterpriseTeamEdit.js b/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseTeamEdit/GitHubEnterpriseTeamEdit.js
index 6f638e7e16..8ba8dd176e 100644
--- a/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseTeamEdit/GitHubEnterpriseTeamEdit.js
+++ b/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseTeamEdit/GitHubEnterpriseTeamEdit.js
@@ -94,10 +94,9 @@ function GitHubEnterpriseTeamEdit() {
const initialValues = (fields) =>
Object.keys(fields).reduce((acc, key) => {
if (fields[key].type === 'list' || fields[key].type === 'nested object') {
- const emptyDefault = fields[key].type === 'list' ? '[]' : '{}';
acc[key] = fields[key].value
? JSON.stringify(fields[key].value, null, 2)
- : emptyDefault;
+ : null;
} else {
acc[key] = fields[key].value ?? '';
}
diff --git a/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseTeamEdit/GitHubEnterpriseTeamEdit.test.js b/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseTeamEdit/GitHubEnterpriseTeamEdit.test.js
index 6e460e246a..e54c14c1cd 100644
--- a/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseTeamEdit/GitHubEnterpriseTeamEdit.test.js
+++ b/awx/ui/src/screens/Setting/GitHub/GitHubEnterpriseTeamEdit/GitHubEnterpriseTeamEdit.test.js
@@ -140,7 +140,7 @@ describe('', () => {
SOCIAL_AUTH_GITHUB_ENTERPRISE_TEAM_KEY: '',
SOCIAL_AUTH_GITHUB_ENTERPRISE_TEAM_SECRET: '',
SOCIAL_AUTH_GITHUB_ENTERPRISE_TEAM_ID: '',
- SOCIAL_AUTH_GITHUB_ENTERPRISE_TEAM_TEAM_MAP: {},
+ SOCIAL_AUTH_GITHUB_ENTERPRISE_TEAM_TEAM_MAP: null,
SOCIAL_AUTH_GITHUB_ENTERPRISE_TEAM_ORGANIZATION_MAP: {
Default: {
users: false,
diff --git a/awx/ui/src/screens/Setting/GitHub/GitHubOrgEdit/GitHubOrgEdit.js b/awx/ui/src/screens/Setting/GitHub/GitHubOrgEdit/GitHubOrgEdit.js
index c2e8f83cd6..3b1beab537 100644
--- a/awx/ui/src/screens/Setting/GitHub/GitHubOrgEdit/GitHubOrgEdit.js
+++ b/awx/ui/src/screens/Setting/GitHub/GitHubOrgEdit/GitHubOrgEdit.js
@@ -94,10 +94,9 @@ function GitHubOrgEdit() {
const initialValues = (fields) =>
Object.keys(fields).reduce((acc, key) => {
if (fields[key].type === 'list' || fields[key].type === 'nested object') {
- const emptyDefault = fields[key].type === 'list' ? '[]' : '{}';
acc[key] = fields[key].value
? JSON.stringify(fields[key].value, null, 2)
- : emptyDefault;
+ : null;
} else {
acc[key] = fields[key].value ?? '';
}
diff --git a/awx/ui/src/screens/Setting/GitHub/GitHubOrgEdit/GitHubOrgEdit.test.js b/awx/ui/src/screens/Setting/GitHub/GitHubOrgEdit/GitHubOrgEdit.test.js
index 777eb698af..f8f99b3d25 100644
--- a/awx/ui/src/screens/Setting/GitHub/GitHubOrgEdit/GitHubOrgEdit.test.js
+++ b/awx/ui/src/screens/Setting/GitHub/GitHubOrgEdit/GitHubOrgEdit.test.js
@@ -122,7 +122,7 @@ describe('', () => {
SOCIAL_AUTH_GITHUB_ORG_KEY: '',
SOCIAL_AUTH_GITHUB_ORG_SECRET: '',
SOCIAL_AUTH_GITHUB_ORG_NAME: 'new org',
- SOCIAL_AUTH_GITHUB_ORG_TEAM_MAP: {},
+ SOCIAL_AUTH_GITHUB_ORG_TEAM_MAP: null,
SOCIAL_AUTH_GITHUB_ORG_ORGANIZATION_MAP: {
Default: {
users: false,
diff --git a/awx/ui/src/screens/Setting/GitHub/GitHubTeamEdit/GitHubTeamEdit.js b/awx/ui/src/screens/Setting/GitHub/GitHubTeamEdit/GitHubTeamEdit.js
index b4506c667b..d12d6baae7 100644
--- a/awx/ui/src/screens/Setting/GitHub/GitHubTeamEdit/GitHubTeamEdit.js
+++ b/awx/ui/src/screens/Setting/GitHub/GitHubTeamEdit/GitHubTeamEdit.js
@@ -94,10 +94,9 @@ function GitHubTeamEdit() {
const initialValues = (fields) =>
Object.keys(fields).reduce((acc, key) => {
if (fields[key].type === 'list' || fields[key].type === 'nested object') {
- const emptyDefault = fields[key].type === 'list' ? '[]' : '{}';
acc[key] = fields[key].value
? JSON.stringify(fields[key].value, null, 2)
- : emptyDefault;
+ : null;
} else {
acc[key] = fields[key].value ?? '';
}
diff --git a/awx/ui/src/screens/Setting/GoogleOAuth2/GoogleOAuth2Edit/GoogleOAuth2Edit.js b/awx/ui/src/screens/Setting/GoogleOAuth2/GoogleOAuth2Edit/GoogleOAuth2Edit.js
index 8da9e8f583..3fa679beeb 100644
--- a/awx/ui/src/screens/Setting/GoogleOAuth2/GoogleOAuth2Edit/GoogleOAuth2Edit.js
+++ b/awx/ui/src/screens/Setting/GoogleOAuth2/GoogleOAuth2Edit/GoogleOAuth2Edit.js
@@ -100,10 +100,9 @@ function GoogleOAuth2Edit() {
const initialValues = (fields) =>
Object.keys(fields).reduce((acc, key) => {
if (fields[key].type === 'list' || fields[key].type === 'nested object') {
- const emptyDefault = fields[key].type === 'list' ? '[]' : '{}';
acc[key] = fields[key].value
? JSON.stringify(fields[key].value, null, 2)
- : emptyDefault;
+ : null;
} else {
acc[key] = fields[key].value ?? '';
}
diff --git a/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js b/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js
index 1e6d8cef73..fec8d6cdb8 100644
--- a/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js
+++ b/awx/ui/src/screens/Setting/Jobs/JobsEdit/JobsEdit.js
@@ -103,10 +103,9 @@ function JobsEdit() {
const initialValues = (fields) =>
Object.keys(fields).reduce((acc, key) => {
if (fields[key].type === 'list' || fields[key].type === 'nested object') {
- const emptyDefault = fields[key].type === 'list' ? '[]' : '{}';
acc[key] = fields[key].value
? JSON.stringify(fields[key].value, null, 2)
- : emptyDefault;
+ : null;
} else {
acc[key] = fields[key].value ?? '';
}
diff --git a/awx/ui/src/screens/Setting/LDAP/LDAPEdit/LDAPEdit.js b/awx/ui/src/screens/Setting/LDAP/LDAPEdit/LDAPEdit.js
index 22929f65b9..22e00db54e 100644
--- a/awx/ui/src/screens/Setting/LDAP/LDAPEdit/LDAPEdit.js
+++ b/awx/ui/src/screens/Setting/LDAP/LDAPEdit/LDAPEdit.js
@@ -146,10 +146,9 @@ function LDAPEdit() {
const initialValues = (fields) =>
Object.keys(fields).reduce((acc, key) => {
if (fields[key].type === 'list' || fields[key].type === 'nested object') {
- const emptyDefault = fields[key].type === 'list' ? '[]' : '{}';
acc[key] = fields[key].value
? JSON.stringify(fields[key].value, null, 2)
- : emptyDefault;
+ : null;
} else {
acc[key] = fields[key].value ?? '';
}
diff --git a/awx/ui/src/screens/Setting/MiscAuthentication/MiscAuthenticationEdit/MiscAuthenticationEdit.js b/awx/ui/src/screens/Setting/MiscAuthentication/MiscAuthenticationEdit/MiscAuthenticationEdit.js
index 6fb9f6c919..f19807e842 100644
--- a/awx/ui/src/screens/Setting/MiscAuthentication/MiscAuthenticationEdit/MiscAuthenticationEdit.js
+++ b/awx/ui/src/screens/Setting/MiscAuthentication/MiscAuthenticationEdit/MiscAuthenticationEdit.js
@@ -164,10 +164,9 @@ function MiscAuthenticationEdit() {
const initialValues = (fields) =>
Object.keys(fields).reduce((acc, key) => {
if (fields[key].type === 'list' || fields[key].type === 'nested object') {
- const emptyDefault = fields[key].type === 'list' ? '[]' : '{}';
acc[key] = fields[key].value
? JSON.stringify(fields[key].value, null, 2)
- : emptyDefault;
+ : null;
} else {
acc[key] = fields[key].value ?? '';
}
diff --git a/awx/ui/src/screens/Setting/MiscAuthentication/MiscAuthenticationEdit/MiscAuthenticationEdit.test.js b/awx/ui/src/screens/Setting/MiscAuthentication/MiscAuthenticationEdit/MiscAuthenticationEdit.test.js
index b3cbd31db2..cf00ea5716 100644
--- a/awx/ui/src/screens/Setting/MiscAuthentication/MiscAuthenticationEdit/MiscAuthenticationEdit.test.js
+++ b/awx/ui/src/screens/Setting/MiscAuthentication/MiscAuthenticationEdit/MiscAuthenticationEdit.test.js
@@ -29,9 +29,9 @@ const authenticationData = {
'awx.sso.backends.TACACSPlusBackend',
'awx.main.backends.AWXModelBackend',
],
- SOCIAL_AUTH_ORGANIZATION_MAP: {},
- SOCIAL_AUTH_TEAM_MAP: {},
- SOCIAL_AUTH_USER_FIELDS: [],
+ SOCIAL_AUTH_ORGANIZATION_MAP: null,
+ SOCIAL_AUTH_TEAM_MAP: null,
+ SOCIAL_AUTH_USER_FIELDS: null,
};
describe('', () => {
diff --git a/awx/ui/src/screens/Setting/SAML/SAMLEdit/SAMLEdit.js b/awx/ui/src/screens/Setting/SAML/SAMLEdit/SAMLEdit.js
index 46db9eda90..17202503a2 100644
--- a/awx/ui/src/screens/Setting/SAML/SAMLEdit/SAMLEdit.js
+++ b/awx/ui/src/screens/Setting/SAML/SAMLEdit/SAMLEdit.js
@@ -112,10 +112,9 @@ function SAMLEdit() {
const initialValues = (fields) =>
Object.keys(fields).reduce((acc, key) => {
if (fields[key].type === 'list' || fields[key].type === 'nested object') {
- const emptyDefault = fields[key].type === 'list' ? '[]' : '{}';
acc[key] = fields[key].value
? JSON.stringify(fields[key].value, null, 2)
- : emptyDefault;
+ : null;
} else {
acc[key] = fields[key].value ?? '';
}
diff --git a/awx/ui/src/screens/Setting/shared/SettingDetail.js b/awx/ui/src/screens/Setting/shared/SettingDetail.js
index dca91d0cef..c133bfbe06 100644
--- a/awx/ui/src/screens/Setting/shared/SettingDetail.js
+++ b/awx/ui/src/screens/Setting/shared/SettingDetail.js
@@ -5,7 +5,7 @@ import { Detail } from 'components/DetailList';
import CodeDetail from 'components/DetailList/CodeDetail';
function sortObj(obj) {
- if (typeof obj !== 'object' || Array.isArray(obj)) {
+ if (typeof obj !== 'object' || Array.isArray(obj) || obj === null) {
return obj;
}
const sorted = {};
@@ -30,7 +30,7 @@ export default ({ helpText, id, label, type, unit = '', value }) => {
label={label}
mode="javascript"
rows={4}
- value={JSON.stringify(sortObj(value || {}), undefined, 2)}
+ value={JSON.stringify(sortObj(value), undefined, 2)}
/>
);
break;
@@ -42,7 +42,7 @@ export default ({ helpText, id, label, type, unit = '', value }) => {
label={label}
mode="javascript"
rows={4}
- value={JSON.stringify(value || [], undefined, 2)}
+ value={JSON.stringify(value, undefined, 2)}
/>
);
break;
diff --git a/awx/ui/src/screens/Setting/shared/SharedFields.js b/awx/ui/src/screens/Setting/shared/SharedFields.js
index 887547186b..d085761a93 100644
--- a/awx/ui/src/screens/Setting/shared/SharedFields.js
+++ b/awx/ui/src/screens/Setting/shared/SharedFields.js
@@ -440,10 +440,8 @@ const ObjectField = ({ name, config, isRequired = false }) => {
const [field, meta, helpers] = useField({ name, validate });
const isValid = !(meta.touched && meta.error);
- const emptyDefault = config?.type === 'list' ? '[]' : '{}';
- const defaultRevertValue = config?.default
- ? JSON.stringify(config.default, null, 2)
- : emptyDefault;
+ const defaultRevertValue =
+ config?.default !== null ? JSON.stringify(config.default, null, 2) : null;
return config ? (
@@ -458,7 +456,12 @@ const ObjectField = ({ name, config, isRequired = false }) => {
>
{