diff --git a/awx/ui/client/src/shared/list-generator/list-generator.factory.js b/awx/ui/client/src/shared/list-generator/list-generator.factory.js
index 92fb28cf71..ef4f2d68c0 100644
--- a/awx/ui/client/src/shared/list-generator/list-generator.factory.js
+++ b/awx/ui/client/src/shared/list-generator/list-generator.factory.js
@@ -494,6 +494,10 @@ export default ['$compile', 'Attr', 'Icon',
html += `>`;
}
+ if (options.mode === 'lookup' && options.lookupMessage) {
+ html = `
${options.lookupMessage}
` + html;
+ }
+
return html;
},
diff --git a/awx/ui/client/src/shared/stateDefinitions.factory.js b/awx/ui/client/src/shared/stateDefinitions.factory.js
index b8f46207db..2c54e901f7 100644
--- a/awx/ui/client/src/shared/stateDefinitions.factory.js
+++ b/awx/ui/client/src/shared/stateDefinitions.factory.js
@@ -806,13 +806,19 @@ function($injector, $stateExtender, $log, i18n) {
views: {
'modal': {
templateProvider: function(ListDefinition, generateList) {
- let list_html = generateList.build({
+ const listConfig = {
mode: 'lookup',
list: ListDefinition,
input_type: 'radio'
- });
- return `${list_html}`;
+ };
+ if (field.lookupMessage) {
+ listConfig.lookupMessage = field.lookupMessage;
+ }
+
+ let list_html = generateList.build(listConfig);
+
+ return `${list_html}`;
}
}
},
diff --git a/awx/ui/client/src/templates/prompt/steps/inventory/prompt-inventory.directive.js b/awx/ui/client/src/templates/prompt/steps/inventory/prompt-inventory.directive.js
index 4f6c4eed8d..4bf34ad35d 100644
--- a/awx/ui/client/src/templates/prompt/steps/inventory/prompt-inventory.directive.js
+++ b/awx/ui/client/src/templates/prompt/steps/inventory/prompt-inventory.directive.js
@@ -6,8 +6,8 @@
import promptInventoryController from './prompt-inventory.controller';
-export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$compile', 'InventoryList',
- (templateUrl, qs, GetBasePath, GenerateList, $compile, InventoryList) => {
+export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$compile', 'InventoryList', 'i18n',
+ (templateUrl, qs, GetBasePath, GenerateList, $compile, InventoryList, i18n) => {
return {
scope: {
promptData: '=',
@@ -46,11 +46,18 @@ export default [ 'templateUrl', 'QuerySet', 'GetBasePath', 'generateList', '$com
let invList = _.cloneDeep(InventoryList);
invList.disableRow = "{{ readOnlyPrompts }}";
invList.disableRowValue = "readOnlyPrompts";
- let html = GenerateList.build({
+
+ const listConfig = {
list: invList,
input_type: 'radio',
- mode: 'lookup'
- });
+ mode: 'lookup',
+ };
+
+ if (scope.promptData.templateType === "workflow_job_template") {
+ listConfig.lookupMessage = i18n._("This inventory is applied to all job templates nodes that prompt for an inventory.");
+ }
+
+ let html = GenerateList.build(listConfig);
scope.list = invList;
diff --git a/awx/ui/client/src/templates/workflows.form.js b/awx/ui/client/src/templates/workflows.form.js
index c1b10b4cab..751a0858fd 100644
--- a/awx/ui/client/src/templates/workflows.form.js
+++ b/awx/ui/client/src/templates/workflows.form.js
@@ -71,6 +71,7 @@ export default ['NotificationsList', 'i18n', function(NotificationsList, i18n) {
inventory: {
label: i18n._('Inventory'),
type: 'lookup',
+ lookupMessage: i18n._("This inventory is applied to all job templates nodes that prompt for an inventory."),
basePath: 'inventory',
list: 'InventoryList',
sourceModel: 'inventory',