From d570dc6e37d9049d27f638640c461e1d475910b6 Mon Sep 17 00:00:00 2001 From: John Mitchell Date: Thu, 9 Feb 2017 11:04:48 -0500 Subject: [PATCH 1/2] distribute colors if escape sequence isn't in line --- .../src/job-results/parse-stdout.service.js | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) 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..3b937a04a2 100644 --- a/awx/ui/client/src/job-results/parse-stdout.service.js +++ b/awx/ui/client/src/job-results/parse-stdout.service.js @@ -198,6 +198,41 @@ 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("[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 +254,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); From 2f96939792bac9aa48d4db1be4ddb58796519401 Mon Sep 17 00:00:00 2001 From: John Mitchell Date: Thu, 9 Feb 2017 11:29:22 -0500 Subject: [PATCH 2/2] add new color escape code --- awx/ui/client/src/job-results/parse-stdout.service.js | 3 +++ 1 file changed, 3 insertions(+) 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 3b937a04a2..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'); @@ -223,6 +224,8 @@ export default ['$log', 'moment', function($log, moment){ 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"; }