Skip to content

Commit

Permalink
Add standard List-XXX headers to some notification messages
Browse files Browse the repository at this point in the history
  • Loading branch information
tomhughes committed Feb 24, 2024
1 parent 6a494f5 commit f477c22
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
29 changes: 29 additions & 0 deletions app/mailers/user_mailer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,14 @@ def diary_comment_notification(comment, recipient)

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)
Expand Down Expand Up @@ -142,6 +150,12 @@ def note_comment_notification(comment, recipient)

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
Expand Down Expand Up @@ -175,6 +189,14 @@ def changeset_comment_notification(comment, recipient)

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
Expand Down Expand Up @@ -247,4 +269,11 @@ def set_references(scope, reference_object)
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
3 changes: 3 additions & 0 deletions config/locales/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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}:"
Expand Down Expand Up @@ -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:
Expand All @@ -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:
Expand Down

0 comments on commit f477c22

Please sign in to comment.