summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-05-23 20:38:30 -0500
committerKamil Trzcinski <ayufan@ayufan.eu>2016-05-23 21:59:07 -0500
commitcdec9e472db581acbee72cdcaa703e4155cb4cfb (patch)
tree4ffea09db574c2fab93373abdc398137df40a192
parent46de0366b1cc50e67747a457810a54e679bec151 (diff)
downloadgitlab-ce-cdec9e472db581acbee72cdcaa703e4155cb4cfb.tar.gz
Replace \n to <br>
-rw-r--r--app/assets/javascripts/ci/build.coffee6
-rw-r--r--lib/ci/ansi2html.rb4
-rw-r--r--spec/lib/ci/ansi2html_spec.rb9
3 files changed, 16 insertions, 3 deletions
diff --git a/app/assets/javascripts/ci/build.coffee b/app/assets/javascripts/ci/build.coffee
index d700742e4a9..98d05e41273 100644
--- a/app/assets/javascripts/ci/build.coffee
+++ b/app/assets/javascripts/ci/build.coffee
@@ -33,8 +33,10 @@ class CiBuild
url: build_url + "/trace.json?state=" + encodeURIComponent(@state)
dataType: "json"
success: (log) =>
- if last_state is @state and log.status is "running"
- @state = if log.state then log.state else ""
+ return unless last_state is @state
+
+ if log.state and log.status is "running"
+ @state = log.state
if log.append
$('.fa-refresh').before log.html
else
diff --git a/lib/ci/ansi2html.rb b/lib/ci/ansi2html.rb
index c628257e3f4..229050151d3 100644
--- a/lib/ci/ansi2html.rb
+++ b/lib/ci/ansi2html.rb
@@ -90,7 +90,7 @@ module Ci
def convert(raw, new_state)
reset_state
- restore_state(raw, new_state) if new_state
+ restore_state(raw, new_state) if new_state.present?
start = @offset
ansi = raw[@offset..-1]
@@ -105,6 +105,8 @@ module Ci
break
elsif s.scan(/</)
@out << '&lt;'
+ elsif s.scan(/\n/)
+ @out << '<br>'
else
@out << s.scan(/./m)
end
diff --git a/spec/lib/ci/ansi2html_spec.rb b/spec/lib/ci/ansi2html_spec.rb
index 04afbd06929..898f1e84ab0 100644
--- a/spec/lib/ci/ansi2html_spec.rb
+++ b/spec/lib/ci/ansi2html_spec.rb
@@ -175,5 +175,14 @@ describe Ci::Ansi2html, lib: true do
it_behaves_like 'stateable converter'
end
+
+ context 'with new line' do
+ let(:pre_text) { "Hello\r" }
+ let(:pre_html) { "Hello\r" }
+ let(:text) { "\nWorld" }
+ let(:html) { "<br>World" }
+
+ it_behaves_like 'stateable converter'
+ end
end
end