diff --git a/app/assets/javascripts/discourse/models/post.js b/app/assets/javascripts/discourse/models/post.js index 8bba8df3ddd..bab33aac6ed 100644 --- a/app/assets/javascripts/discourse/models/post.js +++ b/app/assets/javascripts/discourse/models/post.js @@ -110,13 +110,10 @@ Discourse.Post = Discourse.Model.extend({ actionsHistory: (function() { if (!this.present('actions_summary')) return null; + return this.get('actions_summary').filter(function(i) { - if (i.get('count') === 0) { - return false; - } - if (i.get('users') && i.get('users').length > 0) { - return true; - } + if (i.get('count') === 0) return false; + if (i.get('users') && i.get('users').length > 0) return true; return !i.get('hidden'); }); }).property('actions_summary.@each.users', 'actions_summary.@each.count'), diff --git a/app/assets/javascripts/discourse/views/actions_history_view.js b/app/assets/javascripts/discourse/views/actions_history_view.js index 7958a3a30c5..bfa43825f01 100644 --- a/app/assets/javascripts/discourse/views/actions_history_view.js +++ b/app/assets/javascripts/discourse/views/actions_history_view.js @@ -21,6 +21,7 @@ Discourse.ActionsHistoryView = Discourse.View.extend({ // This was creating way too many bound ifs and subviews in the handlebars version. render: function(buffer) { + if (!this.present('content')) return; return this.get('content').forEach(function(c) { var alsoName; diff --git a/app/serializers/post_serializer.rb b/app/serializers/post_serializer.rb index 10c84987cb0..2891351814b 100644 --- a/app/serializers/post_serializer.rb +++ b/app/serializers/post_serializer.rb @@ -152,13 +152,14 @@ class PostSerializer < ApplicationSerializer hidden: (sym == :vote), can_act: scope.post_can_act?(object, sym, taken_actions: post_actions)} - next if !action_summary[:can_act] && !scope.current_user + # The following only applies if you're logged in + if action_summary[:can_act] and scope.current_user.present? + action_summary[:can_clear_flags] = scope.is_admin? && PostActionType.FlagTypes.include?(id) - action_summary[:can_clear_flags] = scope.is_admin? && PostActionType.FlagTypes.include?(id) - - if post_actions.present? and post_actions.has_key?(id) - action_summary[:acted] = true - action_summary[:can_undo] = scope.can_delete?(post_actions[id]) + if post_actions.present? and post_actions.has_key?(id) + action_summary[:acted] = true + action_summary[:can_undo] = scope.can_delete?(post_actions[id]) + end end # anonymize flags