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

View File

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