Don't require loading repos when dislaying queues and workers
This commit is contained in:
parent
df69a4a221
commit
834e45ceb5
|
@ -14,11 +14,21 @@ require 'travis/model'
|
||||||
finishedAt: DS.attr('string')
|
finishedAt: DS.attr('string')
|
||||||
allowFailure: DS.attr('boolean', key: 'allow_failure')
|
allowFailure: DS.attr('boolean', key: 'allow_failure')
|
||||||
|
|
||||||
|
repositorySlug: DS.attr('string')
|
||||||
|
|
||||||
repo: DS.belongsTo('Travis.Repo', key: 'repository_id')
|
repo: DS.belongsTo('Travis.Repo', key: 'repository_id')
|
||||||
build: DS.belongsTo('Travis.Build', key: 'build_id')
|
build: DS.belongsTo('Travis.Build', key: 'build_id')
|
||||||
commit: DS.belongsTo('Travis.Commit', key: 'commit_id')
|
commit: DS.belongsTo('Travis.Commit', key: 'commit_id')
|
||||||
log: DS.belongsTo('Travis.Artifact', key: 'log_id')
|
log: DS.belongsTo('Travis.Artifact', key: 'log_id')
|
||||||
|
|
||||||
|
repoSlug: (->
|
||||||
|
@get('repositorySlug')
|
||||||
|
).property('repositorySlug')
|
||||||
|
|
||||||
|
repoData: (->
|
||||||
|
{ id: @get('repoId'), slug: @get('repoSlug') }
|
||||||
|
).property('repoSlug', 'repoId')
|
||||||
|
|
||||||
config: (->
|
config: (->
|
||||||
Travis.Helpers.compact(@get('data.config'))
|
Travis.Helpers.compact(@get('data.config'))
|
||||||
).property('data.config')
|
).property('data.config')
|
||||||
|
|
|
@ -84,11 +84,12 @@ require 'travis/model'
|
||||||
).property('lastBuildFinishedAt', 'lastBuildId')
|
).property('lastBuildFinishedAt', 'lastBuildId')
|
||||||
|
|
||||||
stats: (->
|
stats: (->
|
||||||
|
if @get('slug')
|
||||||
@get('_stats') || $.get("https://api.github.com/repos/#{@get('slug')}", (data) =>
|
@get('_stats') || $.get("https://api.github.com/repos/#{@get('slug')}", (data) =>
|
||||||
@set('_stats', data)
|
@set('_stats', data)
|
||||||
@notifyPropertyChange 'stats'
|
@notifyPropertyChange 'stats'
|
||||||
) && {}
|
) && {}
|
||||||
).property()
|
).property('slug')
|
||||||
|
|
||||||
updateTimes: ->
|
updateTimes: ->
|
||||||
@notifyPropertyChange 'lastBuildDuration'
|
@notifyPropertyChange 'lastBuildDuration'
|
||||||
|
|
|
@ -26,6 +26,10 @@ require 'travis/model'
|
||||||
Travis.Job.find @get('job_id')
|
Travis.Job.find @get('job_id')
|
||||||
).property('jobId')
|
).property('jobId')
|
||||||
|
|
||||||
|
repoData: (->
|
||||||
|
{ id: @get('repoId'), slug: @get('repoSlug') }
|
||||||
|
).property('repoSlug', 'repoId')
|
||||||
|
|
||||||
repo: (->
|
repo: (->
|
||||||
Travis.Repo.find(@get('payload.repository.id') || @get('payload.repo.id'))
|
Travis.Repo.find(@get('payload.repository.id') || @get('payload.repo.id'))
|
||||||
).property('payload.repository.id', 'payload.repo.id')
|
).property('payload.repository.id', 'payload.repo.id')
|
||||||
|
@ -34,6 +38,10 @@ require 'travis/model'
|
||||||
@get('payload.repo.slug') || @get('payload.repository.slug')
|
@get('payload.repo.slug') || @get('payload.repository.slug')
|
||||||
).property('payload.repo.slug', 'payload.repository.slug')
|
).property('payload.repo.slug', 'payload.repository.slug')
|
||||||
|
|
||||||
|
repoId: (->
|
||||||
|
@get('payload.repo.id') || @get('payload.repository.id')
|
||||||
|
).property('payload.repo.id', 'payload.repository.id')
|
||||||
|
|
||||||
nameForSort: (->
|
nameForSort: (->
|
||||||
if name = @get('name')
|
if name = @get('name')
|
||||||
match = name.match /(.*?)-(\d+)/
|
match = name.match /(.*?)-(\d+)/
|
||||||
|
|
|
@ -202,6 +202,8 @@ Travis.Router = Ember.Router.extend
|
||||||
dynamicSegmentPattern: "([^/#]+)"
|
dynamicSegmentPattern: "([^/#]+)"
|
||||||
|
|
||||||
connectOutlets: (router, repo) ->
|
connectOutlets: (router, repo) ->
|
||||||
|
unless repo.constructor == Travis.Repo
|
||||||
|
repo = Travis.Repo.find(repo.id)
|
||||||
router.get('repoController').set 'repo', repo
|
router.get('repoController').set 'repo', repo
|
||||||
|
|
||||||
deserialize: (router, params) ->
|
deserialize: (router, params) ->
|
||||||
|
@ -225,8 +227,11 @@ Travis.Router = Ember.Router.extend
|
||||||
if typeof repo == 'string'
|
if typeof repo == 'string'
|
||||||
[owner, name] = repo.split '/'
|
[owner, name] = repo.split '/'
|
||||||
{ owner: owner, name: name }
|
{ owner: owner, name: name }
|
||||||
else if repo
|
else if repo && repo.constructor == Travis.Repo
|
||||||
{ owner: repo.get('owner'), name: repo.get('name') }
|
{ owner: repo.get('owner'), name: repo.get('name') }
|
||||||
|
else if repo && repo.id && repo.slug
|
||||||
|
[owner, name] = repo.slug.split '/'
|
||||||
|
{ owner: owner, name: name }
|
||||||
else
|
else
|
||||||
# TODO: it would be nice to handle 404 somehow
|
# TODO: it would be nice to handle 404 somehow
|
||||||
{}
|
{}
|
||||||
|
|
|
@ -5,11 +5,10 @@
|
||||||
<ul {{bindAttr id="queue.id"}}>
|
<ul {{bindAttr id="queue.id"}}>
|
||||||
{{#each job in queue}}
|
{{#each job in queue}}
|
||||||
{{#view Travis.QueueItemView jobBinding="job"}}
|
{{#view Travis.QueueItemView jobBinding="job"}}
|
||||||
|
{{#if job.repoSlug}}
|
||||||
{{#if job.repo.slug}}
|
<a {{action showJob job.repoData job target="Travis.app.router" href=true}}>
|
||||||
<a {{action showJob job.repo job target="Travis.app.router" href=true}}>
|
|
||||||
<span class="slug">
|
<span class="slug">
|
||||||
{{job.repo.slug}}
|
{{job.repoSlug}}
|
||||||
</span>
|
</span>
|
||||||
#{{job.number}}
|
#{{job.number}}
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<div class="status"></div>
|
<div class="status"></div>
|
||||||
{{#if worker.isWorking}}
|
{{#if worker.isWorking}}
|
||||||
{{#if worker.jobId}}
|
{{#if worker.jobId}}
|
||||||
<a {{action showJob worker.repo worker.jobId target="Travis.app.router" href=true}} {{bindAttr title="worker.lastSeenAt"}}>
|
<a {{action showJob worker.repoData worker.jobId target="Travis.app.router" href=true}} {{bindAttr title="worker.lastSeenAt"}}>
|
||||||
{{view.display}}
|
{{view.display}}
|
||||||
</a>
|
</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user