From 5c44b9112f39bee83540b0e5cfc88ea99c52466d Mon Sep 17 00:00:00 2001 From: Sven Fuchs Date: Sun, 1 Jul 2012 02:16:35 +0200 Subject: [PATCH] add header --- assets/javascripts/app/app.coffee | 7 +++-- assets/javascripts/app/layout/base.coffee | 17 +++++------- assets/javascripts/app/layout/default.coffee | 7 ++++- assets/javascripts/app/layout/profile.coffee | 16 +++++++---- assets/javascripts/app/models.coffee | 2 +- .../models/{profile.coffee => user.coffee} | 10 +------ .../app/templates/layouts/default.hbs | 5 ++-- .../app/templates/layouts/profile.hbs | 5 ++-- .../javascripts/app/templates/layouts/top.hbs | 27 +++++++++++++++++++ assets/javascripts/app/views.coffee | 6 +++++ assets/javascripts/lib/mocks.coffee | 13 --------- assets/stylesheets/application.css | 2 +- public/javascripts/application.js | 2 +- public/stylesheets/application.css | 2 +- 14 files changed, 71 insertions(+), 50 deletions(-) rename assets/javascripts/app/models/{profile.coffee => user.coffee} (61%) create mode 100644 assets/javascripts/app/templates/layouts/top.hbs diff --git a/assets/javascripts/app/app.coffee b/assets/javascripts/app/app.coffee index 9f43deac..97d623b3 100644 --- a/assets/javascripts/app/app.coffee +++ b/assets/javascripts/app/app.coffee @@ -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() diff --git a/assets/javascripts/app/layout/base.coffee b/assets/javascripts/app/layout/base.coffee index b4470cb9..6b6686b9 100644 --- a/assets/javascripts/app/layout/base.coffee +++ b/assets/javascripts/app/layout/base.coffee @@ -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"] diff --git a/assets/javascripts/app/layout/default.coffee b/assets/javascripts/app/layout/default.coffee index 3c6c0211..be3875f8 100644 --- a/assets/javascripts/app/layout/default.coffee +++ b/assets/javascripts/app/layout/default.coffee @@ -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) diff --git a/assets/javascripts/app/layout/profile.coffee b/assets/javascripts/app/layout/profile.coffee index d4f12dd0..79dc5ee7 100644 --- a/assets/javascripts/app/layout/profile.coffee +++ b/assets/javascripts/app/layout/profile.coffee @@ -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) diff --git a/assets/javascripts/app/models.coffee b/assets/javascripts/app/models.coffee index f5e77bad..171b195c 100644 --- a/assets/javascripts/app/models.coffee +++ b/assets/javascripts/app/models.coffee @@ -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' diff --git a/assets/javascripts/app/models/profile.coffee b/assets/javascripts/app/models/user.coffee similarity index 61% rename from assets/javascripts/app/models/profile.coffee rename to assets/javascripts/app/models/user.coffee index dbe396b4..620191ee 100644 --- a/assets/javascripts/app/models/profile.coffee +++ b/assets/javascripts/app/models/user.coffee @@ -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' - diff --git a/assets/javascripts/app/templates/layouts/default.hbs b/assets/javascripts/app/templates/layouts/default.hbs index 96f01119..3e141ac8 100644 --- a/assets/javascripts/app/templates/layouts/default.hbs +++ b/assets/javascripts/app/templates/layouts/default.hbs @@ -1,6 +1,5 @@ -