Merge pull request #1476 from basecamp/mark-all-read
Fix: mark all as read wasn't refreshing in the notifications screen
This commit is contained in:
@@ -1,5 +1,16 @@
|
||||
class Notifications::BulkReadingsController < ApplicationController
|
||||
def create
|
||||
Current.user.notifications.unread.read_all
|
||||
|
||||
if from_tray?
|
||||
head :ok
|
||||
else
|
||||
redirect_to notifications_path
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def from_tray?
|
||||
params[:from_tray]
|
||||
end
|
||||
end
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%= button_to bulk_reading_path,
|
||||
<%= button_to bulk_reading_path(from_tray: true),
|
||||
class: "btn borderless tray__clear-notifications",
|
||||
title: "Mark all notifications as read",
|
||||
data: { action: "dialog#close badge#clear", turbo_frame: "notifications" },
|
||||
|
||||
@@ -5,11 +5,21 @@ class Notifications::BulkReadingsControllerTest < ActionDispatch::IntegrationTes
|
||||
sign_in_as :kevin
|
||||
end
|
||||
|
||||
test "create" do
|
||||
test "create marks all notifications as read" do
|
||||
assert_changes -> { notifications(:logo_published_kevin).reload.read? }, from: false, to: true do
|
||||
assert_changes -> { notifications(:layout_commented_kevin).reload.read? }, from: false, to: true do
|
||||
post bulk_reading_path
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
test "create redirects to notifications path when not from tray" do
|
||||
post bulk_reading_path
|
||||
assert_redirected_to notifications_path
|
||||
end
|
||||
|
||||
test "create returns ok when from tray" do
|
||||
post bulk_reading_path, params: { from_tray: true }
|
||||
assert_response :ok
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user