diff --git a/awx/ui/client/src/job-results/job-results.controller.js b/awx/ui/client/src/job-results/job-results.controller.js index 570a38893d..aae648ccc6 100644 --- a/awx/ui/client/src/job-results/job-results.controller.js +++ b/awx/ui/client/src/job-results/job-results.controller.js @@ -299,6 +299,28 @@ function(jobData, jobDataOptions, jobLabels, jobFinished, count, $scope, ParseTy if(change === 'stdout'){ // put stdout elements in stdout container + + var appendToBottom = function(mungedEvent){ + // if we get here then the event type was either a + // header line, recap line, or one of the additional + // event types, so we append it to the bottom. + // These are the event types for captured + // stdout not directly related to playbook or runner + // events: + // (0, 'debug', _('Debug'), False), + // (0, 'verbose', _('Verbose'), False), + // (0, 'deprecated', _('Deprecated'), False), + // (0, 'warning', _('Warning'), False), + // (0, 'system_warning', _('System Warning'), False), + // (0, 'error', _('Error'), True), + angular + .element(".JobResultsStdOut-stdoutContainer") + .append($compile(mungedEvent + .stdout)($scope.events[mungedEvent + .counter])); + }; + + // this scopes the event to that particular // block of stdout. // If you need to see the event a particular @@ -308,7 +330,7 @@ function(jobData, jobDataOptions, jobLabels, jobFinished, count, $scope, ParseTy $scope.events[mungedEvent.counter] .event = mungedEvent; - if (mungedEvent.stdout.indexOf("not_skeleton") > -1) { + if (mungedEvent.stdout.indexOf("not_skeleton")) { // put non-duplicate lines into the standard // out pane where they should go (within the // right header section, before the next line @@ -323,9 +345,13 @@ function(jobData, jobDataOptions, jobLabels, jobFinished, count, $scope, ParseTy .length) { putIn = classList .filter(v => v.indexOf("task_") > -1)[0]; - } else { + } else if(classList + .filter(v => v.indexOf("play_") > -1) + .length) { putIn = classList .filter(v => v.indexOf("play_") > -1)[0]; + } else { + appendToBottom(mungedEvent); } var putAfter; @@ -354,16 +380,11 @@ function(jobData, jobDataOptions, jobLabels, jobFinished, count, $scope, ParseTy .counter])); } + classList = null; putIn = null; } else { - // this is a header or recap line, so just - // append to the bottom - angular - .element(".JobResultsStdOut-stdoutContainer") - .append($compile(mungedEvent - .stdout)($scope.events[mungedEvent - .counter])); + appendToBottom(mungedEvent); } // move the followAnchor to the bottom of the