38 lines
1.2 KiB
CoffeeScript
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
|
|
|
|
|