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.AuthLayoutController = Em.Controller.extend()
|
||||||
Travis.CurrentUserController = Em.ObjectController.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/accounts'
|
||||||
require 'controllers/build'
|
require 'controllers/build'
|
||||||
require 'controllers/builds'
|
require 'controllers/builds'
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
Travis.AccountsController = Ember.ArrayController.extend
|
Travis.AccountsController = Ember.ArrayController.extend
|
||||||
tab: 'accounts'
|
tab: 'accounts'
|
||||||
|
|
||||||
init: ->
|
|
||||||
@_super()
|
|
||||||
|
|
||||||
findByLogin: (login) ->
|
findByLogin: (login) ->
|
||||||
@find (account) -> account.get('login') == login
|
@find (account) -> account.get('login') == login
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
Travis.ProfileController = Travis.Controller.extend
|
Travis.ProfileController = Travis.Controller.extend
|
||||||
name: 'profile'
|
name: 'profile'
|
||||||
userBinding: 'Travis.app.currentUser'
|
|
||||||
accountsBinding: 'Travis.app.router.accountsController'
|
needs: ['currentUser', 'accounts']
|
||||||
|
userBinding: 'controllers.currentUser'
|
||||||
|
accountsBinding: 'controllers.accounts'
|
||||||
|
|
||||||
init: ->
|
init: ->
|
||||||
self = this
|
self = this
|
||||||
|
@ -10,7 +12,7 @@ Travis.ProfileController = Travis.Controller.extend
|
||||||
))
|
))
|
||||||
|
|
||||||
account: (->
|
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 = @get('accounts').filter((account) -> account if account.get('login') == login)[0]
|
||||||
account.select() if account
|
account.select() if account
|
||||||
account
|
account
|
||||||
|
@ -25,7 +27,7 @@ Travis.ProfileController = Travis.Controller.extend
|
||||||
@reloadHooks()
|
@reloadHooks()
|
||||||
|
|
||||||
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: ->
|
viewUser: ->
|
||||||
@connectTab('user')
|
@connectTab('user')
|
||||||
|
@ -33,7 +35,6 @@ Travis.ProfileController = Travis.Controller.extend
|
||||||
connectTab: (tab) ->
|
connectTab: (tab) ->
|
||||||
viewClass = Travis["#{$.camelize(tab)}View"]
|
viewClass = Travis["#{$.camelize(tab)}View"]
|
||||||
@set('tab', tab)
|
@set('tab', tab)
|
||||||
@connectOutlet(outletName: 'pane', controller: this, viewClass: viewClass)
|
|
||||||
|
|
||||||
setParams: (params) ->
|
setParams: (params) ->
|
||||||
@set('params', {})
|
@set('params', {})
|
||||||
|
|
|
@ -389,6 +389,12 @@ Travis.Router.map ->
|
||||||
|
|
||||||
@route 'stats', path: '/stats'
|
@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
|
Travis.IndexCurrentRoute = Ember.Route.extend
|
||||||
renderTemplate: ->
|
renderTemplate: ->
|
||||||
@render 'repo'
|
@render 'repo'
|
||||||
|
@ -504,3 +510,70 @@ Travis.StatsRoute = Ember.Route.extend
|
||||||
|
|
||||||
setupController: ->
|
setupController: ->
|
||||||
@container.lookup('controller:application').connectLayout('simple')
|
@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"}}>
|
<li {{bindAttr class="view.classProfile"}}>
|
||||||
<p class="handle">
|
<p class="handle">
|
||||||
<a class="signed-out" href="#" {{action signIn target="Travis"}}>{{t layouts.top.github_login}}</a>
|
<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>
|
<span class="signing-in">{{t layouts.top.signing_in}}</span>
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a {{action showProfile href=true}}>{{t layouts.top.accounts}}</a>
|
{{#linkTo "profile.index" class="signed-in"}}{{t layouts.top.accounts}}{{/linkTo}}
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/" {{action signOut target="Travis"}}>{{t layouts.top.sign_out}}</a>
|
<a href="/" {{action signOut target="Travis"}}>{{t layouts.top.sign_out}}</a>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
<div class="tab">
|
<div class="tab">
|
||||||
{{#collection Travis.AccountsListView contentBinding="controller"}}
|
{{#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">
|
<p class="summary">
|
||||||
<span class="repos_label">Repositories:</span>
|
<span class="repos_label">Repositories:</span>
|
||||||
<abbr class="repos">{{view.account.reposCount}}</abbr>
|
<abbr class="repos">{{view.account.reposCount}}</abbr>
|
||||||
|
|
|
@ -1,13 +1,17 @@
|
||||||
<ul class="tabs">
|
<ul class="tabs">
|
||||||
<li id="tab_hooks" {{bindAttr class="view.classHooks"}}>
|
<li id="tab_hooks" {{bindAttr class="view.classHooks"}}>
|
||||||
<h5>
|
<h5>
|
||||||
<a {{action showAccount view.account href=true}}>Repositories</a>
|
{{#with view.account}}
|
||||||
|
{{#if login}}
|
||||||
|
{{#linkTo "account.index" this}}Repositories{{/linkTo}}
|
||||||
|
{{/if}}
|
||||||
|
{{/with}}
|
||||||
</h5>
|
</h5>
|
||||||
</li>
|
</li>
|
||||||
{{#if view.displayUser}}
|
{{#if view.displayUser}}
|
||||||
<li id="tab_user" {{bindAttr class="view.classUser"}}>
|
<li id="tab_user" {{bindAttr class="view.classUser"}}>
|
||||||
<h5>
|
<h5>
|
||||||
<a {{action showUserProfile view.account href=true}}>Profile</a>
|
{{#linkTo "account.profile" view.account}}Profile{{/linkTo}}
|
||||||
</h5>
|
</h5>
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<dd>
|
<dd>
|
||||||
{{view Ember.Select id="locale"
|
{{view Ember.Select id="locale"
|
||||||
contentBinding="view.locales"
|
contentBinding="view.locales"
|
||||||
valueBinding="Travis.app.currentUser.locale"
|
valueBinding="user.locale"
|
||||||
optionLabelPath="content.name"
|
optionLabelPath="content.name"
|
||||||
optionValuePath="content.key"}}
|
optionValuePath="content.key"}}
|
||||||
</dd>
|
</dd>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@Travis.reopen
|
Travis.reopen
|
||||||
ProfileView: Travis.View.extend
|
ProfileView: Travis.View.extend
|
||||||
templateName: 'profile/show'
|
templateName: 'profile/show'
|
||||||
accountBinding: 'controller.account'
|
accountBinding: 'controller.account'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user