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
|
@Travis.Artifact = Travis.Model.extend
|
||||||
body: DS.attr('string')
|
body: DS.attr('string')
|
||||||
|
|
||||||
|
append: (body) ->
|
||||||
|
@set('body', @get('body') + body)
|
||||||
|
|
|
@ -35,14 +35,16 @@ require 'travis/model'
|
||||||
[]
|
[]
|
||||||
).property('config')
|
).property('config')
|
||||||
|
|
||||||
appendLog: (log) ->
|
appendLog: (text) ->
|
||||||
@set('log', @get('log') + log)
|
if log = @get('log')
|
||||||
|
log.append(text)
|
||||||
|
|
||||||
subscribe: ->
|
subscribe: ->
|
||||||
# Travis.app.subscribe 'job-' + @get('id')
|
if id = @get('id')
|
||||||
|
Travis.app.pusher.subscribe "job-#{id}"
|
||||||
|
|
||||||
onStateChange: (->
|
onStateChange: (->
|
||||||
# Travis.app.unsubscribe 'job-' + @get('id') if @get('state') == 'finished'
|
Travis.app.pusher.unsubscribe "job-#{@get('id')}" if @get('state') == 'finished'
|
||||||
).observes('state')
|
).observes('state')
|
||||||
|
|
||||||
tick: ->
|
tick: ->
|
||||||
|
|
|
@ -28,13 +28,13 @@ $.extend Travis.Pusher.prototype,
|
||||||
receive: (event, data) ->
|
receive: (event, data) ->
|
||||||
if data.id
|
if data.id
|
||||||
data = @normalize(event, data)
|
data = @normalize(event, data)
|
||||||
Travis.app.store.receive(event.split(':')[0], data)
|
Travis.app.store.receive(event, data)
|
||||||
|
|
||||||
normalize: (event, data) ->
|
normalize: (event, data) ->
|
||||||
switch event
|
switch event
|
||||||
when 'build:started', 'build:finished'
|
when 'build:started', 'build:finished'
|
||||||
data
|
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
|
data.queue = data.queue.replace('builds.', '') if data.queue
|
||||||
{ job: data }
|
{ job: data }
|
||||||
when 'worker:added', 'worker:updated', 'worker:removed'
|
when 'worker:added', 'worker:updated', 'worker:removed'
|
||||||
|
|
|
@ -36,11 +36,16 @@ Travis.Store = DS.Store.extend
|
||||||
|
|
||||||
{ id: id, clientId: clientId }
|
{ id: id, clientId: clientId }
|
||||||
|
|
||||||
receive: (name, data) ->
|
receive: (event, data) ->
|
||||||
|
[name, type] = event.split(':')
|
||||||
|
|
||||||
mappings = @adapter.get('mappings')
|
mappings = @adapter.get('mappings')
|
||||||
type = mappings[name]
|
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)
|
@_loadOne(this, type, data)
|
||||||
else if data[type.pluralName()]
|
else if data[type.pluralName()]
|
||||||
@_loadMany(this, type, data)
|
@_loadMany(this, type, data)
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
{{view.logSubscriber}}
|
||||||
{{#if log.isLoaded}}
|
{{#if log.isLoaded}}
|
||||||
<pre id="log">{{{formatLog log.body}}}</pre>
|
<pre id="log">{{{formatLog log.body}}}</pre>
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,19 @@
|
||||||
|
|
||||||
LogView: Travis.View.extend
|
LogView: Travis.View.extend
|
||||||
templateName: 'jobs/log'
|
templateName: 'jobs/log'
|
||||||
|
logBinding: 'job.log'
|
||||||
|
|
||||||
click: (event) ->
|
click: (event) ->
|
||||||
$(event.target).closest('.fold').toggleClass('open')
|
$(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