diff --git a/awx/ui/client/src/partials/job-template-details.html b/awx/ui/client/src/partials/job-template-details.html
index a494140fe5..eea30da523 100644
--- a/awx/ui/client/src/partials/job-template-details.html
+++ b/awx/ui/client/src/partials/job-template-details.html
@@ -1,4 +1,4 @@
- ?
diff --git a/awx/ui/client/src/shared/directives.js b/awx/ui/client/src/shared/directives.js
index fe089b793f..9f46002506 100644
--- a/awx/ui/client/src/shared/directives.js
+++ b/awx/ui/client/src/shared/directives.js
@@ -886,7 +886,7 @@ function(SettingsUtils, i18n, $rootScope) {
delay: 0,
title: title,
content: function() {
- return scope[attrs.awPopOverWatch];
+ return _.get(scope, attrs.awPopOverWatch);
},
trigger: trigger,
html: true,
diff --git a/awx/ui/client/src/templates/workflows/workflow-maker/forms/workflow-node-form.controller.js b/awx/ui/client/src/templates/workflows/workflow-maker/forms/workflow-node-form.controller.js
index fc4fa837b1..a35f0e9531 100644
--- a/awx/ui/client/src/templates/workflows/workflow-maker/forms/workflow-node-form.controller.js
+++ b/awx/ui/client/src/templates/workflows/workflow-maker/forms/workflow-node-form.controller.js
@@ -5,11 +5,11 @@
*************************************************/
export default ['$scope', 'TemplatesService', 'JobTemplateModel', 'PromptService', 'Rest', '$q',
- 'TemplatesStrings', 'CreateSelect2', 'Empty', 'generateList', 'QuerySet',
+ 'TemplatesStrings', 'CreateSelect2', 'Empty', 'QuerySet', '$filter',
'GetBasePath', 'TemplateList', 'ProjectList', 'InventorySourcesList', 'ProcessErrors',
'i18n', 'ParseTypeChange', 'WorkflowJobTemplateModel',
function($scope, TemplatesService, JobTemplate, PromptService, Rest, $q,
- TemplatesStrings, CreateSelect2, Empty, generateList, qs,
+ TemplatesStrings, CreateSelect2, Empty, qs, $filter,
GetBasePath, TemplateList, ProjectList, InventorySourcesList, ProcessErrors,
i18n, ParseTypeChange, WorkflowJobTemplate
) {
@@ -657,25 +657,43 @@ export default ['$scope', 'TemplatesService', 'JobTemplateModel', 'PromptService
};
const formatPopOverDetails = (model) => {
- model.popOverDetails = {};
- model.popOverDetails.playbook = model.playbook || i18n._('NONE SELECTED');
+ const popOverDetails = {};
+ popOverDetails.playbook = model.playbook || i18n._('NONE SELECTED');
Object.keys(model.summary_fields).forEach(field => {
if (field === 'project') {
- model.popOverDetails.project = model.summary_fields[field].name || i18n._('NONE SELECTED');
+ popOverDetails.project = model.summary_fields[field].name || i18n._('NONE SELECTED');
}
if (field === 'inventory') {
- model.popOverDetails.inventory = model.summary_fields[field].name || i18n._('NONE SELECTED');
+ popOverDetails.inventory = model.summary_fields[field].name || i18n._('NONE SELECTED');
}
if (field === 'credentials') {
if (model.summary_fields[field].length <= 0) {
- model.popOverDetails.credentials = i18n._('NONE SELECTED');
+ popOverDetails.credentials = i18n._('NONE SELECTED');
}
else {
const credentialNames = model.summary_fields[field].map(({name}) => name);
- model.popOverDetails.credentials = credentialNames.join('
');
+ popOverDetails.credentials = credentialNames.join('
');
}
}
});
+ model.popOver = `
+
+ - ${i18n._('INVENTORY')}
+ - ${$filter('sanitize')(popOverDetails.inventory)}
+
+
+ - ${i18n._('PROJECT')}
+ - ${$filter('sanitize')(popOverDetails.project)}
+
+
+ - ${i18n._('PLAYBOOK')}
+ - ${$filter('sanitize')(popOverDetails.playbook)}
+
+
+ - ${i18n._('CREDENTIAL')}
+ - ${$filter('sanitize')(popOverDetails.credentials)}
+
+ `;
};
$scope.openPromptModal = () => {