add header
This commit is contained in:
parent
888c2719b8
commit
5c44b9112f
|
@ -22,8 +22,6 @@ require 'ext/jquery'
|
|||
{ name: 'jvmotp', display: 'JVM and Erlang' },
|
||||
],
|
||||
|
||||
currentUserId: 1
|
||||
|
||||
run: ->
|
||||
@app = Travis.App.create(this)
|
||||
@app.initialize()
|
||||
|
@ -31,8 +29,13 @@ require 'ext/jquery'
|
|||
App: Em.Application.extend
|
||||
initialize: (router) ->
|
||||
@connect()
|
||||
|
||||
@store = Travis.Store.create()
|
||||
@store.loadMany(Travis.Sponsor, Travis.SPONSORS)
|
||||
@store.load(Travis.User, { id: 1, login: 'svenfuchs', name: 'Sven Fuchs', email: 'me@svenfuchs.com', token: '1234567890', gravatar_url: 'http://www.gravatar.com/avatar/402602a60e500e85f2f5dc1ff3648ecb?s=48&d=mm' })
|
||||
|
||||
@currentUser = Travis.User.find(1)
|
||||
|
||||
@routes = Travis.Router.create(app: this)
|
||||
@_super(Em.Object.create())
|
||||
@routes.start()
|
||||
|
|
|
@ -1,14 +1,17 @@
|
|||
Travis.Layout.Base = Em.Object.extend
|
||||
init: ->
|
||||
@parent = @get('parent')
|
||||
@setup(Array.prototype.slice.apply(arguments))
|
||||
@currentUser = Travis.app.currentUser
|
||||
|
||||
@setup(Array.prototype.slice.apply(arguments).concat(@get('name')))
|
||||
@connect()
|
||||
|
||||
setup: (controllers) ->
|
||||
$.extend this, Travis.Controllers
|
||||
$.extend this, Travis.Views
|
||||
|
||||
for name in controllers.concat(@get('name'))
|
||||
# ember wants this kind of setup for its connectOutlets magic
|
||||
for name in controllers
|
||||
key = "#{$.camelize(name, false)}Controller"
|
||||
name = $.camelize(key)
|
||||
klass = Travis.Controllers[name] || Em.Controller
|
||||
|
@ -17,11 +20,5 @@ Travis.Layout.Base = Em.Object.extend
|
|||
connect: ->
|
||||
@parent.connectOutlet
|
||||
outletName: 'layout'
|
||||
controller: @controller()
|
||||
viewClass: @viewClass()
|
||||
|
||||
controller: ->
|
||||
this["#{$.camelize(@get('name'), false)}Controller"]
|
||||
|
||||
viewClass: ->
|
||||
Travis.Views["#{$.camelize(@get('name'))}Layout"]
|
||||
controller: this["#{$.camelize(@get('name'), false)}Controller"]
|
||||
viewClass: Travis.Views["#{$.camelize(@get('name'))}Layout"]
|
||||
|
|
|
@ -4,7 +4,8 @@ Travis.Layout.Default = Travis.Layout.Base.extend
|
|||
name: 'default'
|
||||
|
||||
init: ->
|
||||
@_super('repositories', 'repository', 'tabs', 'build', 'job')
|
||||
@_super('top', 'repositories', 'repository', 'tabs', 'build', 'job')
|
||||
@connectHead(@currentUser)
|
||||
@connectLeft(Travis.Repository.find())
|
||||
Travis.Layout.Sidebar.create(defaultController: @get('defaultController'))
|
||||
|
||||
|
@ -59,6 +60,10 @@ Travis.Layout.Default = Travis.Layout.Base.extend
|
|||
callback(job)
|
||||
|
||||
|
||||
connectHead: (user)->
|
||||
@defaultController.connectOutlet(outletName: 'top', name: 'top')
|
||||
@topController.set('user', user)
|
||||
|
||||
connectLeft: (repositories) ->
|
||||
@repositories = repositories
|
||||
@defaultController.connectOutlet(outletName: 'left', name: 'repositories', context: repositories)
|
||||
|
|
|
@ -4,14 +4,20 @@ Travis.Layout.Profile = Travis.Layout.Base.extend
|
|||
name: 'profile'
|
||||
|
||||
init: ->
|
||||
@_super('profile', 'hooks')
|
||||
@_super('top', 'profile', 'hooks')
|
||||
@connectHead(@currentUser)
|
||||
|
||||
viewShow: (params) ->
|
||||
@connectProfile(Travis.Profile.find())
|
||||
@connectHooks(Travis.Hook.find())
|
||||
if @currentUser
|
||||
@connectProfile(@currentUser)
|
||||
@connectHooks(Travis.Hook.find())
|
||||
|
||||
connectProfile: (profile) ->
|
||||
@profileController.connectOutlet(outletName: 'main', name: 'profile', context: profile)
|
||||
connectHead:(user) ->
|
||||
@profileController.connectOutlet(outletName: 'top', name: 'top')
|
||||
@topController.set('user', user)
|
||||
|
||||
connectProfile: (user) ->
|
||||
@profileController.connectOutlet(outletName: 'main', name: 'profile', context: user)
|
||||
|
||||
connectHooks: (hooks) ->
|
||||
@profileController.connectOutlet(outletName: 'hooks', name: 'hooks', context: hooks)
|
||||
|
|
|
@ -3,8 +3,8 @@ require 'models/build'
|
|||
require 'models/commit'
|
||||
require 'models/hook'
|
||||
require 'models/job'
|
||||
require 'models/profile'
|
||||
require 'models/repository'
|
||||
require 'models/sponsor'
|
||||
require 'models/user'
|
||||
require 'models/worker'
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
require 'travis/model'
|
||||
|
||||
@Travis.Profile = Travis.Model.extend
|
||||
@Travis.User = Travis.Model.extend
|
||||
name: DS.attr('string')
|
||||
email: DS.attr('string')
|
||||
login: DS.attr('string')
|
||||
|
@ -10,11 +10,3 @@ require 'travis/model'
|
|||
urlGithub: (->
|
||||
"http://github.com/#{@get('login')}"
|
||||
).property()
|
||||
|
||||
@Travis.Profile.reopenClass
|
||||
find: ->
|
||||
@_super(Travis.currentUserId) if Travis.currentUserId
|
||||
|
||||
buildURL: ->
|
||||
'profile'
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
<div id="head">
|
||||
<a href="#">Travis CI</a>
|
||||
<a href="#!/profile">Profile</a>
|
||||
<div id="top">
|
||||
{{outlet top}}
|
||||
</div>
|
||||
|
||||
<div id="left">
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<div id="head">
|
||||
<a href="#">Travis CI</a>
|
||||
<a href="#!/profile">Profile</a>
|
||||
<div id="top">
|
||||
{{outlet top}}
|
||||
</div>
|
||||
|
||||
<div id="main">
|
||||
|
|
27
assets/javascripts/app/templates/layouts/top.hbs
Normal file
27
assets/javascripts/app/templates/layouts/top.hbs
Normal file
|
@ -0,0 +1,27 @@
|
|||
<a href="#"><h1>Travis</h1></a>
|
||||
|
||||
<ul id="navigation">
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/stats">Stats</a></li>
|
||||
<li><a href="http://about.travis-ci.org/blog">Blog</a></li>
|
||||
<li><a href="http://about.travis-ci.org/docs">Docs</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="profile">
|
||||
{{#if user}}
|
||||
<img {{bindAttr src="user.gravatarUrl"}}>
|
||||
<span class="name">{{user.name}}</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="#!/profile">{{t layouts.top.profile}}</a>
|
||||
</li>
|
||||
<li>
|
||||
<a {{action signOut}}>{{t layouts.top.sign_out}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
{{else}}
|
||||
<a {{action signin}}>{{t layouts.top.github_login}}</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
||||
|
|
@ -4,6 +4,12 @@ require 'ext/ember/namespace'
|
|||
DefaultLayout: Em.View.extend(templateName: 'layouts/default')
|
||||
ProfileLayout: Em.View.extend(templateName: 'layouts/profile')
|
||||
|
||||
TopView: Em.View.extend
|
||||
templateName: 'layouts/top'
|
||||
currentUser: (->
|
||||
Travis.app.currentUser
|
||||
).property('Travis.app.currentUser')
|
||||
|
||||
SidebarView: Em.View.extend(templateName: 'layouts/sidebar')
|
||||
ProfileView: Em.View.extend(templateName: 'profile/show')
|
||||
HooksView: Em.View.extend(templateName: 'hooks/list')
|
||||
|
|
|
@ -45,14 +45,6 @@ workers = [
|
|||
{ id: 2, name: 'ruby-2', host: 'worker.travis-ci.org', state: 'ready' }
|
||||
]
|
||||
|
||||
profile =
|
||||
id: 1
|
||||
login: 'svenfuchs'
|
||||
name: 'Sven Fuchs'
|
||||
email: 'me@svenfuchs.com'
|
||||
token: '1234567890'
|
||||
gravatar_url: 'http://www.gravatar.com/avatar/402602a60e500e85f2f5dc1ff3648ecb?s=48&d=mm'
|
||||
|
||||
hooks = [
|
||||
{ slug: 'travis-ci/travis-core', description: 'description of travis-core', active: true, private: false }
|
||||
{ slug: 'travis-ci/travis-assets', description: 'description of travis-assets', active: false, private: false }
|
||||
|
@ -115,11 +107,6 @@ $.mockjax
|
|||
responseText:
|
||||
jobs: $.select(jobs, (job) -> job.state == 'created')
|
||||
|
||||
$.mockjax
|
||||
url: '/profile'
|
||||
responseTime: responseTime
|
||||
responseText: { profile: profile }
|
||||
|
||||
$.mockjax
|
||||
url: '/profile/hooks'
|
||||
responseTime: responseTime
|
||||
|
|
|
@ -16,7 +16,7 @@ body {
|
|||
font-family: Helvetica;
|
||||
}
|
||||
|
||||
#head {
|
||||
#top {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
font-size: 20px;
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -16,7 +16,7 @@ body {
|
|||
font-family: Helvetica;
|
||||
}
|
||||
|
||||
#head {
|
||||
#top {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
font-size: 20px;
|
||||
|
|
Loading…
Reference in New Issue
Block a user