diff --git a/awx/ui_next/src/screens/Template/JobTemplateDetail/JobTemplateDetail.jsx b/awx/ui_next/src/screens/Template/JobTemplateDetail/JobTemplateDetail.jsx
index 44390be54d..94955e78f5 100644
--- a/awx/ui_next/src/screens/Template/JobTemplateDetail/JobTemplateDetail.jsx
+++ b/awx/ui_next/src/screens/Template/JobTemplateDetail/JobTemplateDetail.jsx
@@ -196,12 +196,7 @@ class JobTemplateDetail extends Component {
) : (
renderMissingDataDetail(i18n._(t`Project`))
)}
- {template.scm_branch && (
-
- )}
+
diff --git a/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.test.jsx b/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.test.jsx
index e7750e2a87..3299476322 100644
--- a/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.test.jsx
+++ b/awx/ui_next/src/screens/Template/JobTemplateEdit/JobTemplateEdit.test.jsx
@@ -161,6 +161,11 @@ describe('', () => {
JobTemplatesAPI.readInstanceGroups.mockReturnValue({
data: { results: mockInstanceGroups },
});
+ ProjectsAPI.readDetail.mockReturnValue({
+ id: 1,
+ allow_override: true,
+ name: 'foo',
+ });
});
afterEach(() => {
diff --git a/awx/ui_next/src/screens/Template/shared/JobTemplateForm.jsx b/awx/ui_next/src/screens/Template/shared/JobTemplateForm.jsx
index 74d5687f25..4d3242d2d0 100644
--- a/awx/ui_next/src/screens/Template/shared/JobTemplateForm.jsx
+++ b/awx/ui_next/src/screens/Template/shared/JobTemplateForm.jsx
@@ -28,7 +28,7 @@ import {
ProjectLookup,
MultiCredentialsLookup,
} from '@components/Lookup';
-import { JobTemplatesAPI } from '@api';
+import { JobTemplatesAPI, ProjectsAPI } from '@api';
import LabelSelect from './LabelSelect';
import PlaybookSelect from './PlaybookSelect';
@@ -81,16 +81,31 @@ class JobTemplateForm extends Component {
this.loadRelatedInstanceGroups = this.loadRelatedInstanceGroups.bind(this);
this.handleProjectUpdate = this.handleProjectUpdate.bind(this);
this.setContentError = this.setContentError.bind(this);
+ this.fetchProject = this.fetchProject.bind(this);
}
componentDidMount() {
const { validateField } = this.props;
this.setState({ contentError: null, hasContentLoading: true });
// TODO: determine when LabelSelect has finished loading labels
- Promise.all([this.loadRelatedInstanceGroups()]).then(() => {
- this.setState({ hasContentLoading: false });
- validateField('project');
- });
+ Promise.all([this.loadRelatedInstanceGroups(), this.fetchProject()]).then(
+ () => {
+ this.setState({ hasContentLoading: false });
+ validateField('project');
+ }
+ );
+ }
+
+ async fetchProject() {
+ const { project } = this.state;
+ if (project && project.id) {
+ try {
+ const { data } = await ProjectsAPI.readDetail(project.id);
+ this.setState({ project: data });
+ } catch (err) {
+ this.setState({ contentError: err });
+ }
+ }
}
async loadRelatedInstanceGroups() {
diff --git a/awx/ui_next/src/screens/Template/shared/JobTemplateForm.test.jsx b/awx/ui_next/src/screens/Template/shared/JobTemplateForm.test.jsx
index 41d218c01a..7deb756399 100644
--- a/awx/ui_next/src/screens/Template/shared/JobTemplateForm.test.jsx
+++ b/awx/ui_next/src/screens/Template/shared/JobTemplateForm.test.jsx
@@ -27,7 +27,6 @@ describe('', () => {
project: {
id: 3,
name: 'qux',
- allow_override: true,
},
labels: { results: [{ name: 'Sushi', id: 1 }, { name: 'Major', id: 2 }] },
credentials: [
@@ -90,6 +89,11 @@ describe('', () => {
ProjectsAPI.readPlaybooks.mockReturnValue({
data: ['debug.yml'],
});
+ ProjectsAPI.readDetail.mockReturnValue({
+ name: 'foo',
+ id: 1,
+ allow_override: true,
+ });
});
afterEach(() => {