diff --git a/app/controllers/notifications_controller.rb b/app/controllers/notifications_controller.rb index 4f2dfdeb..8572f8ff 100644 --- a/app/controllers/notifications_controller.rb +++ b/app/controllers/notifications_controller.rb @@ -18,6 +18,9 @@ class NotificationsController < ApplicationController @notifications = cursored_notifications_for(type: @type, last_id: params[:last_id]) @notifications_last_id = @notifications.map(&:id).min @more_data_available = !cursored_notifications_for(type: @type, last_id: @notifications_last_id, size: 1).count.zero? + @counters = Notification.where(recipient: current_user, new: true) + .group(:target_type) + .count(:target_type) respond_to do |format| format.html diff --git a/app/views/tabs/_notifications.html.haml b/app/views/tabs/_notifications.html.haml index ad4d7a63..98ba302a 100644 --- a/app/views/tabs/_notifications.html.haml +++ b/app/views/tabs/_notifications.html.haml @@ -9,18 +9,18 @@ .list-group = list_group_item t('.answer'), notifications_path('answer'), - badge: Notification.for(current_user).where(target_type: 'Answer', new: true).count + badge: @counters['Answer'] = list_group_item t('.smile'), notifications_path('smile'), - badge: Notification.for(current_user).where(target_type: 'Smile', new: true).count + badge: @counters['Smile'] = list_group_item t('.comment'), notifications_path('comment'), - badge: Notification.for(current_user).where(target_type: 'Comment', new: true).count + badge: @counters['Comment'] = list_group_item t('.commentsmile'), notifications_path('commentsmile'), - badge: Notification.for(current_user).where(target_type: 'CommentSmile', new: true).count + badge: @counters['CommentSmile'] = list_group_item t('.relationship'), notifications_path('relationship'), - badge: Notification.for(current_user).where(target_type: 'Relationship', new: true).count + badge: @counters['Relationship'] .d-none.d-sm-block= render 'shared/links'