add header

This commit is contained in:
Sven Fuchs 2012-07-01 02:16:35 +02:00
parent 888c2719b8
commit 5c44b9112f
14 changed files with 71 additions and 50 deletions

View File

@ -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()

View File

@ -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"]

View File

@ -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)

View File

@ -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)

View File

@ -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'

View File

@ -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'

View File

@ -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">

View File

@ -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">

View 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>

View File

@ -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')

View File

@ -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

View File

@ -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

View File

@ -16,7 +16,7 @@ body {
font-family: Helvetica;
}
#head {
#top {
width: 100%;
height: 40px;
font-size: 20px;