Group running jobs by repo

This commit is contained in:
Piotr Sarnacki 2013-02-07 05:02:18 +01:00
parent ad6f9e59c7
commit c5dce13317
3 changed files with 15 additions and 13 deletions

View File

@ -1,6 +1,6 @@
Travis.RunningJobsController = Em.ArrayProxy.extend Travis.RunningJobsController = Em.ArrayProxy.extend
Group: Em.Object.extend Group: Em.Object.extend
build: (-> @get('jobs.firstObject.build') ).property('jobs.firstObject.build') repo: (-> @get('jobs.firstObject.repo') ).property('jobs.firstObject.repo')
init: -> init: ->
@set 'jobs', [] @set 'jobs', []
@ -24,7 +24,7 @@ Travis.RunningJobsController = Em.ArrayProxy.extend
).property('jobs.length') ).property('jobs.length')
groups: [] groups: []
groupsByBuildIds: {} groupsBySlug: {}
init: -> init: ->
@_super.apply this, arguments @_super.apply this, arguments
@ -46,23 +46,24 @@ Travis.RunningJobsController = Em.ArrayProxy.extend
addedJobs: (jobs) -> addedJobs: (jobs) ->
self = this self = this
jobs.forEach (job) -> jobs.forEach (job) ->
buildId = job.get('buildId') slug = job.get('repoSlug')
group = self.groupForBuild(buildId) group = self.groupForSlug(slug)
group.add(job) group.add(job)
removedJobs: (jobs) -> removedJobs: (jobs) ->
self = this self = this
jobs.forEach (job) -> jobs.forEach (job) ->
buildId = job.get('buildId') slug = job.get('repoSlug')
group = self.groupForBuild(buildId) group = self.groupForSlug(slug)
group.remove(job) group.remove(job)
groupForBuild: (buildId) -> groupForSlug: (slug) ->
@groupsByBuildIds[buildId] ||= @Group.create(buildId: buildId, parent: this) console.log 'slug', slug
@groupsBySlug[slug] ||= @Group.create(slug: slug, parent: this)
addGroup: (group) -> addGroup: (group) ->
@get('groups').pushObject group unless @get('groups').contains group @get('groups').pushObject group unless @get('groups').contains group
removeGroup: (group) -> removeGroup: (group) ->
@get('groups').removeObject group @get('groups').removeObject group
delete @groupsByBuildIds[group.get('buildId')] delete @groupsBySlug[group.get('slug')]

View File

@ -1,6 +1,5 @@
<a {{action toggle target="view"}}> <a {{action toggle target="view"}}>
<span class="slug">{{build.repo.slug}}</span> <span class="slug">{{slug}}</span> ({{jobs.length}})
#{{build.number}}
</a> </a>
<ul class="jobs"> <ul class="jobs">

View File

@ -44,10 +44,12 @@
#running-jobs #running-jobs
.jobs .jobs
display: none display: none
margin: 5px 0 5px
.job
list-style-type: disc
list-style-position: inside
.expanded .jobs .expanded .jobs
display: block display: block
.job
padding-left: 20px
.slug .slug
max-width: 150px max-width: 150px
overflow: hidden overflow: hidden