Fix profile views
This commit is contained in:
parent
f121a008c6
commit
4f21b097a8
|
@ -20,6 +20,14 @@ Travis.ProfileLayoutController = Em.Controller.extend()
|
|||
Travis.AuthLayoutController = Em.Controller.extend()
|
||||
Travis.CurrentUserController = Em.ObjectController.extend()
|
||||
|
||||
Travis.AccountProfileController = Em.Controller.extend
|
||||
needs: ['currentUser']
|
||||
userBinding: 'controllers.currentUser'
|
||||
|
||||
Travis.AccountIndexController = Em.Controller.extend
|
||||
needs: ['profile']
|
||||
hooksBinding: 'controllers.profile.hooks'
|
||||
|
||||
require 'controllers/accounts'
|
||||
require 'controllers/build'
|
||||
require 'controllers/builds'
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
Travis.AccountsController = Ember.ArrayController.extend
|
||||
tab: 'accounts'
|
||||
|
||||
init: ->
|
||||
@_super()
|
||||
|
||||
findByLogin: (login) ->
|
||||
@find (account) -> account.get('login') == login
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
Travis.ProfileController = Travis.Controller.extend
|
||||
name: 'profile'
|
||||
userBinding: 'Travis.app.currentUser'
|
||||
accountsBinding: 'Travis.app.router.accountsController'
|
||||
|
||||
needs: ['currentUser', 'accounts']
|
||||
userBinding: 'controllers.currentUser'
|
||||
accountsBinding: 'controllers.accounts'
|
||||
|
||||
init: ->
|
||||
self = this
|
||||
|
@ -10,7 +12,7 @@ Travis.ProfileController = Travis.Controller.extend
|
|||
))
|
||||
|
||||
account: (->
|
||||
login = @get('params.login') || Travis.app.get('currentUser.login')
|
||||
login = @get('params.login') || @get('user.login')
|
||||
account = @get('accounts').filter((account) -> account if account.get('login') == login)[0]
|
||||
account.select() if account
|
||||
account
|
||||
|
@ -25,7 +27,7 @@ Travis.ProfileController = Travis.Controller.extend
|
|||
@reloadHooks()
|
||||
|
||||
reloadHooks: ->
|
||||
@set('hooks', Travis.Hook.find(owner_name: @get('params.login') || Travis.app.get('currentUser.login')))
|
||||
@set('hooks', Travis.Hook.find(owner_name: @get('params.login') || @get('user.login')))
|
||||
|
||||
viewUser: ->
|
||||
@connectTab('user')
|
||||
|
@ -33,7 +35,6 @@ Travis.ProfileController = Travis.Controller.extend
|
|||
connectTab: (tab) ->
|
||||
viewClass = Travis["#{$.camelize(tab)}View"]
|
||||
@set('tab', tab)
|
||||
@connectOutlet(outletName: 'pane', controller: this, viewClass: viewClass)
|
||||
|
||||
setParams: (params) ->
|
||||
@set('params', {})
|
||||
|
|
|
@ -389,6 +389,12 @@ Travis.Router.map ->
|
|||
|
||||
@route 'stats', path: '/stats'
|
||||
|
||||
@resource 'profile', path: '/profile', ->
|
||||
@route 'index', path: '/'
|
||||
@resource 'account', path: '/:login', ->
|
||||
@route 'index', path: '/'
|
||||
@route 'profile', path: '/profile'
|
||||
|
||||
Travis.IndexCurrentRoute = Ember.Route.extend
|
||||
renderTemplate: ->
|
||||
@render 'repo'
|
||||
|
@ -504,3 +510,70 @@ Travis.StatsRoute = Ember.Route.extend
|
|||
|
||||
setupController: ->
|
||||
@container.lookup('controller:application').connectLayout('simple')
|
||||
|
||||
Travis.ProfileRoute = Ember.Route.extend
|
||||
setupController: ->
|
||||
@container.lookup('controller:application').connectLayout('profile')
|
||||
@container.lookup('controller:accounts').set('content', Travis.Account.find())
|
||||
|
||||
renderTemplate: ->
|
||||
$('body').attr('id', 'profile')
|
||||
|
||||
@render 'top', outlet: 'top'
|
||||
@render 'accounts', outlet: 'left'
|
||||
@render 'flash', outlet: 'flash'
|
||||
@render 'profile'
|
||||
|
||||
Travis.ProfileIndexRoute = Ember.Route.extend
|
||||
setupController: ->
|
||||
@container.lookup('controller:profile').activate 'hooks'
|
||||
|
||||
renderTemplate: ->
|
||||
@render 'hooks', outlet: 'pane', into: 'profile'
|
||||
|
||||
Travis.AccountRoute = Ember.Route.extend
|
||||
setupController: (controller, account) ->
|
||||
profileController = @container.lookup('controller:profile')
|
||||
profileController.activate 'hooks'
|
||||
|
||||
if account
|
||||
params = { login: account.get('login') }
|
||||
profileController.setParams(params)
|
||||
|
||||
deserialize: (params) ->
|
||||
controller = @container.lookup('controller:accounts')
|
||||
account = controller.findByLogin(params.login)
|
||||
|
||||
if account
|
||||
account
|
||||
else
|
||||
content = Ember.Object.create(login: params.login)
|
||||
proxy = Ember.ObjectProxy.create(content: content)
|
||||
|
||||
observer = ->
|
||||
if account = controller.findByLogin(params.login)
|
||||
controller.removeObserver 'content.length', observer
|
||||
proxy.set('content', account)
|
||||
controller.addObserver 'content.length', observer
|
||||
|
||||
proxy
|
||||
|
||||
serialize: (account) ->
|
||||
if account
|
||||
{ login: account.get('login') }
|
||||
else
|
||||
{}
|
||||
|
||||
Travis.AccountIndexRoute = Ember.Route.extend
|
||||
setupController: ->
|
||||
@container.lookup('controller:profile').activate 'hooks'
|
||||
|
||||
renderTemplate: ->
|
||||
@render 'hooks', outlet: 'pane', into: 'profile'
|
||||
|
||||
Travis.AccountProfileRoute = Ember.Route.extend
|
||||
setupController: ->
|
||||
@container.lookup('controller:profile').activate 'user'
|
||||
|
||||
renderTemplate: ->
|
||||
@render 'user', outlet: 'pane', into: 'profile'
|
||||
|
|
|
@ -18,12 +18,12 @@
|
|||
<li {{bindAttr class="view.classProfile"}}>
|
||||
<p class="handle">
|
||||
<a class="signed-out" href="#" {{action signIn target="Travis"}}>{{t layouts.top.github_login}}</a>
|
||||
<a class="signed-in" {{action showProfile href=true}}><img {{bindAttr src="view.gravatarUrl"}}>{{view.userName}}</a>
|
||||
{{#linkTo "profile.index" class="signed-in"}}<img {{bindAttr src="view.gravatarUrl"}}>{{view.userName}}{{/linkTo}}
|
||||
<span class="signing-in">{{t layouts.top.signing_in}}</span>
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<a {{action showProfile href=true}}>{{t layouts.top.accounts}}</a>
|
||||
{{#linkTo "profile.index" class="signed-in"}}{{t layouts.top.accounts}}{{/linkTo}}
|
||||
</li>
|
||||
<li>
|
||||
<a href="/" {{action signOut target="Travis"}}>{{t layouts.top.sign_out}}</a>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
|
||||
<div class="tab">
|
||||
{{#collection Travis.AccountsListView contentBinding="controller"}}
|
||||
<a {{action showAccount view.account href=true}} class="name">{{view.name}}</a>
|
||||
{{#linkTo "account.index" view.account class="name"}}{{view.name}}{{/linkTo}}
|
||||
<p class="summary">
|
||||
<span class="repos_label">Repositories:</span>
|
||||
<abbr class="repos">{{view.account.reposCount}}</abbr>
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
<ul class="tabs">
|
||||
<li id="tab_hooks" {{bindAttr class="view.classHooks"}}>
|
||||
<h5>
|
||||
<a {{action showAccount view.account href=true}}>Repositories</a>
|
||||
{{#with view.account}}
|
||||
{{#if login}}
|
||||
{{#linkTo "account.index" this}}Repositories{{/linkTo}}
|
||||
{{/if}}
|
||||
{{/with}}
|
||||
</h5>
|
||||
</li>
|
||||
{{#if view.displayUser}}
|
||||
<li id="tab_user" {{bindAttr class="view.classUser"}}>
|
||||
<h5>
|
||||
<a {{action showUserProfile view.account href=true}}>Profile</a>
|
||||
{{#linkTo "account.profile" view.account}}Profile{{/linkTo}}
|
||||
</h5>
|
||||
</li>
|
||||
{{/if}}
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<dd>
|
||||
{{view Ember.Select id="locale"
|
||||
contentBinding="view.locales"
|
||||
valueBinding="Travis.app.currentUser.locale"
|
||||
valueBinding="user.locale"
|
||||
optionLabelPath="content.name"
|
||||
optionValuePath="content.key"}}
|
||||
</dd>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@Travis.reopen
|
||||
Travis.reopen
|
||||
ProfileView: Travis.View.extend
|
||||
templateName: 'profile/show'
|
||||
accountBinding: 'controller.account'
|
||||
|
|
Loading…
Reference in New Issue
Block a user