Fix automatic log append
This commit is contained in:
parent
236ac25cbf
commit
1512f8d108
|
@ -2,3 +2,6 @@ require 'travis/model'
|
|||
|
||||
@Travis.Artifact = Travis.Model.extend
|
||||
body: DS.attr('string')
|
||||
|
||||
append: (body) ->
|
||||
@set('body', @get('body') + body)
|
||||
|
|
|
@ -35,14 +35,16 @@ require 'travis/model'
|
|||
[]
|
||||
).property('config')
|
||||
|
||||
appendLog: (log) ->
|
||||
@set('log', @get('log') + log)
|
||||
appendLog: (text) ->
|
||||
if log = @get('log')
|
||||
log.append(text)
|
||||
|
||||
subscribe: ->
|
||||
# Travis.app.subscribe 'job-' + @get('id')
|
||||
if id = @get('id')
|
||||
Travis.app.pusher.subscribe "job-#{id}"
|
||||
|
||||
onStateChange: (->
|
||||
# Travis.app.unsubscribe 'job-' + @get('id') if @get('state') == 'finished'
|
||||
Travis.app.pusher.unsubscribe "job-#{@get('id')}" if @get('state') == 'finished'
|
||||
).observes('state')
|
||||
|
||||
tick: ->
|
||||
|
|
|
@ -28,13 +28,13 @@ $.extend Travis.Pusher.prototype,
|
|||
receive: (event, data) ->
|
||||
if data.id
|
||||
data = @normalize(event, data)
|
||||
Travis.app.store.receive(event.split(':')[0], data)
|
||||
Travis.app.store.receive(event, data)
|
||||
|
||||
normalize: (event, data) ->
|
||||
switch event
|
||||
when 'build:started', 'build:finished'
|
||||
data
|
||||
when 'job:created', 'job:started', 'job:finished'
|
||||
when 'job:created', 'job:started', 'job:finished', 'job:log'
|
||||
data.queue = data.queue.replace('builds.', '') if data.queue
|
||||
{ job: data }
|
||||
when 'worker:added', 'worker:updated', 'worker:removed'
|
||||
|
|
|
@ -36,11 +36,16 @@ Travis.Store = DS.Store.extend
|
|||
|
||||
{ id: id, clientId: clientId }
|
||||
|
||||
receive: (name, data) ->
|
||||
receive: (event, data) ->
|
||||
[name, type] = event.split(':')
|
||||
|
||||
mappings = @adapter.get('mappings')
|
||||
type = mappings[name]
|
||||
|
||||
if data[type.singularName()]
|
||||
if event == 'job:log'
|
||||
if job = @find(Travis.Job, data['job']['id'])
|
||||
job.appendLog(data['job']['_log'])
|
||||
else if data[type.singularName()]
|
||||
@_loadOne(this, type, data)
|
||||
else if data[type.pluralName()]
|
||||
@_loadMany(this, type, data)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
{{view.logSubscriber}}
|
||||
{{#if log.isLoaded}}
|
||||
<pre id="log">{{{formatLog log.body}}}</pre>
|
||||
|
||||
|
|
|
@ -49,7 +49,19 @@
|
|||
|
||||
LogView: Travis.View.extend
|
||||
templateName: 'jobs/log'
|
||||
logBinding: 'job.log'
|
||||
|
||||
click: (event) ->
|
||||
$(event.target).closest('.fold').toggleClass('open')
|
||||
|
||||
jobBinding: 'context'
|
||||
|
||||
logSubscriber: (->
|
||||
# for some reason observing context does not work,
|
||||
# TODO: find out why
|
||||
job = @get('job')
|
||||
state = @get('job.state')
|
||||
if job && state != 'finished'
|
||||
job.subscribe()
|
||||
null
|
||||
).property('job', 'job.state')
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user