mirror of
https://github.com/ansible/awx.git
synced 2026-03-22 19:35:02 -02:30
Merge pull request #3683 from mabashian/3565-workflow-template-popover
Leverages awPopOverWatch to generate popover dynamically on workflow node templates help Reviewed-by: https://github.com/softwarefactory-project-zuul[bot]
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
<div class="List-infoCell" ng-if="wf_maker_template.type === 'job_template'">
|
<div class="List-infoCell" ng-if="wf_maker_template.type === 'job_template'">
|
||||||
<span class="Key-icon Key-icon--circle Key-icon--default" aw-pop-over="<dl><dt>{{ 'INVENTORY' | translate }}</dt><dd>{{wf_maker_template.popOverDetails.inventory | sanitize}}</dd></dl><dl><dt>{{ 'PROJECT' | translate }}</dt><dd>{{wf_maker_template.popOverDetails.project | sanitize}}</dd></dl><dl><dt>{{ 'PLAYBOOK' | translate }}</dt><dd>{{wf_maker_template.popOverDetails.playbook | sanitize}}</dd></dl><dl><dt>{{ 'CREDENTIAL' | translate }}</dt> <dd>{{wf_maker_template.popOverDetails.credentials | sanitize}}</dd></dl>"
|
<span class="Key-icon Key-icon--circle Key-icon--default" aw-pop-over aw-pop-over-watch="wf_maker_template.popOver"
|
||||||
data-popover-title="{{wf_maker_template.name| sanitize}}">?</span>
|
data-popover-title="{{wf_maker_template.name| sanitize}}">?</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -886,7 +886,7 @@ function(SettingsUtils, i18n, $rootScope) {
|
|||||||
delay: 0,
|
delay: 0,
|
||||||
title: title,
|
title: title,
|
||||||
content: function() {
|
content: function() {
|
||||||
return scope[attrs.awPopOverWatch];
|
return _.get(scope, attrs.awPopOverWatch);
|
||||||
},
|
},
|
||||||
trigger: trigger,
|
trigger: trigger,
|
||||||
html: true,
|
html: true,
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
*************************************************/
|
*************************************************/
|
||||||
|
|
||||||
export default ['$scope', 'TemplatesService', 'JobTemplateModel', 'PromptService', 'Rest', '$q',
|
export default ['$scope', 'TemplatesService', 'JobTemplateModel', 'PromptService', 'Rest', '$q',
|
||||||
'TemplatesStrings', 'CreateSelect2', 'Empty', 'generateList', 'QuerySet',
|
'TemplatesStrings', 'CreateSelect2', 'Empty', 'QuerySet', '$filter',
|
||||||
'GetBasePath', 'TemplateList', 'ProjectList', 'InventorySourcesList', 'ProcessErrors',
|
'GetBasePath', 'TemplateList', 'ProjectList', 'InventorySourcesList', 'ProcessErrors',
|
||||||
'i18n', 'ParseTypeChange', 'WorkflowJobTemplateModel',
|
'i18n', 'ParseTypeChange', 'WorkflowJobTemplateModel',
|
||||||
function($scope, TemplatesService, JobTemplate, PromptService, Rest, $q,
|
function($scope, TemplatesService, JobTemplate, PromptService, Rest, $q,
|
||||||
TemplatesStrings, CreateSelect2, Empty, generateList, qs,
|
TemplatesStrings, CreateSelect2, Empty, qs, $filter,
|
||||||
GetBasePath, TemplateList, ProjectList, InventorySourcesList, ProcessErrors,
|
GetBasePath, TemplateList, ProjectList, InventorySourcesList, ProcessErrors,
|
||||||
i18n, ParseTypeChange, WorkflowJobTemplate
|
i18n, ParseTypeChange, WorkflowJobTemplate
|
||||||
) {
|
) {
|
||||||
@@ -657,25 +657,43 @@ export default ['$scope', 'TemplatesService', 'JobTemplateModel', 'PromptService
|
|||||||
};
|
};
|
||||||
|
|
||||||
const formatPopOverDetails = (model) => {
|
const formatPopOverDetails = (model) => {
|
||||||
model.popOverDetails = {};
|
const popOverDetails = {};
|
||||||
model.popOverDetails.playbook = model.playbook || i18n._('NONE SELECTED');
|
popOverDetails.playbook = model.playbook || i18n._('NONE SELECTED');
|
||||||
Object.keys(model.summary_fields).forEach(field => {
|
Object.keys(model.summary_fields).forEach(field => {
|
||||||
if (field === 'project') {
|
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') {
|
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 (field === 'credentials') {
|
||||||
if (model.summary_fields[field].length <= 0) {
|
if (model.summary_fields[field].length <= 0) {
|
||||||
model.popOverDetails.credentials = i18n._('NONE SELECTED');
|
popOverDetails.credentials = i18n._('NONE SELECTED');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const credentialNames = model.summary_fields[field].map(({name}) => name);
|
const credentialNames = model.summary_fields[field].map(({name}) => name);
|
||||||
model.popOverDetails.credentials = credentialNames.join('<br />');
|
popOverDetails.credentials = credentialNames.join('<br />');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
model.popOver = `
|
||||||
|
<dl>
|
||||||
|
<dt>${i18n._('INVENTORY')}</dt>
|
||||||
|
<dd>${$filter('sanitize')(popOverDetails.inventory)}</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>${i18n._('PROJECT')}</dt>
|
||||||
|
<dd>${$filter('sanitize')(popOverDetails.project)}</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>${i18n._('PLAYBOOK')}</dt>
|
||||||
|
<dd>${$filter('sanitize')(popOverDetails.playbook)}</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>${i18n._('CREDENTIAL')}</dt>
|
||||||
|
<dd>${$filter('sanitize')(popOverDetails.credentials)}</dd>
|
||||||
|
</dl>
|
||||||
|
`;
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.openPromptModal = () => {
|
$scope.openPromptModal = () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user