sends a copy of the direct message to the sender
This commit is contained in:
@@ -12,7 +12,8 @@ class DirectMessagesController < ApplicationController
|
||||
|
||||
@direct_message = DirectMessage.new(parsed_params)
|
||||
if @direct_message.save
|
||||
Mailer.direct_message(@direct_message).deliver_later
|
||||
Mailer.direct_message_for_receiver(@direct_message).deliver_later
|
||||
Mailer.direct_message_for_sender(@direct_message).deliver_later
|
||||
redirect_to [@receiver, @direct_message], notice: I18n.t("flash.actions.create.direct_message")
|
||||
else
|
||||
render :new
|
||||
|
||||
@@ -50,12 +50,21 @@ class Mailer < ApplicationMailer
|
||||
end
|
||||
end
|
||||
|
||||
def direct_message(direct_message)
|
||||
def direct_message_for_receiver(direct_message)
|
||||
@direct_message = direct_message
|
||||
@receiver = @direct_message.receiver
|
||||
|
||||
with_user(@receiver) do
|
||||
mail(to: @receiver.email, subject: "Has recibido un nuevo mensaje privado")
|
||||
mail(to: @receiver.email, subject: t('mailers.direct_message_for_receiver.subject'))
|
||||
end
|
||||
end
|
||||
|
||||
def direct_message_for_sender(direct_message)
|
||||
@direct_message = direct_message
|
||||
@sender = @direct_message.sender
|
||||
|
||||
with_user(@sender) do
|
||||
mail(to: @sender.email, subject: t('mailers.direct_message_for_sender.subject'))
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="padding-bottom: 12px; padding-top: 24px; text-align: center;">
|
||||
<%= link_to user_url(@direct_message.sender_id), style: "font-family: 'Open Sans','Helvetica Neue',arial,sans-serif; background: #f7f5f2; border-radius: 6px; color: #3d3d66!important; font-weight: bold; margin: 0px; padding: 10px 15px; text-align: center; text-decoration: none; min-width: 200px; display: inline-block;", target: "_blank" do %>
|
||||
<%= link_to user_url(@direct_message.sender), style: "font-family: 'Open Sans','Helvetica Neue',arial,sans-serif; background: #f7f5f2; border-radius: 6px; color: #3d3d66!important; font-weight: bold; margin: 0px; padding: 10px 15px; text-align: center; text-decoration: none; min-width: 200px; display: inline-block;", target: "_blank" do %>
|
||||
<%= image_tag('icon_mailer_reply.png', style: "border: 0; display: inline-block; width: 100%; max-width: 12px; vertical-align: sub;", alt: "") %>
|
||||
<%= t('mailers.direct_message.reply',
|
||||
sender: @direct_message.sender.name) %>
|
||||
11
app/views/mailer/direct_message_for_sender.html.erb
Normal file
11
app/views/mailer/direct_message_for_sender.html.erb
Normal file
@@ -0,0 +1,11 @@
|
||||
<td style="padding-bottom: 20px; padding-left: 10px;">
|
||||
<p><%= @direct_message.receiver.name %></p>
|
||||
|
||||
<h1 style="font-family: 'Open Sans','Helvetica Neue',arial,sans-serif;">
|
||||
<%= @direct_message.title %>
|
||||
</h1>
|
||||
|
||||
<p style="font-family: 'Open Sans','Helvetica Neue',arial,sans-serif;font-size: 14px;font-weight: normal;line-height: 24px;">
|
||||
<%= @direct_message.body %>
|
||||
</p>
|
||||
</td>
|
||||
@@ -37,5 +37,8 @@ en:
|
||||
title: You received the following notifications
|
||||
share: Share
|
||||
comment: Comment proposal
|
||||
direct_message:
|
||||
direct_message_for_receiver:
|
||||
subject: "You have received a new private message"
|
||||
reply: Reply to %{sender}
|
||||
direct_message_for_sender:
|
||||
subject: "You have send a new private message"
|
||||
@@ -37,5 +37,8 @@ es:
|
||||
title: Has recibido las siguientes notificaciones
|
||||
share: Compartir
|
||||
comment: Comentar propuesta
|
||||
direct_message:
|
||||
direct_message_for_receiver:
|
||||
subject: "Has recibido un nuevo mensaje privado"
|
||||
reply: Responder a %{sender}
|
||||
direct_message_for_sender:
|
||||
subject: "Has enviado un nuevo mensaje privado"
|
||||
@@ -61,11 +61,4 @@ feature 'Direct messages' do
|
||||
expect(page).to have_content error_message
|
||||
end
|
||||
|
||||
context "Limits" do
|
||||
|
||||
pending "Cannot send more than one notification within established interval"
|
||||
pending "use timecop to make sure notifications can be sent after time interval"
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
@@ -148,6 +148,41 @@ feature 'Emails' do
|
||||
expect(email).to have_body_text(spending_proposal.feasible_explanation)
|
||||
end
|
||||
|
||||
context "Direct Message" do
|
||||
|
||||
scenario "Receiver email" do
|
||||
sender = create(:user, :level_two)
|
||||
receiver = create(:user, :level_two)
|
||||
|
||||
direct_message = create_direct_message(sender, receiver)
|
||||
|
||||
email = unread_emails_for(receiver.email).first
|
||||
|
||||
expect(email).to have_subject("You have received a new private message")
|
||||
expect(email).to have_body_text(direct_message.title)
|
||||
expect(email).to have_body_text(direct_message.body)
|
||||
expect(email).to have_body_text(direct_message.sender.name)
|
||||
expect(email).to have_body_text(/#{user_path(direct_message.sender_id)}/)
|
||||
end
|
||||
|
||||
scenario "Sender email" do
|
||||
sender = create(:user, :level_two)
|
||||
receiver = create(:user, :level_two)
|
||||
|
||||
direct_message = create_direct_message(sender, receiver)
|
||||
|
||||
email = unread_emails_for(sender.email).first
|
||||
|
||||
expect(email).to have_subject("You have send a new private message")
|
||||
expect(email).to have_body_text(direct_message.title)
|
||||
expect(email).to have_body_text(direct_message.body)
|
||||
expect(email).to have_body_text(direct_message.receiver.name)
|
||||
end
|
||||
|
||||
pending "In the copy sent to the sender, display the receiver's name"
|
||||
|
||||
end
|
||||
|
||||
context "Proposal notifications" do
|
||||
|
||||
scenario "Proposal notification" do
|
||||
|
||||
@@ -214,4 +214,20 @@ module CommonActions
|
||||
Notification.last
|
||||
end
|
||||
|
||||
def create_direct_message(sender, receiver)
|
||||
login_as(sender)
|
||||
visit user_path(receiver)
|
||||
|
||||
click_link "Send private message"
|
||||
|
||||
expect(page).to have_content "Send private message to #{receiver.name}"
|
||||
|
||||
fill_in 'direct_message_title', with: "Hey #{receiver.name}!"
|
||||
fill_in 'direct_message_body', with: "How are you doing? This is #{sender.name}"
|
||||
click_button "Send message"
|
||||
|
||||
expect(page).to have_content "You message has been sent successfully."
|
||||
DirectMessage.last
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user