diff --git a/assets/scripts/app/auth.coffee b/assets/scripts/app/auth.coffee index 01890ef4..1f71077a 100644 --- a/assets/scripts/app/auth.coffee +++ b/assets/scripts/app/auth.coffee @@ -48,7 +48,7 @@ user = @storeUser(data.user) if data?.user @set('state', if user then 'signed-in' else 'signed-out') @set('user', if user then user else undefined) - @afterSignIn() + @afterSignIn(user) if data afterSignIn: -> @get('app.router').send('afterSignIn', @readAfterSignInPath()) diff --git a/assets/scripts/app/controllers/repos.coffee b/assets/scripts/app/controllers/repos.coffee index 9612b56e..a5b70701 100644 --- a/assets/scripts/app/controllers/repos.coffee +++ b/assets/scripts/app/controllers/repos.coffee @@ -6,7 +6,6 @@ Travis.ReposController = Ember.ArrayController.extend isLoadedBinding: 'content.isLoaded' init: -> - @activate(@defaultTab) Ember.run.later(@updateTimes.bind(this), Travis.INTERVALS.updateTimes) updateTimes: -> @@ -16,6 +15,7 @@ Travis.ReposController = Ember.ArrayController.extend Ember.run.later(@updateTimes.bind(this), Travis.INTERVALS.updateTimes) activate: (tab, params) -> + tab ||= @defaultTab @set('tab', tab) this["view#{$.camelize(tab)}"](params) diff --git a/assets/scripts/app/pusher.coffee b/assets/scripts/app/pusher.coffee index 1e13feea..ea10762e 100644 --- a/assets/scripts/app/pusher.coffee +++ b/assets/scripts/app/pusher.coffee @@ -1,29 +1,35 @@ Travis.Pusher = (key) -> - @init(key) if key + @init(key) # if key this $.extend Travis.Pusher, CHANNELS: ['common'] CHANNEL_PREFIX: '' + ENCRYPTED: false $.extend Travis.Pusher.prototype, active_channels: [] init: (key) -> Pusher.warn = @warn.bind(this) - @pusher = new Pusher(key) - @subscribe(channel) for channel in Travis.Pusher.CHANNELS + @pusher = new Pusher(key, encrypted: Travis.Pusher.ENCRYPTED) + @subscribeAll(Travis.Pusher.CHANNELS) if Travis.Pusher.CHANNELS + + subscribeAll: (channels) -> + for channel in channels + name = @prefix(channel) + unless @pusher.channels.find(name) + channel = @pusher.channels.add(name, this) + channel.bind_all((event, data) => @receive(event, data)) + @pusher.subscribeAll() subscribe: (channel) -> - if @pusher && @active_channels.indexOf(channel) == -1 - @active_channels.push(channel) - @pusher.subscribe(@prefix(channel)).bind_all((event, data) => @receive(event, data)) + channel = @prefix(channel) + @pusher.subscribe(channel).bind_all((event, data) => @receive(event, data)) unless @pusher?.channel(channel) unsubscribe: (channel) -> - ix = @active_channels.indexOf(channel) - if @pusher && ix == -1 - @active_channels.splice(ix, 1) - @pusher.unsubscribe(@prefix(channel)) + channel = @prefix(channel) + @pusher.unsubscribe(channel) if @pusher?.channel(channel) prefix: (channel) -> "#{Travis.Pusher.CHANNEL_PREFIX}#{channel}" diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index 3f700615..43e1394e 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -163,14 +163,15 @@ Travis.Router = Ember.Router.extend home: Ember.Route.extend route: '/' connectOutlets: (router) -> - router.get('applicationView').connectLayout 'home' - $('body').attr('id', 'home') - router.get('applicationController').connectOutlet 'left', 'repos' - router.get('applicationController').connectOutlet 'right', 'sidebar' - router.get('applicationController').connectOutlet 'top', 'top' - router.get('applicationController').connectOutlet 'main', 'repo' - router.get('applicationController').connectOutlet 'flash', 'flash' - router.get('repoController').set('repos', router.get('reposController')) + router.get('applicationView').connectLayout 'home' + $('body').attr('id', 'home') + router.get('applicationController').connectOutlet 'left', 'repos' + router.get('applicationController').connectOutlet 'right', 'sidebar' + router.get('applicationController').connectOutlet 'top', 'top' + router.get('applicationController').connectOutlet 'main', 'repo' + router.get('applicationController').connectOutlet 'flash', 'flash' + router.get('reposController').activate() + router.get('repoController').set('repos', router.get('reposController')) show: Ember.Route.extend route: '/' diff --git a/assets/scripts/app/templates/layouts/top.hbs b/assets/scripts/app/templates/layouts/top.hbs index a9f056aa..ff7905fc 100644 --- a/assets/scripts/app/templates/layouts/top.hbs +++ b/assets/scripts/app/templates/layouts/top.hbs @@ -18,7 +18,7 @@
  • {{t layouts.top.github_login}} - {{user.name}} + {{view.userName}} Signing in