add header
This commit is contained in:
parent
888c2719b8
commit
5c44b9112f
|
@ -22,8 +22,6 @@ require 'ext/jquery'
|
||||||
{ name: 'jvmotp', display: 'JVM and Erlang' },
|
{ name: 'jvmotp', display: 'JVM and Erlang' },
|
||||||
],
|
],
|
||||||
|
|
||||||
currentUserId: 1
|
|
||||||
|
|
||||||
run: ->
|
run: ->
|
||||||
@app = Travis.App.create(this)
|
@app = Travis.App.create(this)
|
||||||
@app.initialize()
|
@app.initialize()
|
||||||
|
@ -31,8 +29,13 @@ require 'ext/jquery'
|
||||||
App: Em.Application.extend
|
App: Em.Application.extend
|
||||||
initialize: (router) ->
|
initialize: (router) ->
|
||||||
@connect()
|
@connect()
|
||||||
|
|
||||||
@store = Travis.Store.create()
|
@store = Travis.Store.create()
|
||||||
@store.loadMany(Travis.Sponsor, Travis.SPONSORS)
|
@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)
|
@routes = Travis.Router.create(app: this)
|
||||||
@_super(Em.Object.create())
|
@_super(Em.Object.create())
|
||||||
@routes.start()
|
@routes.start()
|
||||||
|
|
|
@ -1,14 +1,17 @@
|
||||||
Travis.Layout.Base = Em.Object.extend
|
Travis.Layout.Base = Em.Object.extend
|
||||||
init: ->
|
init: ->
|
||||||
@parent = @get('parent')
|
@parent = @get('parent')
|
||||||
@setup(Array.prototype.slice.apply(arguments))
|
@currentUser = Travis.app.currentUser
|
||||||
|
|
||||||
|
@setup(Array.prototype.slice.apply(arguments).concat(@get('name')))
|
||||||
@connect()
|
@connect()
|
||||||
|
|
||||||
setup: (controllers) ->
|
setup: (controllers) ->
|
||||||
$.extend this, Travis.Controllers
|
$.extend this, Travis.Controllers
|
||||||
$.extend this, Travis.Views
|
$.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"
|
key = "#{$.camelize(name, false)}Controller"
|
||||||
name = $.camelize(key)
|
name = $.camelize(key)
|
||||||
klass = Travis.Controllers[name] || Em.Controller
|
klass = Travis.Controllers[name] || Em.Controller
|
||||||
|
@ -17,11 +20,5 @@ Travis.Layout.Base = Em.Object.extend
|
||||||
connect: ->
|
connect: ->
|
||||||
@parent.connectOutlet
|
@parent.connectOutlet
|
||||||
outletName: 'layout'
|
outletName: 'layout'
|
||||||
controller: @controller()
|
controller: this["#{$.camelize(@get('name'), false)}Controller"]
|
||||||
viewClass: @viewClass()
|
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'
|
name: 'default'
|
||||||
|
|
||||||
init: ->
|
init: ->
|
||||||
@_super('repositories', 'repository', 'tabs', 'build', 'job')
|
@_super('top', 'repositories', 'repository', 'tabs', 'build', 'job')
|
||||||
|
@connectHead(@currentUser)
|
||||||
@connectLeft(Travis.Repository.find())
|
@connectLeft(Travis.Repository.find())
|
||||||
Travis.Layout.Sidebar.create(defaultController: @get('defaultController'))
|
Travis.Layout.Sidebar.create(defaultController: @get('defaultController'))
|
||||||
|
|
||||||
|
@ -59,6 +60,10 @@ Travis.Layout.Default = Travis.Layout.Base.extend
|
||||||
callback(job)
|
callback(job)
|
||||||
|
|
||||||
|
|
||||||
|
connectHead: (user)->
|
||||||
|
@defaultController.connectOutlet(outletName: 'top', name: 'top')
|
||||||
|
@topController.set('user', user)
|
||||||
|
|
||||||
connectLeft: (repositories) ->
|
connectLeft: (repositories) ->
|
||||||
@repositories = repositories
|
@repositories = repositories
|
||||||
@defaultController.connectOutlet(outletName: 'left', name: 'repositories', context: repositories)
|
@defaultController.connectOutlet(outletName: 'left', name: 'repositories', context: repositories)
|
||||||
|
|
|
@ -4,14 +4,20 @@ Travis.Layout.Profile = Travis.Layout.Base.extend
|
||||||
name: 'profile'
|
name: 'profile'
|
||||||
|
|
||||||
init: ->
|
init: ->
|
||||||
@_super('profile', 'hooks')
|
@_super('top', 'profile', 'hooks')
|
||||||
|
@connectHead(@currentUser)
|
||||||
|
|
||||||
viewShow: (params) ->
|
viewShow: (params) ->
|
||||||
@connectProfile(Travis.Profile.find())
|
if @currentUser
|
||||||
@connectHooks(Travis.Hook.find())
|
@connectProfile(@currentUser)
|
||||||
|
@connectHooks(Travis.Hook.find())
|
||||||
|
|
||||||
connectProfile: (profile) ->
|
connectHead:(user) ->
|
||||||
@profileController.connectOutlet(outletName: 'main', name: 'profile', context: profile)
|
@profileController.connectOutlet(outletName: 'top', name: 'top')
|
||||||
|
@topController.set('user', user)
|
||||||
|
|
||||||
|
connectProfile: (user) ->
|
||||||
|
@profileController.connectOutlet(outletName: 'main', name: 'profile', context: user)
|
||||||
|
|
||||||
connectHooks: (hooks) ->
|
connectHooks: (hooks) ->
|
||||||
@profileController.connectOutlet(outletName: 'hooks', name: 'hooks', context: hooks)
|
@profileController.connectOutlet(outletName: 'hooks', name: 'hooks', context: hooks)
|
||||||
|
|
|
@ -3,8 +3,8 @@ require 'models/build'
|
||||||
require 'models/commit'
|
require 'models/commit'
|
||||||
require 'models/hook'
|
require 'models/hook'
|
||||||
require 'models/job'
|
require 'models/job'
|
||||||
require 'models/profile'
|
|
||||||
require 'models/repository'
|
require 'models/repository'
|
||||||
require 'models/sponsor'
|
require 'models/sponsor'
|
||||||
|
require 'models/user'
|
||||||
require 'models/worker'
|
require 'models/worker'
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
require 'travis/model'
|
require 'travis/model'
|
||||||
|
|
||||||
@Travis.Profile = Travis.Model.extend
|
@Travis.User = Travis.Model.extend
|
||||||
name: DS.attr('string')
|
name: DS.attr('string')
|
||||||
email: DS.attr('string')
|
email: DS.attr('string')
|
||||||
login: DS.attr('string')
|
login: DS.attr('string')
|
||||||
|
@ -10,11 +10,3 @@ require 'travis/model'
|
||||||
urlGithub: (->
|
urlGithub: (->
|
||||||
"http://github.com/#{@get('login')}"
|
"http://github.com/#{@get('login')}"
|
||||||
).property()
|
).property()
|
||||||
|
|
||||||
@Travis.Profile.reopenClass
|
|
||||||
find: ->
|
|
||||||
@_super(Travis.currentUserId) if Travis.currentUserId
|
|
||||||
|
|
||||||
buildURL: ->
|
|
||||||
'profile'
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<div id="head">
|
<div id="top">
|
||||||
<a href="#">Travis CI</a>
|
{{outlet top}}
|
||||||
<a href="#!/profile">Profile</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="left">
|
<div id="left">
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<div id="head">
|
<div id="top">
|
||||||
<a href="#">Travis CI</a>
|
{{outlet top}}
|
||||||
<a href="#!/profile">Profile</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="main">
|
<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')
|
DefaultLayout: Em.View.extend(templateName: 'layouts/default')
|
||||||
ProfileLayout: Em.View.extend(templateName: 'layouts/profile')
|
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')
|
SidebarView: Em.View.extend(templateName: 'layouts/sidebar')
|
||||||
ProfileView: Em.View.extend(templateName: 'profile/show')
|
ProfileView: Em.View.extend(templateName: 'profile/show')
|
||||||
HooksView: Em.View.extend(templateName: 'hooks/list')
|
HooksView: Em.View.extend(templateName: 'hooks/list')
|
||||||
|
|
|
@ -45,14 +45,6 @@ workers = [
|
||||||
{ id: 2, name: 'ruby-2', host: 'worker.travis-ci.org', state: 'ready' }
|
{ 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 = [
|
hooks = [
|
||||||
{ slug: 'travis-ci/travis-core', description: 'description of travis-core', active: true, private: false }
|
{ 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 }
|
{ slug: 'travis-ci/travis-assets', description: 'description of travis-assets', active: false, private: false }
|
||||||
|
@ -115,11 +107,6 @@ $.mockjax
|
||||||
responseText:
|
responseText:
|
||||||
jobs: $.select(jobs, (job) -> job.state == 'created')
|
jobs: $.select(jobs, (job) -> job.state == 'created')
|
||||||
|
|
||||||
$.mockjax
|
|
||||||
url: '/profile'
|
|
||||||
responseTime: responseTime
|
|
||||||
responseText: { profile: profile }
|
|
||||||
|
|
||||||
$.mockjax
|
$.mockjax
|
||||||
url: '/profile/hooks'
|
url: '/profile/hooks'
|
||||||
responseTime: responseTime
|
responseTime: responseTime
|
||||||
|
|
|
@ -16,7 +16,7 @@ body {
|
||||||
font-family: Helvetica;
|
font-family: Helvetica;
|
||||||
}
|
}
|
||||||
|
|
||||||
#head {
|
#top {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -16,7 +16,7 @@ body {
|
||||||
font-family: Helvetica;
|
font-family: Helvetica;
|
||||||
}
|
}
|
||||||
|
|
||||||
#head {
|
#top {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user