Fix line numbers when loading an url

This commit is contained in:
Piotr Sarnacki 2013-02-23 01:08:18 +01:00
parent de976d136c
commit 1bccb5d177
3 changed files with 16 additions and 3 deletions

View File

@ -1,4 +1,5 @@
require 'travis/location'
require 'travis/line_number_parser'
Ember.Router.reopen
location: (if testMode? then Ember.HashLocation.create() else Travis.Location.create())
@ -45,7 +46,7 @@ Travis.BuildsRoute = Travis.AbstractBuidsRoute.extend(contentType: 'builds')
Travis.PullRequestsRoute = Travis.AbstractBuidsRoute.extend(contentType: 'pull_requests')
Travis.BranchesRoute = Travis.AbstractBuidsRoute.extend(contentType: 'branches')
Travis.BuildRoute = Ember.Route.extend
Travis.BuildRoute = Ember.Route.extend Travis.LineNumberParser,
renderTemplate: ->
@render 'build', outlet: 'pane', into: 'repo'
@ -57,11 +58,14 @@ Travis.BuildRoute = Ember.Route.extend
setupController: (controller, model) ->
model = Travis.Build.find(model) if model && !model.get
if lineNumber = @fetchLineNumber()
controller.set('lineNumber', lineNumber)
repo = @container.lookup('controller:repo')
repo.set('build', model)
repo.activate('build')
Travis.JobRoute = Ember.Route.extend
Travis.JobRoute = Ember.Route.extend Travis.LineNumberParser,
renderTemplate: ->
@render 'job', outlet: 'pane', into: 'repo'
@ -73,6 +77,9 @@ Travis.JobRoute = Ember.Route.extend
setupController: (controller, model) ->
model = Travis.Job.find(model) if model && !model.get
if lineNumber = @fetchLineNumber()
controller.set('lineNumber', lineNumber)
repo = @container.lookup('controller:repo')
console.log model.toString()
repo.set('job', model)

View File

@ -19,6 +19,7 @@ Travis.reopen
didInsertElement: ->
@_super.apply this, arguments
@createEngine()
@lineNumberDidChange()
willDestroyElement: ->
parts = @get('log.parts')
@ -96,7 +97,7 @@ Log.Scroll.prototype = $.extend new Log.Listener,
@tryScroll() if @number
tryScroll: ->
if element = $("#log p:nth-child(#{@number})")
if (element = $("#log p:nth-child(#{@number})")) && element.length
$('#main').scrollTop(0)
$('html, body').scrollTop(element.offset()?.top) # weird, html works in chrome, body in firefox
@highlight(element)

View File

@ -0,0 +1,5 @@
Travis.LineNumberParser = Ember.Mixin.create
fetchLineNumber: ->
url = @container.lookup('router:main').get('url')
if match = url.match(/#L(\d+)$/)
match[1]