Send email notifications when people comment on diary entries. Closes #655.

This commit is contained in:
Tom Hughes 2008-02-04 00:15:28 +00:00
parent fae8295ec2
commit 5fbc8ad3f4
4 changed files with 50 additions and 1 deletions

View file

@ -20,6 +20,7 @@ class DiaryEntryController < ApplicationController
@diary_comment = @entry.diary_comments.build(params[:diary_comment]) @diary_comment = @entry.diary_comments.build(params[:diary_comment])
@diary_comment.user = @user @diary_comment.user = @user
if @diary_comment.save 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 redirect_to :controller => 'diary_entry', :action => 'view', :display_name => @entry.user.display_name, :id => @entry.id
else else
render :action => 'view' render :action => 'view'

View file

@ -63,6 +63,34 @@ class Notifier < ActionMailer::Base
:message_id => message.id) :message_id => message.id)
end 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) def friend_notification(friend)
befriender = User.find_by_id(friend.user_id) befriender = User.find_by_id(friend.user_id)
befriendee = User.find_by_id(friend.friend_user_id) befriendee = User.find_by_id(friend.friend_user_id)

View file

@ -1,3 +1,3 @@
<h4>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 %></h4> <h4 id="comment<%= diary_comment.id %>">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 %></h4>
<%= htmlize(diary_comment.body) %> <%= htmlize(diary_comment.body) %>
<hr /> <hr />

View file

@ -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.
***************************************************************************