Commit 820c1c3a authored by Jacob Schatz's avatar Jacob Schatz Committed by Yorick Peterse

Merge branch 'incremental-fixes' into 'master'

Fix concurrent request when updating build log in browser

If you have a slow internet connection the trace will not be updated correctly. We need to check if our request is the latest one.

Fixes: https://gitlab.com/gitlab-org/gitlab-ce/issues/17535

See merge request !4183
parent 4e8798ee
......@@ -10,6 +10,15 @@ v 8.8.2
- Fixed issue with merge button color. !4211
- Fixed issue with enter key selecting wrong option in dropdown. !4210
- When creating a .gitignore file a dropdown with templates will be provided. !4075
v 8.9.0 (unreleased)
- Redesign navigation for project pages
- Use gitlab-shell v3.0.0
- Changed the Slack build message to use the singular duration if necessary (Aran Koning)
v 8.8.2 (unreleased)
- Fix Error 500 when accessing application settings due to nil disabled OAuth sign-in sources
- Fix Error 500 in CI charts by gracefully handling commits with no durations
- Fix concurrent request when updating build log in browser
v 8.8.1
- Add documentation for the "Health Check" feature
......
......@@ -28,12 +28,15 @@ class CiBuild
#
CiBuild.interval = setInterval =>
if window.location.href.split("#").first() is build_url
last_state = @state
$.ajax
url: build_url + "/trace.json?state=" + encodeURIComponent(@state)
dataType: "json"
success: (log) =>
@state = log.state
if log.status is "running"
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
......
......@@ -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
......
......@@ -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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment