move log subscrition to a log controller
This commit is contained in:
parent
4c699f18c3
commit
2e8b74160c
|
@ -33,7 +33,7 @@
|
||||||
if user && token && @validateUser(user)
|
if user && token && @validateUser(user)
|
||||||
{ user: user, token: token }
|
{ user: user, token: token }
|
||||||
else
|
else
|
||||||
console.log('dropping user, no token') unless token?
|
# console.log('dropping user, no token') if token?
|
||||||
storage.removeItem('travis.user')
|
storage.removeItem('travis.user')
|
||||||
storage.removeItem('travis.token')
|
storage.removeItem('travis.token')
|
||||||
null
|
null
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
if user[field]
|
if user[field]
|
||||||
true
|
true
|
||||||
else
|
else
|
||||||
console.log("discarding user data, lacks #{field}")
|
# console.log("discarding user data, lacks #{field}")
|
||||||
false
|
false
|
||||||
|
|
||||||
setData: (data) ->
|
setData: (data) ->
|
||||||
|
|
|
@ -29,6 +29,7 @@ require 'controllers/builds'
|
||||||
require 'controllers/flash'
|
require 'controllers/flash'
|
||||||
require 'controllers/home'
|
require 'controllers/home'
|
||||||
require 'controllers/job'
|
require 'controllers/job'
|
||||||
|
require 'controllers/log'
|
||||||
require 'controllers/profile'
|
require 'controllers/profile'
|
||||||
require 'controllers/repos'
|
require 'controllers/repos'
|
||||||
require 'controllers/repo'
|
require 'controllers/repo'
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
Travis.BuildController = Ember.Controller.extend
|
Travis.BuildController = Ember.Controller.extend
|
||||||
needs: ['repo']
|
needs: ['repo', 'log']
|
||||||
repoBinding: 'controllers.repo.repo'
|
repoBinding: 'controllers.repo.repo'
|
||||||
buildBinding: 'controllers.repo.build'
|
buildBinding: 'controllers.repo.build'
|
||||||
commitBinding: 'build.commit'
|
commitBinding: 'build.commit'
|
||||||
|
jobBinding: 'controllers.log.job'
|
||||||
|
|
||||||
currentItemBinding: 'build'
|
currentItemBinding: 'build'
|
||||||
|
|
||||||
|
@ -21,3 +22,7 @@ Travis.BuildController = Ember.Controller.extend
|
||||||
urlCommitter: (->
|
urlCommitter: (->
|
||||||
Travis.Urls.email(@get('commit.committerEmail'))
|
Travis.Urls.email(@get('commit.committerEmail'))
|
||||||
).property('commit.committerEmail')
|
).property('commit.committerEmail')
|
||||||
|
|
||||||
|
hasLoaded: (->
|
||||||
|
@set('controllers.log.job', @get('build.firstJob')) if @get('build.isLoaded') && !@get('build.isMatrix')
|
||||||
|
).observes('build.id', 'loading')
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Travis.JobController = Em.Controller.extend
|
Travis.JobController = Em.Controller.extend
|
||||||
needs: ['repo']
|
needs: ['repo', 'log']
|
||||||
|
|
||||||
jobBinding: 'controllers.repo.job'
|
jobBinding: 'controllers.repo.job'
|
||||||
repoBinding: 'controllers.repo.repo'
|
repoBinding: 'controllers.repo.repo'
|
||||||
|
@ -16,3 +16,7 @@ Travis.JobController = Em.Controller.extend
|
||||||
urlCommitter: (->
|
urlCommitter: (->
|
||||||
Travis.Urls.email(@get('commit.committerEmail'))
|
Travis.Urls.email(@get('commit.committerEmail'))
|
||||||
).property('commit.committerEmail')
|
).property('commit.committerEmail')
|
||||||
|
|
||||||
|
hasLoaded: (->
|
||||||
|
@set('controllers.log.job', @get('job'))
|
||||||
|
).observes('job.id')
|
||||||
|
|
15
assets/scripts/app/controllers/log.coffee
Normal file
15
assets/scripts/app/controllers/log.coffee
Normal 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
|
|
@ -31,6 +31,10 @@ require 'travis/model'
|
||||||
@get('jobs.length') > 1
|
@get('jobs.length') > 1
|
||||||
).property('jobs.length')
|
).property('jobs.length')
|
||||||
|
|
||||||
|
firstJob: (->
|
||||||
|
@get('jobs.firstObject')
|
||||||
|
).property('jobs.length')
|
||||||
|
|
||||||
isFinished: (->
|
isFinished: (->
|
||||||
@get('state') in ['passed', 'failed', 'errored', 'canceled']
|
@get('state') in ['passed', 'failed', 'errored', 'canceled']
|
||||||
).property('state')
|
).property('state')
|
||||||
|
|
|
@ -10,7 +10,7 @@ require 'travis/model'
|
||||||
@fetch()
|
@fetch()
|
||||||
|
|
||||||
fetch: ->
|
fetch: ->
|
||||||
console.log 'fetch'
|
console.log 'log model: fetching log' if Log.DEBUG
|
||||||
handlers =
|
handlers =
|
||||||
json: (json) => @loadParts(json['log']['parts'])
|
json: (json) => @loadParts(json['log']['parts'])
|
||||||
text: (text) => @loadText(text)
|
text: (text) => @loadText(text)
|
||||||
|
@ -24,12 +24,12 @@ require 'travis/model'
|
||||||
@get('parts').pushObject(part)
|
@get('parts').pushObject(part)
|
||||||
|
|
||||||
loadParts: (parts) ->
|
loadParts: (parts) ->
|
||||||
console.log 'log model: load parts'
|
console.log 'log model: load parts' if Log.DEBUG
|
||||||
@append(part) for part in parts
|
@append(part) for part in parts
|
||||||
@set('isLoaded', true)
|
@set('isLoaded', true)
|
||||||
|
|
||||||
loadText: (text) ->
|
loadText: (text) ->
|
||||||
console.log 'log model: load text'
|
console.log 'log model: load text' if Log.DEBUG
|
||||||
number = -1
|
number = -1
|
||||||
@append(number: 0, content: text)
|
@append(number: 0, content: text)
|
||||||
@set('isLoaded', true)
|
@set('isLoaded', true)
|
||||||
|
|
|
@ -24,10 +24,12 @@ $.extend Travis.Pusher.prototype,
|
||||||
@pusher.subscribeAll()
|
@pusher.subscribeAll()
|
||||||
|
|
||||||
subscribe: (channel) ->
|
subscribe: (channel) ->
|
||||||
|
console.log("subscribing to #{channel}")
|
||||||
channel = @prefix(channel)
|
channel = @prefix(channel)
|
||||||
@pusher.subscribe(channel).bind_all((event, data) => @receive(event, data)) unless @pusher?.channel(channel)
|
@pusher.subscribe(channel).bind_all((event, data) => @receive(event, data)) unless @pusher?.channel(channel)
|
||||||
|
|
||||||
unsubscribe: (channel) ->
|
unsubscribe: (channel) ->
|
||||||
|
console.log("unsubscribing from #{channel}")
|
||||||
channel = @prefix(channel)
|
channel = @prefix(channel)
|
||||||
@pusher.unsubscribe(channel) if @pusher?.channel(channel)
|
@pusher.unsubscribe(channel) if @pusher?.channel(channel)
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,7 @@ Travis.JobRoute = Ember.Route.extend Travis.LineNumberParser,
|
||||||
controller.set('lineNumber', lineNumber)
|
controller.set('lineNumber', lineNumber)
|
||||||
|
|
||||||
repo = @container.lookup('controller:repo')
|
repo = @container.lookup('controller:repo')
|
||||||
console.log model.toString()
|
# console.log model.toString()
|
||||||
repo.set('job', model)
|
repo.set('job', model)
|
||||||
repo.activate('job')
|
repo.activate('job')
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ Travis.Store = DS.Store.extend
|
||||||
|
|
||||||
|
|
||||||
if event == 'job:log'
|
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
|
data = data.job
|
||||||
job = @find(Travis.Job, data.id)
|
job = @find(Travis.Job, data.id)
|
||||||
job.appendLog(number: parseInt(data.number), content: data._log)
|
job.appendLog(number: parseInt(data.number), content: data._log)
|
||||||
|
|
|
@ -48,6 +48,6 @@
|
||||||
{{view Travis.JobsView jobsBinding="build.requiredJobs" required="true"}}
|
{{view Travis.JobsView jobsBinding="build.requiredJobs" required="true"}}
|
||||||
{{view Travis.JobsView jobsBinding="build.allowedFailureJobs"}}
|
{{view Travis.JobsView jobsBinding="build.allowedFailureJobs"}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{view Travis.LogView jobBinding="build.jobs.firstObject"}}
|
{{view Travis.LogView jobBinding="job"}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
@ -44,6 +44,7 @@ Travis.reopen
|
||||||
|
|
||||||
BuildView: Travis.View.extend
|
BuildView: Travis.View.extend
|
||||||
templateName: 'builds/show'
|
templateName: 'builds/show'
|
||||||
|
jobBinding: 'controller.job'
|
||||||
classNameBindings: ['color', 'loading']
|
classNameBindings: ['color', 'loading']
|
||||||
|
|
||||||
loadingBinding: 'controller.loading'
|
loadingBinding: 'controller.loading'
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
require 'log'
|
require 'log'
|
||||||
|
|
||||||
Log.DEBUG = true
|
Log.DEBUG = false
|
||||||
|
|
||||||
Travis.reopen
|
Travis.reopen
|
||||||
LogView: Travis.View.extend
|
LogView: Travis.View.extend
|
||||||
|
@ -8,14 +8,6 @@ Travis.reopen
|
||||||
logBinding: 'job.log'
|
logBinding: 'job.log'
|
||||||
contextBinding: 'job'
|
contextBinding: 'job'
|
||||||
|
|
||||||
didInsertElement: ->
|
|
||||||
job = @get('job')
|
|
||||||
job.subscribe() if job && !job.get('isFinished')
|
|
||||||
|
|
||||||
willDestroyElement: ->
|
|
||||||
job = @get('job')
|
|
||||||
job.unsubscribe() if job
|
|
||||||
|
|
||||||
toTop: () ->
|
toTop: () ->
|
||||||
$(window).scrollTop(0)
|
$(window).scrollTop(0)
|
||||||
|
|
||||||
|
|
2
assets/scripts/vendor/log.js
vendored
2
assets/scripts/vendor/log.js
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user