travis-web/assets/javascripts/app/controllers/profile.coffee
2012-09-10 00:52:42 +02:00

38 lines
1.2 KiB
CoffeeScript

Travis.ProfileController = Travis.Controller.extend
name: 'profile'
userBinding: 'Travis.app.currentUser'
init: ->
@_super('top', 'owners')
@connectTop()
@connectOutlet outletName: 'left', controller: @ownersController, viewClass: Travis.OwnersView
@connectOutlet(outletName: 'main', controller: this, viewClass: Travis.ProfileView)
@owners = @ownersController.get('content')
owner: (->
login = @get('params.login') || Travis.app.get('currentUser.login')
@owners.toArray().filter((owner) -> owner if owner.get('login') == login)[0]
).property('owners.length', 'params.login')
activate: (action, params) ->
@setParams(params || @get('params'))
this["view#{$.camelize(action)}"]()
viewHooks: ->
@connectTab('hooks')
@set('hooks', Travis.Hook.find(login: @get('params.login') || Travis.app.get('currentUser.login')))
viewUser: ->
@connectTab('user')
connectTab: (tab) ->
viewClass = Travis["#{$.camelize(tab)}View"]
@set('tab', tab)
@connectOutlet(outletName: 'pane', controller: this, viewClass: viewClass)
setParams: (params) ->
@set('params', {})
@set("params.#{key}", params[key]) for key, value of params