From b9698e8d2f3e897670adc475d1801336cf4406f0 Mon Sep 17 00:00:00 2001
From: Sam Saffron <sam.saffron@gmail.com>
Date: Mon, 18 Feb 2013 19:37:12 +1100
Subject: [PATCH] fix loading message am message bus stuff

---
 .../discourse/controllers/list_controller.js.coffee           | 1 -
 app/assets/javascripts/discourse/models/topic_list.js.coffee  | 1 +
 .../discourse/routes/filtered_list_route.js.coffee            | 2 --
 .../javascripts/discourse/templates/list/list.js.handlebars   | 4 ----
 .../javascripts/discourse/templates/list/topics.js.handlebars | 4 ++++
 .../discourse/views/list/list_topics_view.js.coffee           | 4 ++++
 vendor/gems/message_bus/lib/message_bus/diagnostics.rb        | 2 ++
 vendor/gems/message_bus/lib/message_bus/rack/middleware.rb    | 2 --
 8 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/app/assets/javascripts/discourse/controllers/list_controller.js.coffee b/app/assets/javascripts/discourse/controllers/list_controller.js.coffee
index 987845cba..4be14f1d9 100644
--- a/app/assets/javascripts/discourse/controllers/list_controller.js.coffee
+++ b/app/assets/javascripts/discourse/controllers/list_controller.js.coffee
@@ -39,7 +39,6 @@ Discourse.ListController = Ember.Controller.extend Discourse.Presence,
         Discourse.TopicList.list(current).then (items) =>
           @set('filterSummary', items.filter_summary)
           @set('filterMode', filterMode)
-          @set('allLoaded', true) unless items.more_topics_url
           @set('loading', false)
           deferred.resolve(items)
 
diff --git a/app/assets/javascripts/discourse/models/topic_list.js.coffee b/app/assets/javascripts/discourse/models/topic_list.js.coffee
index 9e0685dc3..6e9edbefa 100644
--- a/app/assets/javascripts/discourse/models/topic_list.js.coffee
+++ b/app/assets/javascripts/discourse/models/topic_list.js.coffee
@@ -9,6 +9,7 @@ window.Discourse.TopicList = Discourse.Model.extend
     Em.String.i18n('topics.no_' + @get('filter'))
   ).property('topics', 'topics@each', 'filter', 'loaded')
 
+
   loadMoreTopics: ->
     promise = new RSVP.Promise()
     if moreUrl = @get('more_topics_url')
diff --git a/app/assets/javascripts/discourse/routes/filtered_list_route.js.coffee b/app/assets/javascripts/discourse/routes/filtered_list_route.js.coffee
index 38da79204..2b6273190 100644
--- a/app/assets/javascripts/discourse/routes/filtered_list_route.js.coffee
+++ b/app/assets/javascripts/discourse/routes/filtered_list_route.js.coffee
@@ -5,8 +5,6 @@ window.Discourse.FilteredListRoute = Discourse.Route.extend
     listController = @controllerFor('list')
     listController.set('canCreateTopic', false)
     listController.set('filterMode', '')
-    listController.set('allLoaded', false)
-
 
   renderTemplate: ->
     @render 'listTopics', into: 'list', outlet: 'listView', controller: 'listTopics'
diff --git a/app/assets/javascripts/discourse/templates/list/list.js.handlebars b/app/assets/javascripts/discourse/templates/list/list.js.handlebars
index 75ccca731..c294ab930 100644
--- a/app/assets/javascripts/discourse/templates/list/list.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/list/list.js.handlebars
@@ -35,10 +35,6 @@
         {{/if}}
 
         {{outlet listView}}
-        
-        {{#if controller.allLoaded}}
-          <h3>{{{i18n topics.footer}}}</h3>
-        {{/if}}
       </div>
     </div>
 
diff --git a/app/assets/javascripts/discourse/templates/list/topics.js.handlebars b/app/assets/javascripts/discourse/templates/list/topics.js.handlebars
index 04c16f888..49aaccef1 100644
--- a/app/assets/javascripts/discourse/templates/list/topics.js.handlebars
+++ b/app/assets/javascripts/discourse/templates/list/topics.js.handlebars
@@ -55,5 +55,9 @@
       {{/if}}
     </footer>
 
+    {{#if view.allLoaded}}
+      <h3>{{{i18n topics.footer}}}</h3>
+    {{/if}}
+
   {{/if}}
 {{/unless}}
diff --git a/app/assets/javascripts/discourse/views/list/list_topics_view.js.coffee b/app/assets/javascripts/discourse/views/list/list_topics_view.js.coffee
index e5d97650a..cd50ddebf 100644
--- a/app/assets/javascripts/discourse/views/list/list_topics_view.js.coffee
+++ b/app/assets/javascripts/discourse/views/list/list_topics_view.js.coffee
@@ -18,6 +18,10 @@ window.Discourse.ListTopicsView = Ember.View.extend Discourse.Scrolling, Discour
 
   willDestroyElement: -> @unbindScrolling()
 
+  allLoaded: (->
+    !@get('loading') && !@get('controller.content.more_topics_url')
+  ).property('loading', 'controller.content.more_topics_url')
+
   didInsertElement: ->
     @bindScrolling()
     eyeline = new Discourse.Eyeline('.topic-list-item')
diff --git a/vendor/gems/message_bus/lib/message_bus/diagnostics.rb b/vendor/gems/message_bus/lib/message_bus/diagnostics.rb
index 8d8d34f8d..97883c8a1 100644
--- a/vendor/gems/message_bus/lib/message_bus/diagnostics.rb
+++ b/vendor/gems/message_bus/lib/message_bus/diagnostics.rb
@@ -32,6 +32,7 @@ class MessageBus::Diagnostics
     end
 
     MessageBus.subscribe('/_diagnostics/discover') do |msg|
+      MessageBus.on_connect.call msg.site_id if MessageBus.on_connect
       MessageBus.publish '/_diagnostics/process-discovery', { 
         pid: Process.pid,
         process_name: $0,
@@ -39,6 +40,7 @@ class MessageBus::Diagnostics
         uptime: (Time.now.to_f - start_time).to_i,
         hostname: hostname
       }, user_ids: [msg.data["user_id"]]
+      MessageBus.on_disconnect.call msg.site_id if MessageBus.on_disconnect
     end
   end
 end
diff --git a/vendor/gems/message_bus/lib/message_bus/rack/middleware.rb b/vendor/gems/message_bus/lib/message_bus/rack/middleware.rb
index 121d8144a..f240266a4 100644
--- a/vendor/gems/message_bus/lib/message_bus/rack/middleware.rb
+++ b/vendor/gems/message_bus/lib/message_bus/rack/middleware.rb
@@ -9,8 +9,6 @@ class MessageBus::Rack::Middleware
   def self.start_listener
     unless @started_listener
       MessageBus.subscribe do |msg|
-        p msg.channel
-        p msg.message_id
         EM.next_tick do 
           @@connection_manager.notify_clients(msg) if @@connection_manager
         end