re-add limit and scroll, fix positioning of messages

This commit is contained in:
Sven Fuchs 2013-03-13 15:40:10 +01:00
parent c0a4fed836
commit 2331e8e006
6 changed files with 50 additions and 44 deletions

View File

@ -1,14 +1,5 @@
{{#if view.log.isLoaded}}
{{view Travis.PreView logBinding="view.log"}}
{{#if view.job.sponsor.name}}
<p class="sponsor">
{{t builds.messages.sponsored_by}}
<a {{bindAttr href="sponsor.url"}}>{{sponsor.name}}</a>
</p>
{{/if}}
<a href='#' class="to-top" {{action toTop target="view"}}>To top</a>
{{view Travis.PreView jobBinding="view.job" logBinding="view.log"}}
{{else}}
<div id="log" class="loading">
<span>Loading</span>

View File

@ -5,6 +5,15 @@
</a>
<pre id="log" class="ansi"></pre>
<a href='#' class="to-top" {{action toTop target="view"}}>To top</a>
{{#if view.job.sponsor.name}}
<p class="sponsor">
{{t builds.messages.sponsored_by}}
<a {{bindAttr href="sponsor.url"}}>{{sponsor.name}}</a>
</p>
{{/if}}
{{#if view.limited}}
<p class="warning">
This log is too long to be displayed. Please reduce the verbosity of your

View File

@ -1,7 +1,8 @@
require 'log'
require 'travis/ordered_log'
Log.DEBUG = true
Log.DEBUG = false
Log.LIMIT = 10000
Travis.reopen
LogView: Travis.View.extend
@ -13,10 +14,9 @@ Travis.reopen
job = @get('job')
job.unsubscribe() if job
toTop: () ->
$(window).scrollTop(0)
PreView: Em.View.extend
PreView: Em.View.extend(Travis.OrderedLogEngineMixin, {
PreView: Em.View.extend
templateName: 'jobs/pre'
didInsertElement: ->
@ -41,10 +41,8 @@ Travis.reopen
createEngine: ->
console.log 'log view: create engine' if Log.DEBUG
# @limit = new Log.Limit
# @scroll = new Log.Scroll
# @engine = Log.create(listeners: [new Log.FragmentRenderer, new Log.Folds, @scroll])
@engine = new Log
@scroll = new Log.Scroll
@engine = Log.create(limit: Log.LIMIT, listeners: [@scroll])
@observeParts()
@numberLineOnHover()
@ -63,11 +61,11 @@ Travis.reopen
@propertyDidChange('limited')
lineNumberDidChange: (->
# @scroll.set(number) if !@get('isDestroyed') && number = @get('controller.lineNumber')
@scroll.set(number) if !@get('isDestroyed') && number = @get('controller.lineNumber')
).observes('controller.lineNumber')
limited: (->
@limit && @limit.limited
@engine?.limit?.limited
).property()
plainTextLogUrl: (->
@ -95,30 +93,33 @@ Travis.reopen
window.history.pushState(null, null, "#{window.location.pathname}#L#{number}");
@set('controller.lineNumber', number)
toTop: () ->
$(window).scrollTop(0)
noop: -> # TODO required?
# Log.Scroll = ->
# Log.Scroll.prototype = $.extend new Log.Listener,
# set: (number) ->
# return unless number
# @number = number
# @tryScroll()
#
# insert: (log, line, pos) ->
# @tryScroll() if @number
# true
#
# tryScroll: ->
# if element = $("#log p:visible")[@number - 1]
# $('#main').scrollTop(0)
# $('html, body').scrollTop($(element).offset()?.top) # weird, html works in chrome, body in firefox
# @highlight(element)
# @number = undefined
#
# highlight: (element) ->
# $('#log p.highlight').removeClass('highlight')
# $(element).addClass('highlight')
#
Log.Scroll = ->
Log.Scroll.prototype = $.extend new Log.Listener,
set: (number) ->
return unless number
@number = number
@tryScroll()
insert: (log, data, pos) ->
@tryScroll() if @number
true
tryScroll: ->
if element = $("#log > p:visible")[@number - 1]
$('#main').scrollTop(0)
$('html, body').scrollTop($(element).offset()?.top) # weird, html works in chrome, body in firefox
@highlight(element)
@number = undefined
highlight: (element) ->
$('#log p.highlight').removeClass('highlight')
$(element).addClass('highlight')
# Log.Logger = ->
# Log.Logger.prototype = $.extend new Log.Listener,
# receive: (log, num, string) ->

File diff suppressed because one or more lines are too long

View File

@ -15,5 +15,7 @@
height: 20px
.warning
color: #c00
a
color: #c00
text-decoration: underline

View File

@ -1,11 +1,14 @@
#main
.sponsor
float: left
// float: left
margin-top: 0
color: #999
.to-top
display: inline-block
width: 50px
float: right
margin-right: 2px
padding-right: 16px
text-align: right
color: #999
background: inline-image('ui/to-top.png') no-repeat right 6px