Load worker related records from pusher payload
This commit is contained in:
parent
7f979c8a5e
commit
231f3b8723
|
@ -18,17 +18,21 @@ require 'travis/model'
|
||||||
@get('state') == 'working'
|
@get('state') == 'working'
|
||||||
).property('state')
|
).property('state')
|
||||||
|
|
||||||
repo: (->
|
jobId: (->
|
||||||
Travis.Repo.find(@get('payload.repository.id') || @get('payload.repo.id'))
|
|
||||||
).property('payload.repository.id', 'payload.repo.id')
|
|
||||||
|
|
||||||
job_id: (->
|
|
||||||
@get('payload.job.id')
|
@get('payload.job.id')
|
||||||
).property('payload.job.id')
|
).property('payload.job.id')
|
||||||
|
|
||||||
job: (->
|
job: (->
|
||||||
Travis.Job.find @get('job_id')
|
Travis.Job.find @get('job_id')
|
||||||
).property('job_id')
|
).property('jobId')
|
||||||
|
|
||||||
|
repo: (->
|
||||||
|
Travis.Repo.find(@get('payload.repository.id') || @get('payload.repo.id'))
|
||||||
|
).property('payload.repository.id', 'payload.repo.id')
|
||||||
|
|
||||||
|
repoSlug: (->
|
||||||
|
@get('payload.repo.slug') || @get('payload.repository.slug')
|
||||||
|
).property('payload.repo.slug', 'payload.repository.slug')
|
||||||
|
|
||||||
nameForSort: (->
|
nameForSort: (->
|
||||||
if name = @get('name')
|
if name = @get('name')
|
||||||
|
|
|
@ -211,9 +211,13 @@ Travis.Router = Ember.Router.extend
|
||||||
deferred.promise()
|
deferred.promise()
|
||||||
|
|
||||||
serialize: (router, repo) ->
|
serialize: (router, repo) ->
|
||||||
if repo
|
if typeof repo == 'string'
|
||||||
|
[owner, name] = repo.split '/'
|
||||||
|
{ owner: owner, name: name }
|
||||||
|
else if repo
|
||||||
{ owner: repo.get('owner'), name: repo.get('name') }
|
{ owner: repo.get('owner'), name: repo.get('name') }
|
||||||
else
|
else
|
||||||
|
# TODO: it would be nice to handle 404 somehow
|
||||||
{}
|
{}
|
||||||
|
|
||||||
show: Ember.Route.extend
|
show: Ember.Route.extend
|
||||||
|
|
|
@ -42,6 +42,8 @@ Travis.Store = DS.Store.extend
|
||||||
|
|
||||||
if clientId != undefined
|
if clientId != undefined
|
||||||
if data = dataCache[clientId]
|
if data = dataCache[clientId]
|
||||||
|
# trying to set id here fails, TODO: talk with ember core team to create merge-like function
|
||||||
|
delete hash.id
|
||||||
$.extend(data, hash)
|
$.extend(data, hash)
|
||||||
else
|
else
|
||||||
dataCache[clientId] = hash
|
dataCache[clientId] = hash
|
||||||
|
@ -80,7 +82,12 @@ Travis.Store = DS.Store.extend
|
||||||
# if we need sideload becasue we have side records with other events it needs to
|
# if we need sideload becasue we have side records with other events it needs to
|
||||||
# be revised
|
# be revised
|
||||||
if type == Travis.Build && (json.repository || json.repo)
|
if type == Travis.Build && (json.repository || json.repo)
|
||||||
result = @loadIncomplete(Travis.Repo, json.repository || json.repo)
|
@loadIncomplete(Travis.Repo, json.repository || json.repo)
|
||||||
|
else if type == Travis.Worker && json.worker.payload
|
||||||
|
if repo = (json.worker.payload.repo || json.worker.payload.repository)
|
||||||
|
@loadIncomplete(Travis.Repo, repo)
|
||||||
|
if job = json.worker.payload.job
|
||||||
|
@loadIncomplete(Travis.Job, job)
|
||||||
@loadIncomplete(type, json[root])
|
@loadIncomplete(type, json[root])
|
||||||
|
|
||||||
addLoadedData: (type, clientId, hash) ->
|
addLoadedData: (type, clientId, hash) ->
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
<li class="worker">
|
<li class="worker">
|
||||||
<div class="status"></div>
|
<div class="status"></div>
|
||||||
{{#if worker.isWorking}}
|
{{#if worker.isWorking}}
|
||||||
{{#if worker.job_id}}
|
{{#if worker.jobId}}
|
||||||
<a {{action showJob worker.repo worker.job_id target="Travis.app.router" href=true}} {{bindAttr title="worker.lastSeenAt"}}>
|
<a {{action showJob worker.repoSlug worker.jobId target="Travis.app.router" href=true}} {{bindAttr title="worker.lastSeenAt"}}>
|
||||||
{{view.display}}
|
{{view.display}}
|
||||||
</a>
|
</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
payload = @get('worker.payload')
|
payload = @get('worker.payload')
|
||||||
|
|
||||||
if state == 'working' && payload?.repository && payload?.build
|
if state == 'working' && payload?.repository && payload?.build
|
||||||
repo = payload.repository.slug
|
repo = @get('worker.repoSlug')
|
||||||
number = ' #' + payload.build.number
|
number = ' #' + payload.build.number
|
||||||
"<span class='name'>#{name}: #{repo}</span> #{number}".htmlSafe()
|
"<span class='name'>#{name}: #{repo}</span> #{number}".htmlSafe()
|
||||||
else
|
else
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
376c1880
|
0a9ef10c
|
Loading…
Reference in New Issue
Block a user