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',