move log subscrition to a log controller

This commit is contained in:
Sven Fuchs 2013-03-06 19:59:59 +01:00
parent 4c699f18c3
commit 2e8b74160c
14 changed files with 44 additions and 20 deletions

View File

@ -33,7 +33,7 @@
if user && token && @validateUser(user)
{ user: user, token: token }
else
console.log('dropping user, no token') unless token?
# console.log('dropping user, no token') if token?
storage.removeItem('travis.user')
storage.removeItem('travis.token')
null
@ -45,7 +45,7 @@
if user[field]
true
else
console.log("discarding user data, lacks #{field}")
# console.log("discarding user data, lacks #{field}")
false
setData: (data) ->

View File

@ -29,6 +29,7 @@ require 'controllers/builds'
require 'controllers/flash'
require 'controllers/home'
require 'controllers/job'
require 'controllers/log'
require 'controllers/profile'
require 'controllers/repos'
require 'controllers/repo'

View File

@ -1,8 +1,9 @@
Travis.BuildController = Ember.Controller.extend
needs: ['repo']
needs: ['repo', 'log']
repoBinding: 'controllers.repo.repo'
buildBinding: 'controllers.repo.build'
commitBinding: 'build.commit'
jobBinding: 'controllers.log.job'
currentItemBinding: 'build'
@ -21,3 +22,7 @@ Travis.BuildController = Ember.Controller.extend
urlCommitter: (->
Travis.Urls.email(@get('commit.committerEmail'))
).property('commit.committerEmail')
hasLoaded: (->
@set('controllers.log.job', @get('build.firstJob')) if @get('build.isLoaded') && !@get('build.isMatrix')
).observes('build.id', 'loading')

View File

@ -1,5 +1,5 @@
Travis.JobController = Em.Controller.extend
needs: ['repo']
needs: ['repo', 'log']
jobBinding: 'controllers.repo.job'
repoBinding: 'controllers.repo.repo'
@ -16,3 +16,7 @@ Travis.JobController = Em.Controller.extend
urlCommitter: (->
Travis.Urls.email(@get('commit.committerEmail'))
).property('commit.committerEmail')
hasLoaded: (->
@set('controllers.log.job', @get('job'))
).observes('job.id')

View File

@ -0,0 +1,15 @@
Travis.LogController = Ember.Controller.extend
needs: ['repo']
logObserver: (->
@unsubscribe()
@subscribe(@get('job'))
).observes('job.logId')
subscribe: (job) ->
job = @get('job')
job.subscribe() if job && !job.get('isFinished')
unsubscribe: ->
job = @get('subscribed')
job.unsubscribe() if job

View File

@ -31,6 +31,10 @@ require 'travis/model'
@get('jobs.length') > 1
).property('jobs.length')
firstJob: (->
@get('jobs.firstObject')
).property('jobs.length')
isFinished: (->
@get('state') in ['passed', 'failed', 'errored', 'canceled']
).property('state')

View File

@ -10,7 +10,7 @@ require 'travis/model'
@fetch()
fetch: ->
console.log 'fetch'
console.log 'log model: fetching log' if Log.DEBUG
handlers =
json: (json) => @loadParts(json['log']['parts'])
text: (text) => @loadText(text)
@ -24,12 +24,12 @@ require 'travis/model'
@get('parts').pushObject(part)
loadParts: (parts) ->
console.log 'log model: load parts'
console.log 'log model: load parts' if Log.DEBUG
@append(part) for part in parts
@set('isLoaded', true)
loadText: (text) ->
console.log 'log model: load text'
console.log 'log model: load text' if Log.DEBUG
number = -1
@append(number: 0, content: text)
@set('isLoaded', true)

View File

@ -24,10 +24,12 @@ $.extend Travis.Pusher.prototype,
@pusher.subscribeAll()
subscribe: (channel) ->
console.log("subscribing to #{channel}")
channel = @prefix(channel)
@pusher.subscribe(channel).bind_all((event, data) => @receive(event, data)) unless @pusher?.channel(channel)
unsubscribe: (channel) ->
console.log("unsubscribing from #{channel}")
channel = @prefix(channel)
@pusher.unsubscribe(channel) if @pusher?.channel(channel)

View File

@ -112,7 +112,7 @@ Travis.JobRoute = Ember.Route.extend Travis.LineNumberParser,
controller.set('lineNumber', lineNumber)
repo = @container.lookup('controller:repo')
console.log model.toString()
# console.log model.toString()
repo.set('job', model)
repo.activate('job')

View File

@ -78,7 +78,7 @@ Travis.Store = DS.Store.extend
if event == 'job:log'
console.log 'store: received job:log event', data
console.log 'store: received job:log event', data if Log.DEBUG
data = data.job
job = @find(Travis.Job, data.id)
job.appendLog(number: parseInt(data.number), content: data._log)

View File

@ -48,6 +48,6 @@
{{view Travis.JobsView jobsBinding="build.requiredJobs" required="true"}}
{{view Travis.JobsView jobsBinding="build.allowedFailureJobs"}}
{{else}}
{{view Travis.LogView jobBinding="build.jobs.firstObject"}}
{{view Travis.LogView jobBinding="job"}}
{{/if}}
{{/if}}

View File

@ -44,6 +44,7 @@ Travis.reopen
BuildView: Travis.View.extend
templateName: 'builds/show'
jobBinding: 'controller.job'
classNameBindings: ['color', 'loading']
loadingBinding: 'controller.loading'

View File

@ -1,6 +1,6 @@
require 'log'
Log.DEBUG = true
Log.DEBUG = false
Travis.reopen
LogView: Travis.View.extend
@ -8,14 +8,6 @@ Travis.reopen
logBinding: 'job.log'
contextBinding: 'job'
didInsertElement: ->
job = @get('job')
job.subscribe() if job && !job.get('isFinished')
willDestroyElement: ->
job = @get('job')
job.unsubscribe() if job
toTop: () ->
$(window).scrollTop(0)

File diff suppressed because one or more lines are too long