diff --git a/awx/ui/static/css/ansible-ui.css b/awx/ui/static/css/ansible-ui.css index 3f67846fd2..f1f0bb05be 100644 --- a/awx/ui/static/css/ansible-ui.css +++ b/awx/ui/static/css/ansible-ui.css @@ -514,8 +514,10 @@ min-width: 200px; } - - + .event-detail { + margin-top: 15px; + } + /* form displayed in modal window */ .horizontal-narrow .control-label { diff --git a/awx/ui/static/js/helpers/Children.js b/awx/ui/static/js/helpers/Children.js index f2ad38b5e2..93921f0c6c 100644 --- a/awx/ui/static/js/helpers/Children.js +++ b/awx/ui/static/js/helpers/Children.js @@ -22,6 +22,35 @@ angular.module('ChildrenHelper', ['RestServices', 'Utilities']) return lvl * 24; } + function formatJSON(eventData) { + //turn JSON event data into an html form + var html = ''; + if (eventData.res) { + var found = false; + for (var fld in eventData.res) { + if ( (fld == 'msg' || fld == 'stdout' || fld == 'stderr') && + (eventData.res[fld] !== null && eventData.res[fld] !== '') ) { + html += "\n"; + html += "\n"; + found = true; + } + } + html = (found) ? "
\n" + html + "
\n" : ''; + } + html = (html == '' ) ? null : html; + return html; + } + // Scan the array list and find the clicked element var clicked; var found = false; @@ -58,8 +87,10 @@ angular.module('ChildrenHelper', ['RestServices', 'Utilities']) } else { data.results[j]['class'] = 'childNode'; + // For child nodes, include some of the even_data detail, but in a nicer non-JSONy format + data.results[j]['event_detail'] = formatJSON(data.results[j]['event_data']); } - if (data.results[j]['event_data']['res'] && data.results[j]['event_data']['res']['msg']) { + /*if (data.results[j]['event_data']['res'] && data.results[j]['event_data']['res']['msg']) { // Display the actual result message data.results[j]['event_display'] = data.results[j]['event_data']['res']['msg']; } @@ -73,6 +104,7 @@ angular.module('ChildrenHelper', ['RestServices', 'Utilities']) data.results[j]['event_display'] += key + ": " + count + " "; } } + */ if (clicked == (set.length - 1)) { set.push(data.results[j]); } diff --git a/awx/ui/static/js/lists/JobEvents.js b/awx/ui/static/js/lists/JobEvents.js index defbf8fbc9..85a037f044 100644 --- a/awx/ui/static/js/lists/JobEvents.js +++ b/awx/ui/static/js/lists/JobEvents.js @@ -41,7 +41,8 @@ angular.module('JobEventsListDefinition', []) ngClick: "toggleChildren(\{\{ jobevent.id \}\}, '\{\{ jobevent.related.children \}\}')", nosort: true, searchable: false, - ngClass: '\{\{ jobevent.class \}\}' + ngClass: '\{\{ jobevent.class \}\}', + appendHTML: 'jobevent.event_detail' }, host: { label: 'Host', diff --git a/awx/ui/static/lib/ansible/generator-helpers.js b/awx/ui/static/lib/ansible/generator-helpers.js index 981dc3ae6f..d911295087 100644 --- a/awx/ui/static/lib/ansible/generator-helpers.js +++ b/awx/ui/static/lib/ansible/generator-helpers.js @@ -147,6 +147,12 @@ angular.module('GeneratorHelpers', ['GeneratorHelpers']) // close ngShow html += (field.ngShow) ? "" : ""; + + // Specific to Job Events page -showing event detail/results + html += (field.appendHTML) ? "
\n" : ""; return html += "\n";