]> git.openstreetmap.org Git - rails.git/commitdiff
Add standard List-XXX headers to some notification messages
authorTom Hughes <tom@compton.nu>
Sat, 24 Feb 2024 09:57:21 +0000 (09:57 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 25 Feb 2024 09:48:12 +0000 (09:48 +0000)
app/mailers/user_mailer.rb
config/locales/en.yml

index f4cd9d3e5471a869b4acc06ce7ea9f474d1757f5..4f56d990084e7496dcd3f7f67b76b8d1a9321345 100644 (file)
@@ -104,6 +104,14 @@ class UserMailer < ApplicationMailer
 
       set_references("diary", comment.diary_entry)
 
+      set_list_headers(
+        "#{comment.diary_entry.id}.diary.www.openstreetmap.org",
+        t(".description", :id => comment.diary_entry.id),
+        :archive => @readurl,
+        :subscribe => diary_entry_subscribe_url(comment.diary_entry.user, comment.diary_entry),
+        :unsubscribe => @unsubscribeurl
+      )
+
       mail :from => from_address(comment.user.display_name, "c", comment.id, comment.notification_token(recipient.id), recipient.id),
            :to => recipient.email,
            :subject => t(".subject", :user => comment.user.display_name)
@@ -142,6 +150,12 @@ class UserMailer < ApplicationMailer
 
       set_references("note", comment.note)
 
+      set_list_headers(
+        "#{comment.note.id}.note.www.openstreetmap.org",
+        t(".description", :id => comment.note.id),
+        :archive => @noteurl
+      )
+
       subject = if @owner
                   t(".#{@event}.subject_own", :commenter => @commenter)
                 else
@@ -175,6 +189,14 @@ class UserMailer < ApplicationMailer
 
       set_references("changeset", comment.changeset)
 
+      set_list_headers(
+        "#{comment.changeset.id}.changeset.www.openstreetmap.org",
+        t(".description", :id => comment.changeset.id),
+        :subscribe => changeset_subscribe_url(comment.changeset),
+        :unsubscribe => @unsubscribe_url,
+        :archive => @changeset_url
+      )
+
       mail :to => recipient.email, :subject => subject
     end
   end
@@ -247,4 +269,11 @@ class UserMailer < ApplicationMailer
     headers["In-Reply-To"] = ref
     headers["References"] = ref
   end
+
+  def set_list_headers(id, description, options = {})
+    headers["List-ID"] = "#{description} <#{id}>"
+    headers["List-Archive"] = "<#{options[:archive]}>" if options[:archive]
+    headers["List-Subscribe"] = "<#{options[:subscribe]}>" if options[:subscribe]
+    headers["List-Unsubscribe"] = "<#{options[:unsubscribe]}>" if options[:unsubscribe]
+  end
 end
index 35dcd3bad3d5e072a825d5a701ef1902bcec52a1..2f1e4d016f717f96bb0f133456acea3e1348af62 100644 (file)
@@ -1584,6 +1584,7 @@ en:
     more: More
   user_mailer:
     diary_comment_notification:
+      description: "OpenStreetMap Diary Entry #%{id}"
       subject: "[OpenStreetMap] %{user} commented on a diary entry"
       hi: "Hi %{to_user},"
       header: "%{from_user} has commented on the OpenStreetMap diary entry with the subject %{subject}:"
@@ -1640,6 +1641,7 @@ en:
       hopefully_you: "Someone (possibly you) has asked for the password to be reset on this email address's openstreetmap.org account."
       click_the_link: "If this is you, please click the link below to reset your password."
     note_comment_notification:
+      description: "OpenStreetMap Note #%{id}"
       anonymous: An anonymous user
       greeting: "Hi,"
       commented:
@@ -1666,6 +1668,7 @@ en:
       details: "More details about the note can be found at %{url}."
       details_html: "More details about the note can be found at %{url}."
     changeset_comment_notification:
+      description: "OpenStreetMap Changeset #%{id}"
       hi: "Hi %{to_user},"
       greeting: "Hi,"
       commented: