Fix cutting too long logs

This commit is contained in:
Piotr Sarnacki 2013-03-19 16:07:21 +01:00
parent 653bf3a568
commit 65254b70da
6 changed files with 37 additions and 6 deletions

View File

@ -154,8 +154,8 @@ Travis.OrderedLogEngineMixin = Ember.Mixin.create
this.$('#log')[0].appendChild fragment
if cut
url = Travis.Urls.plainTextLog(@get('log.id'))
this.$("#log").append $("<p class=\"cut\">Log was too long to display. Download the <a href=\"#{url}\">the raw version</a> to get the full log.</p>")
url = Travis.Urls.plainTextLog(@get('log.job.id'))
this.$("#log").append $("<div class=\"cut\">Log was too long to display. Download the <a href=\"#{url}\">the raw version</a> to get the full log.</div>")
Travis.reopen
LogView: Travis.View.extend

View File

@ -6,6 +6,7 @@ FOLDS = [
]
@Travis.OrderedLog = Em.Object.extend
linesLimit: 5000
init: ->
@set 'folds', []
@set 'line', 1
@ -17,7 +18,7 @@ FOLDS = [
append: (lines) ->
return unless lines
return if @get('lineNumber') > 5000
return if @get('lineNumber') > @get('linesLimit')
log = @join lines
log = @escape log
@ -88,7 +89,7 @@ FOLDS = [
if currentFold
@set 'foldContinuation', true
if @get('lineNumber') + index >= 5000
if @get('lineNumber') + index >= @get('linesLimit')
result.pushObject logWasCut: true
break

View File

@ -43,3 +43,30 @@ describe 'on the "job" state', ->
displaysLog [
'log 1'
]
describe 'too long log', ->
beforeEach ->
$.mockjax
url: '/jobs/2/log?cors_hax=true'
responseTime: 0
responseText: '1\n2\n3\n4\n5\n6\n7\n8\n9\n10'
Travis.OrderedLog.reopen
linesLimit: 5
app 'travis-ci/travis-core/jobs/2'
waitFor logRendered
afterEach ->
Travis.OrderedLog.reopen
linesLimit: 5000
it 'is cut after given limit', ->
displaysLog [
'12345'
]
expect( $('#log .cut').text() ).toEqual 'Log was too long to display. Download the the raw version to get the full log.'
expect( $('#log .cut a').attr('href') ).toEqual '/jobs/2/log.txt?deansi=true'

View File

@ -11,4 +11,4 @@
@jobsRendered = notEmpty('#jobs .number')
@queuesRendered = notEmpty('#queue_linux li')
@workersRendered = notEmpty('.worker')
@logRendered = notEmpty('#log p')

View File

@ -42,7 +42,7 @@
@displaysLog = (lines) ->
log = lines.join()
expect($('#log').text().trim()).toEqual log
expect($('#log p').text().trim()).toEqual log
@listsRepos = (items) ->
listsItems('repo', items)

View File

@ -19,6 +19,9 @@ pre#log
overflow-x: scroll
counter-reset: line-numbering
.cut
padding: 20px 15px 0 55px
p
padding: 0 15px 0 55px
margin: 0