From d75b160385fc45a298975ddc2446063a8ef5703f Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Tue, 28 May 2013 17:12:37 -0400 Subject: [PATCH] Enable subscribing to notifications on start, instead of currentUser change which was hokey. --- app/assets/javascripts/discourse.js | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/app/assets/javascripts/discourse.js b/app/assets/javascripts/discourse.js index a6fa466b76e..b0c9855ec3a 100644 --- a/app/assets/javascripts/discourse.js +++ b/app/assets/javascripts/discourse.js @@ -217,6 +217,38 @@ Discourse = Ember.Application.createWithMixins({ }); }, + + /** + Subscribes the current user to receive message bus notifications + **/ + subscribeUserToNotifications: function() { + var user = Discourse.User.current(); + if (user) { + var bus = Discourse.MessageBus; + bus.callbackInterval = Discourse.SiteSettings.polling_interval; + bus.enableLongPolling = true; + if (user.admin || user.moderator) { + bus.subscribe("/flagged_counts", function(data) { + user.set('site_flagged_posts_count', data.total); + }); + } + bus.subscribe("/notification/" + user.get('id'), (function(data) { + user.set('unread_notifications', data.unread_notifications); + user.set('unread_private_messages', data.unread_private_messages); + }), user.notification_channel_position); + + bus.subscribe("/categories", function(data){ + var site = Discourse.Site.instance(); + data.categories.each(function(c){ + site.updateCategory(c) + }); + }); + + } + }, + + + /** Start up the Discourse application. @@ -233,6 +265,7 @@ Discourse = Ember.Application.createWithMixins({ // Developer specific functions Discourse.Development.setupProbes(); Discourse.Development.observeLiveChanges(); + Discourse.subscribeUserToNotifications(); } });