From: Anton Khorev
Date: Tue, 26 Dec 2023 01:46:35 +0000 (+0300)
Subject: Fix messages heading update when message is deleted
X-Git-Tag: live~1084^2
X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/d1763dd526eb0c93f5d764119bcf127c85c08104
Fix messages heading update when message is deleted
---
diff --git a/app/assets/javascripts/messages.js b/app/assets/javascripts/messages.js
index 5accc1a60..cc86da05e 100644
--- a/app/assets/javascripts/messages.js
+++ b/app/assets/javascripts/messages.js
@@ -22,6 +22,8 @@ $(document).ready(function () {
$(".user-button").before(data.inboxanchor);
$("#inbox-count").replaceWith(data.inbox_count);
+ $("#outbox-count").replaceWith(data.outbox_count);
+ $("#muted-count").replaceWith(data.muted_count);
}
function updateReadState(target, isRead) {
diff --git a/app/views/messages/_message_count.html.erb b/app/views/messages/_inbox_count.html.erb
similarity index 91%
rename from app/views/messages/_message_count.html.erb
rename to app/views/messages/_inbox_count.html.erb
index 33a3b52f3..86bb2c474 100644
--- a/app/views/messages/_message_count.html.erb
+++ b/app/views/messages/_inbox_count.html.erb
@@ -1,7 +1,7 @@
-
+
<%= t "messages.inbox.messages",
:new_messages => t("messages.inbox.new_messages",
:count => current_user.new_messages.size),
:old_messages => t("messages.inbox.old_messages",
:count => current_user.messages.size - current_user.new_messages.size) %>
-
+
diff --git a/app/views/messages/_muted_count.html.erb b/app/views/messages/_muted_count.html.erb
new file mode 100644
index 000000000..207973d58
--- /dev/null
+++ b/app/views/messages/_muted_count.html.erb
@@ -0,0 +1,3 @@
+
+<%= t "messages.muted.messages", :count => current_user.muted_messages.size %>
+
diff --git a/app/views/messages/_outbox_count.html.erb b/app/views/messages/_outbox_count.html.erb
new file mode 100644
index 000000000..5b27f1d6e
--- /dev/null
+++ b/app/views/messages/_outbox_count.html.erb
@@ -0,0 +1,3 @@
+
+<%= t "messages.outbox.messages", :count => current_user.sent_messages.size %>
+
diff --git a/app/views/messages/destroy.json.jbuilder b/app/views/messages/destroy.json.jbuilder
index 3403ac888..65bfd6a6b 100644
--- a/app/views/messages/destroy.json.jbuilder
+++ b/app/views/messages/destroy.json.jbuilder
@@ -1,2 +1,4 @@
json.inboxanchor render(:partial => "layouts/inbox")
-json.inbox_count render(:partial => "message_count")
+json.inbox_count render(:partial => "inbox_count")
+json.outbox_count render(:partial => "outbox_count")
+json.muted_count render(:partial => "muted_count")
diff --git a/app/views/messages/inbox.html.erb b/app/views/messages/inbox.html.erb
index db807d2df..4d6be787b 100644
--- a/app/views/messages/inbox.html.erb
+++ b/app/views/messages/inbox.html.erb
@@ -4,7 +4,7 @@
<%= render :partial => "heading", :locals => { :active_link_path => inbox_messages_path } %>
-<%= render :partial => "message_count" %>
+<%= render :partial => "inbox_count" %>
<% if current_user.messages.size > 0 %>
<%= render :partial => "messages_table", :locals => { :columns => %w[from subject date], :messages => current_user.messages, :inner_partial => "message_summary" } %>
diff --git a/app/views/messages/mark.json.jbuilder b/app/views/messages/mark.json.jbuilder
index 3403ac888..65bfd6a6b 100644
--- a/app/views/messages/mark.json.jbuilder
+++ b/app/views/messages/mark.json.jbuilder
@@ -1,2 +1,4 @@
json.inboxanchor render(:partial => "layouts/inbox")
-json.inbox_count render(:partial => "message_count")
+json.inbox_count render(:partial => "inbox_count")
+json.outbox_count render(:partial => "outbox_count")
+json.muted_count render(:partial => "muted_count")
diff --git a/app/views/messages/muted.html.erb b/app/views/messages/muted.html.erb
index 40c74e915..8e97abc7f 100644
--- a/app/views/messages/muted.html.erb
+++ b/app/views/messages/muted.html.erb
@@ -4,6 +4,6 @@
<%= render :partial => "heading", :locals => { :active_link_path => muted_messages_path } %>
-<%= t ".messages", :count => current_user.muted_messages.size %>
+<%= render :partial => "muted_count" %>
<%= render :partial => "messages_table", :locals => { :columns => %w[from subject date], :messages => current_user.muted_messages, :inner_partial => "message_summary" } %>
diff --git a/app/views/messages/outbox.html.erb b/app/views/messages/outbox.html.erb
index ae8a899c4..65fbaf326 100644
--- a/app/views/messages/outbox.html.erb
+++ b/app/views/messages/outbox.html.erb
@@ -4,7 +4,7 @@
<%= render :partial => "heading", :locals => { :active_link_path => outbox_messages_path } %>
-<%= t ".messages", :count => current_user.sent_messages.size %>
+<%= render :partial => "outbox_count" %>
<% if current_user.sent_messages.size > 0 %>
<%= render :partial => "messages_table", :locals => { :columns => %w[to subject date], :messages => current_user.sent_messages, :inner_partial => "sent_message_summary" } %>
diff --git a/test/system/messages_test.rb b/test/system/messages_test.rb
new file mode 100644
index 000000000..87021dd6b
--- /dev/null
+++ b/test/system/messages_test.rb
@@ -0,0 +1,41 @@
+require "application_system_test_case"
+
+class NoteCommentsTest < ApplicationSystemTestCase
+ def test_delete_received_message
+ user = create(:user)
+ create(:message, :recipient => user)
+ sign_in_as(user)
+
+ visit inbox_messages_path
+ assert_text "You have 1 new message and 0 old messages"
+
+ click_button "Delete"
+ assert_text "You have 0 new messages and 0 old messages"
+ end
+
+ def test_delete_sent_message
+ user = create(:user)
+ create(:message, :sender => user)
+ sign_in_as(user)
+
+ visit outbox_messages_path
+ assert_text "You have 1 sent message"
+
+ click_button "Delete"
+ assert_text "You have 0 sent messages"
+ end
+
+ def test_delete_muted_message
+ user = create(:user)
+ muted_user = create(:user)
+ create(:user_mute, :owner => user, :subject => muted_user)
+ create(:message, :sender => muted_user, :recipient => user)
+ sign_in_as(user)
+
+ visit muted_messages_path
+ assert_text "1 muted message"
+
+ click_button "Delete"
+ assert_text "0 muted messages"
+ end
+end