diff --git a/awx/ui_next/src/components/FormField/FormSubmitError.jsx b/awx/ui_next/src/components/FormField/FormSubmitError.jsx index 6dd5db1c32..65621cf581 100644 --- a/awx/ui_next/src/components/FormField/FormSubmitError.jsx +++ b/awx/ui_next/src/components/FormField/FormSubmitError.jsx @@ -15,6 +15,8 @@ function FormSubmitError({ error }) { setErrors(errorMessages); if (errorMessages.__all__) { setErrorMessage(errorMessages.__all__); + } else if (errorMessages.detail) { + setErrorMessage(errorMessages.detail); } else { setErrorMessage(null); } diff --git a/awx/ui_next/src/components/ResourceAccessList/ResourceAccessList.jsx b/awx/ui_next/src/components/ResourceAccessList/ResourceAccessList.jsx index e321a14b2b..6ba012bc9b 100644 --- a/awx/ui_next/src/components/ResourceAccessList/ResourceAccessList.jsx +++ b/awx/ui_next/src/components/ResourceAccessList/ResourceAccessList.jsx @@ -203,7 +203,7 @@ class ResourceAccessList extends React.Component { onClick={this.handleAddOpen} />, ] - : null + : [] } /> )} diff --git a/awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx b/awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx index 300627247d..f8a1950490 100644 --- a/awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx +++ b/awx/ui_next/src/screens/Project/ProjectAdd/ProjectAdd.jsx @@ -13,6 +13,13 @@ function ProjectAdd() { if (values.scm_type === 'manual') { values.scm_type = ''; } + if (!values.credential) { + // Depending on the permissions of the user submitting the form, + // the API might throw an unexpected error if our creation request + // has a zero-length string as its credential field. As a work-around, + // normalize falsey credential fields by deleting them. + delete values.credential; + } setFormSubmitError(null); try { const { diff --git a/awx/ui_next/src/screens/Project/ProjectEdit/ProjectEdit.jsx b/awx/ui_next/src/screens/Project/ProjectEdit/ProjectEdit.jsx index bde5500cb6..94fcaf3edc 100644 --- a/awx/ui_next/src/screens/Project/ProjectEdit/ProjectEdit.jsx +++ b/awx/ui_next/src/screens/Project/ProjectEdit/ProjectEdit.jsx @@ -13,6 +13,13 @@ function ProjectEdit({ project }) { if (values.scm_type === 'manual') { values.scm_type = ''; } + if (!values.credential) { + // Depending on the permissions of the user submitting the form, + // the API might throw an unexpected error if our creation request + // has a zero-length string as its credential field. As a work-around, + // normalize falsey credential fields by deleting them. + delete values.credential; + } try { const { data: { id },