Use regular views in sidebar instead of outlets
Outlets behaved weird in this place (not sure why, maybe because it's deeply nested) and we don't need to change those views anyway.
This commit is contained in:
parent
5b2aae19b3
commit
fe7f07629f
|
@ -4,34 +4,6 @@ Travis.reopen
|
|||
@tickables = []
|
||||
Travis.Ticker.create(target: this, interval: Travis.INTERVALS.sponsors)
|
||||
|
||||
Ember.run.next this, ->
|
||||
@connectWorkers(Travis.Worker.find())
|
||||
@connectQueues(Travis.QUEUES)
|
||||
|
||||
@connectSponsors('decks', Travis.Sponsor.decks(), 1)
|
||||
@connectSponsors('links', Travis.Sponsor.links(), 6)
|
||||
|
||||
connectSponsors: (name, sponsors, perPage) ->
|
||||
controller = Travis.SponsorsController.create(perPage: perPage, content: sponsors)
|
||||
viewClass = Em.View.extend(templateName: "sponsors/#{name}")
|
||||
@connectOutlet(outletName: name, controller: controller, viewClass: viewClass)
|
||||
@tickables.push(controller)
|
||||
|
||||
connectWorkers: (workers) ->
|
||||
controller = Travis.WorkersController.create(content: workers)
|
||||
viewClass = Em.View.extend(templateName: 'workers/list')
|
||||
@connectOutlet(outletName: 'workers', controller: controller, viewClass: viewClass)
|
||||
|
||||
connectQueues: (queues) ->
|
||||
queues = for queue in queues
|
||||
Em.ArrayController.create
|
||||
content: Travis.Job.queued(queue.name)
|
||||
id: "queue_#{queue.name}"
|
||||
name: queue.display
|
||||
controller = Travis.QueuesController.create(content: queues)
|
||||
viewClass = Em.View.extend(templateName: 'queues/list')
|
||||
@connectOutlet(outletName: 'queues', controller: controller, viewClass: viewClass)
|
||||
|
||||
tick: ->
|
||||
tickable.tick() for tickable in @tickables
|
||||
|
||||
|
@ -39,12 +11,13 @@ Travis.reopen
|
|||
|
||||
WorkersController: Em.ArrayController.extend
|
||||
groups: (->
|
||||
groups = {}
|
||||
for worker in @get('content').toArray()
|
||||
host = worker.get('host')
|
||||
groups[host] = Em.ArrayProxy.create(content: []) unless groups[host]
|
||||
groups[host].pushObject(worker)
|
||||
$.values(groups)
|
||||
if content = @get 'content'
|
||||
groups = {}
|
||||
for worker in content.toArray()
|
||||
host = worker.get('host')
|
||||
groups[host] = Em.ArrayProxy.create(content: []) unless groups[host]
|
||||
groups[host].pushObject(worker)
|
||||
$.values(groups)
|
||||
).property('content.length')
|
||||
|
||||
SponsorsController: Em.ArrayController.extend
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
<div class='icon'></div>
|
||||
</div>
|
||||
|
||||
{{outlet decks}}
|
||||
{{outlet workers}}
|
||||
{{outlet queues}}
|
||||
{{outlet links}}
|
||||
{{view view.DecksView}}
|
||||
{{view view.WorkersView}}
|
||||
{{view view.QueuesView}}
|
||||
{{view view.LinksView}}
|
||||
|
||||
<div id="about" class="box">
|
||||
<h4>{{t layouts.about.join}}</h4>
|
||||
|
|
|
@ -2,6 +2,51 @@
|
|||
SidebarView: Travis.View.extend
|
||||
templateName: 'layouts/sidebar'
|
||||
|
||||
DecksView: Em.View.extend
|
||||
templateName: "sponsors/decks"
|
||||
controller: Travis.SponsorsController.create
|
||||
perPage: 1
|
||||
|
||||
didInsertElement: ->
|
||||
controller = @get 'controller'
|
||||
controller.set 'content', Travis.Sponsor.decks()
|
||||
Travis.app.get('router.sidebarController').tickables.push(controller)
|
||||
@_super.apply this, arguments
|
||||
|
||||
LinksView: Em.View.extend
|
||||
templateName: "sponsors/links"
|
||||
controller: Travis.SponsorsController.create
|
||||
perPage: 6
|
||||
|
||||
didInsertElement: ->
|
||||
controller = @get 'controller'
|
||||
controller.set 'content', Travis.Sponsor.links()
|
||||
Travis.app.get('router.sidebarController').tickables.push(controller)
|
||||
@_super.apply this, arguments
|
||||
|
||||
WorkersView: Em.View.extend
|
||||
templateName: 'workers/list'
|
||||
controller: Travis.WorkersController.create()
|
||||
|
||||
didInsertElement: ->
|
||||
@set 'controller.content', Travis.Worker.find()
|
||||
@_super.apply this, arguments
|
||||
|
||||
QueuesView: Em.View.extend
|
||||
templateName: 'queues/list'
|
||||
controller: Travis.QueuesController.create()
|
||||
|
||||
didInsertElement: ->
|
||||
queues = for queue in Travis.QUEUES
|
||||
Em.ArrayController.create
|
||||
content: Travis.Job.queued(queue.name)
|
||||
id: "queue_#{queue.name}"
|
||||
name: queue.display
|
||||
|
||||
@set 'controller.content', queues
|
||||
|
||||
@_super.apply this, arguments
|
||||
|
||||
WorkersView: Travis.View.extend
|
||||
toggleWorkers: (event) ->
|
||||
handle = $(event.target).toggleClass('open')
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user