From fed8f7c6f2e8d539e65084521adb385da9b628da Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 18 Jun 2014 11:21:40 +1000 Subject: [PATCH] BUGFIX: muted categories showing up in new via message bus --- .../javascripts/discourse/models/topic_tracking_state.js | 7 +++++++ app/models/topic_tracking_state.rb | 3 ++- app/serializers/current_user_serializer.rb | 9 ++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/models/topic_tracking_state.js b/app/assets/javascripts/discourse/models/topic_tracking_state.js index a3051534dce..29b79e7f473 100644 --- a/app/assets/javascripts/discourse/models/topic_tracking_state.js +++ b/app/assets/javascripts/discourse/models/topic_tracking_state.js @@ -17,6 +17,13 @@ Discourse.TopicTrackingState = Discourse.Model.extend({ tracker.incrementMessageCount(); } + if (data.message_type === "new_topic"){ + var ignored_categories = Discourse.User.currentProp("muted_category_ids"); + if(_.include(ignored_categories, data.payload.category_id)){ + return; + } + } + if (data.message_type === "new_topic" || data.message_type === "unread" || data.message_type === "read") { tracker.notify(data); var old = tracker.states["t" + data.topic_id]; diff --git a/app/models/topic_tracking_state.rb b/app/models/topic_tracking_state.rb index 4a1d9e80eb2..1e1bd25a276 100644 --- a/app/models/topic_tracking_state.rb +++ b/app/models/topic_tracking_state.rb @@ -26,7 +26,8 @@ class TopicTrackingState last_read_post_number: nil, highest_post_number: 1, created_at: topic.created_at, - topic_id: topic.id + topic_id: topic.id, + category_id: topic.category_id } } diff --git a/app/serializers/current_user_serializer.rb b/app/serializers/current_user_serializer.rb index 5253a049505..d8b78a06cf6 100644 --- a/app/serializers/current_user_serializer.rb +++ b/app/serializers/current_user_serializer.rb @@ -22,7 +22,8 @@ class CurrentUserSerializer < BasicUserSerializer :should_be_redirected_to_top, :redirected_to_top_reason, :disable_jump_reply, - :custom_fields + :custom_fields, + :muted_category_ids def include_site_flagged_posts_count? object.staff? @@ -93,4 +94,10 @@ class CurrentUserSerializer < BasicUserSerializer end end + def muted_category_ids + @muted_category_ids ||= CategoryUser.where(user_id: object.id, + notification_level: TopicUser.notification_levels[:muted]) + .pluck(:category_id) + end + end