diff --git a/awx/ui/client/src/job-results/parse-stdout.service.js b/awx/ui/client/src/job-results/parse-stdout.service.js index b8830d07a9..2c13881ad6 100644 --- a/awx/ui/client/src/job-results/parse-stdout.service.js +++ b/awx/ui/client/src/job-results/parse-stdout.service.js @@ -36,6 +36,7 @@ export default ['$log', 'moment', function($log, moment){ line = line.replace(/\[0;33m/g, ''); line = line.replace(/\[0;34m/g, ''); line = line.replace(/\[0;35m/g, ''); + line = line.replace(/\[1;35m/g, ''); line = line.replace(/\[0;36m/g, ''); line = line.replace(/()\s/g, '$1'); @@ -198,6 +199,43 @@ export default ['$log', 'moment', function($log, moment){ return emptySpan; } }, + distributeColors: function(lines) { + var colorCode; + return lines.map(line => { + + if (colorCode) { + line = colorCode + line; + } + + if (line.indexOf("[0m") === -1) { + if (line.indexOf("[1;31m") > -1) { + colorCode = "[1;31m"; + } else if (line.indexOf("[0;31m") > -1) { + colorCode = "[0;31m"; + } else if (line.indexOf("[0;32m=") > -1) { + colorCode = "[0;32m="; + } else if (line.indexOf("[0;32m1") > -1) { + colorCode = "[0;32m1"; + } else if (line.indexOf("[0;32m") > -1) { + colorCode = "[0;32m"; + } else if (line.indexOf("[0;33m") > -1) { + colorCode = "[0;33m"; + } else if (line.indexOf("[0;34m") > -1) { + colorCode = "[0;34m"; + } else if (line.indexOf("[0;35m") > -1) { + colorCode = "[0;35m"; + } else if (line.indexOf("[1;35m") > -1) { + colorCode = "[1;35m"; + } else if (line.indexOf("[0;36m") > -1) { + colorCode = "[0;36m"; + } + } else { + colorCode = null; + } + + return line; + }); + }, getLineArr: function(event) { let lineNums = _.range(event.start_line + 1, event.end_line + 1); @@ -219,6 +257,8 @@ export default ['$log', 'moment', function($log, moment){ } } + lines = this.distributeColors(lines); + // hack around no-carriage return issues if (lineNums.length === lines.length) { return _.zip(lineNums, lines);