Group running jobs by repo
This commit is contained in:
parent
ad6f9e59c7
commit
c5dce13317
|
@ -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')]
|
||||||
|
|
|
@ -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">
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue
Block a user