From 5fbc8ad3f471fde8c5defedc41bbb8374e13abdb Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Mon, 4 Feb 2008 00:15:28 +0000 Subject: [PATCH] Send email notifications when people comment on diary entries. Closes #655. --- app/controllers/diary_entry_controller.rb | 1 + app/models/notifier.rb | 28 +++++++++++++++++++ app/views/diary_entry/_diary_comment.rhtml | 2 +- .../notifier/diary_comment_notification.rhtml | 20 +++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 app/views/notifier/diary_comment_notification.rhtml diff --git a/app/controllers/diary_entry_controller.rb b/app/controllers/diary_entry_controller.rb index 13d3121a5..643728dc4 100644 --- a/app/controllers/diary_entry_controller.rb +++ b/app/controllers/diary_entry_controller.rb @@ -20,6 +20,7 @@ class DiaryEntryController < ApplicationController @diary_comment = @entry.diary_comments.build(params[:diary_comment]) @diary_comment.user = @user if @diary_comment.save + Notifier::deliver_diary_comment_notification(@diary_comment) redirect_to :controller => 'diary_entry', :action => 'view', :display_name => @entry.user.display_name, :id => @entry.id else render :action => 'view' diff --git a/app/models/notifier.rb b/app/models/notifier.rb index f934a8bde..f6870a8ad 100644 --- a/app/models/notifier.rb +++ b/app/models/notifier.rb @@ -63,6 +63,34 @@ class Notifier < ActionMailer::Base :message_id => message.id) end + def diary_comment_notification(comment) + recipients comment.diary_entry.user.email + from "webmaster@openstreetmap.org" + subject "[OpenStreetMap] #{comment.user.display_name} commented on your diary entry" + headers "Auto-Submitted" => "auto-generated" + body :to_user => comment.diary_entry.user.display_name, + :from_user => comment.user.display_name, + :body => comment.body, + :subject => comment.diary_entry.title, + :readurl => url_for(:host => SERVER_URL, + :controller => "diary_entry", + :action => "view", + :display_name => comment.diary_entry.user.display_name, + :id => comment.diary_entry.id, + :anchor => "comment#{comment.id}"), + :commenturl => url_for(:host => SERVER_URL, + :controller => "diary_entry", + :action => "view", + :display_name => comment.diary_entry.user.display_name, + :id => comment.diary_entry.id, + :anchor => "newcomment"), + :replyurl => url_for(:host => SERVER_URL, + :controller => "message", + :action => "new", + :user_id => comment.user.id, + :title => "Re: #{comment.diary_entry.title}") + end + def friend_notification(friend) befriender = User.find_by_id(friend.user_id) befriendee = User.find_by_id(friend.friend_user_id) diff --git a/app/views/diary_entry/_diary_comment.rhtml b/app/views/diary_entry/_diary_comment.rhtml index 2e7d0a531..be621cf5b 100644 --- a/app/views/diary_entry/_diary_comment.rhtml +++ b/app/views/diary_entry/_diary_comment.rhtml @@ -1,3 +1,3 @@ -

Comment from <%= link_to diary_comment.user.display_name, :controller => 'user', :action => 'view', :display_name => diary_comment.user.display_name %> at <%= diary_comment.created_at %>

+

Comment from <%= link_to diary_comment.user.display_name, :controller => 'user', :action => 'view', :display_name => diary_comment.user.display_name %> at <%= diary_comment.created_at %>

<%= htmlize(diary_comment.body) %>
diff --git a/app/views/notifier/diary_comment_notification.rhtml b/app/views/notifier/diary_comment_notification.rhtml new file mode 100644 index 000000000..05b1f0886 --- /dev/null +++ b/app/views/notifier/diary_comment_notification.rhtml @@ -0,0 +1,20 @@ +*************************************************************************** +Please do not reply to this email. Use the OpenStreetMap web site to reply. +*************************************************************************** + +Hi <%= @to_user %>, + +<%= @from_user %> has commented on your recent OpenStreetMap diary entry +with the subject "<%= @subject %>": + +== +<%= @body %> +== + +You can also read the comment at <%= @readurl %> +and you can comment at <%= @commenturl %> +or reply at <%= @replyurl %> + +*************************************************************************** +Please do not reply to this email. Use the OpenStreetMap web site to reply. +*************************************************************************** -- 2.43.2