diff --git a/app/assets/images/icon_mailer_comment.png b/app/assets/images/icon_mailer_comment.png deleted file mode 100644 index d3c9bff73..000000000 Binary files a/app/assets/images/icon_mailer_comment.png and /dev/null differ diff --git a/app/assets/images/icon_mailer_reply.png b/app/assets/images/icon_mailer_reply.png deleted file mode 100644 index 0c9159e84..000000000 Binary files a/app/assets/images/icon_mailer_reply.png and /dev/null differ diff --git a/app/assets/images/icon_mailer_share.png b/app/assets/images/icon_mailer_share.png deleted file mode 100644 index f95d44141..000000000 Binary files a/app/assets/images/icon_mailer_share.png and /dev/null differ diff --git a/app/controllers/admin/system_emails_controller.rb b/app/controllers/admin/system_emails_controller.rb index b71e1d32b..b112ac414 100644 --- a/app/controllers/admin/system_emails_controller.rb +++ b/app/controllers/admin/system_emails_controller.rb @@ -104,7 +104,7 @@ class Admin::SystemEmailsController < Admin::BaseController comment = Comment.where(commentable_type: "Budget::Investment").last if comment @email = EvaluationCommentEmail.new(comment) - @email_to = @email.to.first + @email_to = @email.to.first || current_user else redirect_to admin_system_emails_path, alert: t("admin.system_emails.alert.no_evaluation_comments") diff --git a/app/helpers/mailer_helper.rb b/app/helpers/mailer_helper.rb index b6de1620a..61e3bd465 100644 --- a/app/helpers/mailer_helper.rb +++ b/app/helpers/mailer_helper.rb @@ -15,4 +15,40 @@ module MailerHelper style: "color: #2895F1; text-decoration:none;" ) end + + def mailer_simple_format(text) + simple_format(sanitize_and_auto_link(text), { style: css_for_mailer_text }, sanitize: false) + end + + def mailer_font_family + "font-family: 'Open Sans','Helvetica Neue',arial,sans-serif;" + end + + def css_for_mailer_heading + mailer_font_family + "font-size: 48px;" + end + + def css_for_mailer_subheading + mailer_font_family + "font-size: 20px; font-weight: bold; line-height: 24px; margin-bottom: 2px;" + end + + def css_for_mailer_text + mailer_font_family + "font-size: 14px;font-weight: normal;line-height: 24px;" + end + + def css_for_mailer_button + mailer_font_family + "background: #004a83;border-radius: 6px;color: #fff!important;display: inline-block;font-weight: bold;margin: 0;min-width: 200px;padding: 10px 15px;text-align: center;text-decoration: none;" + end + + def css_for_mailer_link + "color: #1779ba; text-decoration: underline;" + end + + def css_for_mailer_quote + "border-left: 2px solid #DEE0E3;font-style: italic;margin-left: 20px;padding:0px 10px;" + end + + def css_for_mailer_content + "padding-bottom: 20px; padding-left: 10px;" + end end diff --git a/app/mailers/devise_mailer.rb b/app/mailers/devise_mailer.rb index 89f2a76b6..30d404a9f 100644 --- a/app/mailers/devise_mailer.rb +++ b/app/mailers/devise_mailer.rb @@ -1,5 +1,5 @@ class DeviseMailer < Devise::Mailer - helper :application, :settings + helper :application, :settings, :mailer include Devise::Controllers::UrlHelpers default template_path: "devise/mailer" diff --git a/app/views/devise/mailer/confirmation_instructions.html.erb b/app/views/devise/mailer/confirmation_instructions.html.erb index c81e6fc74..40f39de2b 100644 --- a/app/views/devise/mailer/confirmation_instructions.html.erb +++ b/app/views/devise/mailer/confirmation_instructions.html.erb @@ -1,18 +1,20 @@ - + -

+

<%= t("devise_views.mailer.confirmation_instructions.title") %>

-

+

<%= t("devise_views.mailer.confirmation_instructions.welcome") %> <%= @email %>

-

+

<%= t("devise_views.mailer.confirmation_instructions.text") %>

-

- <%= link_to t("devise_views.mailer.confirmation_instructions.confirm_link"), confirmation_url(@resource, confirmation_token: @token), style: "color: #2895F1; text-decoration:none;" %> +

+ <%= link_to t("devise_views.mailer.confirmation_instructions.confirm_link"), + confirmation_url(@resource, confirmation_token: @token), + style: css_for_mailer_link %>

diff --git a/app/views/devise/mailer/reset_password_instructions.html.erb b/app/views/devise/mailer/reset_password_instructions.html.erb index a67e77f08..f27736fd1 100644 --- a/app/views/devise/mailer/reset_password_instructions.html.erb +++ b/app/views/devise/mailer/reset_password_instructions.html.erb @@ -1,22 +1,24 @@ - + -

+

<%= t("devise_views.mailer.reset_password_instructions.title") %>

-

+

<%= t("devise_views.mailer.reset_password_instructions.hello") %> <%= @resource.email %>

-

+

<%= t("devise_views.mailer.reset_password_instructions.text") %>

-

- <%= link_to t("devise_views.mailer.reset_password_instructions.change_link"), edit_password_url(@resource, reset_password_token: @token), style: "color: #2895F1; text-decoration:none;" %> +

+ <%= link_to t("devise_views.mailer.reset_password_instructions.change_link"), + edit_password_url(@resource, reset_password_token: @token), + style: css_for_mailer_link %>

-

+

<%= t("devise_views.mailer.reset_password_instructions.ignore_text") %> <%= t("devise_views.mailer.reset_password_instructions.info_text") %>

diff --git a/app/views/devise/mailer/unlock_instructions.html.erb b/app/views/devise/mailer/unlock_instructions.html.erb index 41ddc2f19..3085bb5ed 100644 --- a/app/views/devise/mailer/unlock_instructions.html.erb +++ b/app/views/devise/mailer/unlock_instructions.html.erb @@ -1,22 +1,24 @@ - + -

+

<%= t("devise_views.mailer.unlock_instructions.title") %>

-

+

<%= t("devise_views.mailer.unlock_instructions.hello") %> <%= @resource.email %>

-

+

<%= t("devise_views.mailer.unlock_instructions.info_text") %>

-

+

<%= t("devise_views.mailer.unlock_instructions.instructions_text") %>

-

- <%= link_to t("devise_views.mailer.unlock_instructions.unlock_link"), unlock_url(@resource, unlock_token: @token), style: "color: #2895F1; text-decoration:none;" %> +

+ <%= link_to t("devise_views.mailer.unlock_instructions.unlock_link"), + unlock_url(@resource, unlock_token: @token), + style: css_for_mailer_link %>

diff --git a/app/views/mailer/already_confirmed.html.erb b/app/views/mailer/already_confirmed.html.erb index f517b8408..22e01b477 100644 --- a/app/views/mailer/already_confirmed.html.erb +++ b/app/views/mailer/already_confirmed.html.erb @@ -1,17 +1,19 @@ - + -

+

<%= t("mailers.already_confirmed.subject") %>

-

+

<%= t("mailers.already_confirmed.info") %>

-

+

<%= t("mailers.already_confirmed.new_password") %>

-

- <%= link_to t("devise_views.shared.links.new_password"), new_password_url(@user), style: "color: #2895F1; text-decoration:none;" %> + +

+ <%= link_to t("devise_views.shared.links.new_password"), + new_password_url(@user), style: css_for_mailer_link %>

diff --git a/app/views/mailer/budget_investment_created.html.erb b/app/views/mailer/budget_investment_created.html.erb index 3c0c29980..8c2da30c6 100644 --- a/app/views/mailer/budget_investment_created.html.erb +++ b/app/views/mailer/budget_investment_created.html.erb @@ -1,39 +1,46 @@ - + -

+

<%= t("mailers.budget_investment_created.title") %>

-

- <%= sanitize(t("mailers.budget_investment_created.intro", - author: @investment.author.name)) %> +

+ <%= sanitize( + t("mailers.budget_investment_created.intro", author: @investment.author.name) + ) %>

-

- <%= sanitize(t("mailers.budget_investment_created.text", - investment: @investment.title, - budget: @investment.budget.name)) %> +

+ <%= sanitize( + t("mailers.budget_investment_created.text", + investment: @investment.title, + budget: @investment.budget.name) + ) %>

-

- <%= sanitize(t("mailers.budget_investment_created.follow", - link: link_to(t("mailers.budget_investment_created.follow_link"), budgets_url))) %> +

+ <%= sanitize( + t("mailers.budget_investment_created.follow", + link: link_to(t("mailers.budget_investment_created.follow_link"), budgets_url, + style: css_for_mailer_link) + ), + attributes: %w[href style] + ) %>

- <%= link_to budget_investment_url(@investment.budget, @investment, anchor: "social-share"), 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: 160px; display: inline-block;" do %> - <%= image_tag("icon_mailer_share.png", style: "border: 0; display: inline-block; width: 100%; max-width: 16px", alt: "") %> - <%= t("mailers.budget_investment_created.share") %> + <%= link_to budget_investment_url(@investment.budget, @investment, anchor: "social-share"), style: css_for_mailer_button do %> + <%= t("mailers.budget_investment_created.share") %> <% end %>
-

+

<%= t("mailers.budget_investment_created.sincerely") %>

diff --git a/app/views/mailer/budget_investment_selected.html.erb b/app/views/mailer/budget_investment_selected.html.erb index 08e3409b8..6ac506081 100644 --- a/app/views/mailer/budget_investment_selected.html.erb +++ b/app/views/mailer/budget_investment_selected.html.erb @@ -1,10 +1,14 @@ - + -

+

+ <%= t("mailers.budget_investment_selected.title") %> +

+ +

<%= t("mailers.budget_investment_selected.hi") %>

-

+

<%= t("mailers.budget_investment_selected.share") %>

@@ -12,20 +16,19 @@ - <%= link_to budget_investment_url(@investment.budget, @investment, anchor: "social-share"), 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: 160px; display: inline-block;" do %> - <%= image_tag("icon_mailer_share.png", style: "border: 0; display: inline-block; width: 100%; max-width: 16px", alt: "") %> - <%= t("mailers.budget_investment_selected.share_button") %> + <%= link_to budget_investment_url(@investment.budget, @investment, anchor: "social-share"), style: css_for_mailer_button do %> + <%= t("mailers.budget_investment_selected.share_button") %> <% end %> -

+

<%= t("mailers.budget_investment_selected.thanks") %>

-

+

<%= t("mailers.budget_investment_selected.sincerely") %>

diff --git a/app/views/mailer/budget_investment_unfeasible.html.erb b/app/views/mailer/budget_investment_unfeasible.html.erb index e31f59b7a..0fd60982d 100644 --- a/app/views/mailer/budget_investment_unfeasible.html.erb +++ b/app/views/mailer/budget_investment_unfeasible.html.erb @@ -1,24 +1,33 @@ - + -

+

+ <%= t("mailers.budget_investment_unfeasible.title") %> +

+ +

<%= t("mailers.budget_investment_unfeasible.hi") %>

-

+

<%= @investment.unfeasibility_explanation %>

-

- <%= sanitize(t("mailers.budget_investment_unfeasible.new", - url: link_to(t("mailers.budget_investment_unfeasible.new_href"), - new_budget_investment_url(@investment.budget), style: "color: #2895F1; text-decoration: underline;"))) %> +

+ <%= sanitize( + t("mailers.budget_investment_unfeasible.new", + url: link_to(t("mailers.budget_investment_unfeasible.new_href"), + new_budget_investment_url(@investment.budget), + style: css_for_mailer_link) + ), + attributes: %w[href style] + ) %>

-

+

<%= t("mailers.budget_investment_unfeasible.sorry") %>

-

+

<%= t("mailers.budget_investment_unfeasible.sincerely") %>

diff --git a/app/views/mailer/budget_investment_unselected.html.erb b/app/views/mailer/budget_investment_unselected.html.erb index e45a7848d..c04da7272 100644 --- a/app/views/mailer/budget_investment_unselected.html.erb +++ b/app/views/mailer/budget_investment_unselected.html.erb @@ -1,14 +1,18 @@ - + -

+

+ <%= t("mailers.budget_investment_unselected.title") %> +

+ +

<%= t("mailers.budget_investment_unselected.hi") %>

-

+

<%= t("mailers.budget_investment_unselected.thanks") %>

-

+

<%= t("mailers.budget_investment_unselected.sincerely") %>

diff --git a/app/views/mailer/comment.html.erb b/app/views/mailer/comment.html.erb index d831b60bc..3c277bbd8 100644 --- a/app/views/mailer/comment.html.erb +++ b/app/views/mailer/comment.html.erb @@ -1,30 +1,33 @@ - + -

+

<%= t("mailers.comment.title") %>

-

+

<%= t("mailers.comment.hi") %> <%= @commentable.author.name %>,

-

+

<%= sanitize(t("mailers.comment.new_comment_by", commenter: @comment.author.name)) %> - <%= link_to @commentable.title, commentable_url(@commentable), style: "color: #2895F1; text-decoration:none;" %> + <%= link_to @commentable.title, commentable_url(@commentable), style: css_for_mailer_link %>

-

- <%= sanitize_and_auto_link @comment.body %> -

+
+ <%= mailer_simple_format(@comment.body) %> +
-

- <%= sanitize(t("mailers.config.unsubscribe_text", - notifications: link_to( - t("mailers.config.notifications_link"), - edit_subscriptions_url(token: @token), - style: "color: #2895F1; text-decoration: none;" +

+ <%= sanitize( + t("mailers.config.unsubscribe_text", + notifications: link_to( + t("mailers.config.notifications_link"), + edit_subscriptions_url(token: @token), + style: css_for_mailer_link + ), + notification: User.human_attribute_name(:email_on_comment) ), - notification: User.human_attribute_name(:email_on_comment) - )) %> + attributes: %w[href style] + ) %>

diff --git a/app/views/mailer/direct_message_for_receiver.html.erb b/app/views/mailer/direct_message_for_receiver.html.erb index ae9637d3e..efe41e744 100644 --- a/app/views/mailer/direct_message_for_receiver.html.erb +++ b/app/views/mailer/direct_message_for_receiver.html.erb @@ -1,18 +1,17 @@ - -

+ +

<%= @direct_message.title %>

-
- <%= simple_format sanitize_and_auto_link(@direct_message.body), {}, sanitize: false %> +
+ <%= mailer_simple_format(@direct_message.body) %>
- <%= 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: "") %> + <%= link_to user_url(@direct_message.sender), style: css_for_mailer_button, target: "_blank" do %> <%= t("mailers.direct_message_for_receiver.reply", sender: @direct_message.sender.name) %> <% end %> @@ -21,18 +20,15 @@
- - - - - - -
-

- <%= sanitize(t("mailers.direct_message_for_receiver.unsubscribe_text", - notifications: link_to(t("mailers.config.notifications_link"), - edit_subscriptions_url(token: @token), - style: "color: #2895F1; text-decoration: none;"))) %> -

-
+

+ <%= sanitize( + t("mailers.direct_message_for_receiver.unsubscribe_text", + notifications: link_to( + t("mailers.config.notifications_link"), + edit_subscriptions_url(token: @token), + style: css_for_mailer_link) + ), + attributes: %w[href style] + ) %> +

diff --git a/app/views/mailer/direct_message_for_sender.html.erb b/app/views/mailer/direct_message_for_sender.html.erb index cb2d9080a..f5bdbdaed 100644 --- a/app/views/mailer/direct_message_for_sender.html.erb +++ b/app/views/mailer/direct_message_for_sender.html.erb @@ -1,15 +1,18 @@ - + -

- <%= sanitize(t("mailers.direct_message_for_sender.title", - receiver: @direct_message.receiver.name)) %> +

+ <%= t("mailers.direct_message_for_sender.title") %> +

+ +

+ <%= sanitize(t("mailers.direct_message_for_sender.text", receiver: @direct_message.receiver.name)) %>

-

+

<%= @direct_message.title %> -

+

-
- <%= simple_format sanitize_and_auto_link(@direct_message.body), {}, sanitize: false %> +
+ <%= mailer_simple_format(@direct_message.body) %>
diff --git a/app/views/mailer/email_verification.html.erb b/app/views/mailer/email_verification.html.erb index a7b7e94dc..fe1525a3f 100644 --- a/app/views/mailer/email_verification.html.erb +++ b/app/views/mailer/email_verification.html.erb @@ -1,21 +1,34 @@ - -

+ + +

<%= t("mailers.email_verification.title") %>

-

- <%= sanitize(t("mailers.email_verification.instructions", - verification_link: link_to( - t("mailers.email_verification.click_here_to_verify"), - email_url(email_verification_token: @token)))) %> +

+ <%= t("mailers.email_verification.text") %>

-

- <%= sanitize(t("mailers.email_verification.instructions_2", - document_type: humanize_document_type(@document_type), - document_number: @document_number)) %> +

+ <%= sanitize( + t("mailers.email_verification.instructions", + verification_link: link_to( + t("mailers.email_verification.click_here_to_verify"), + email_url(email_verification_token: @token), + style: css_for_mailer_link) + ), + attributes: %w[href style] + ) %>

-

+ +

+ <%= sanitize( + t("mailers.email_verification.instructions_2", + document_type: humanize_document_type(@document_type), + document_number: @document_number) + ) %> +

+ +

<%= t("mailers.email_verification.thanks") %>

diff --git a/app/views/mailer/evaluation_comment.html.erb b/app/views/mailer/evaluation_comment.html.erb index 4feafc181..fa95263ed 100644 --- a/app/views/mailer/evaluation_comment.html.erb +++ b/app/views/mailer/evaluation_comment.html.erb @@ -1,23 +1,27 @@ - + -

+

<%= t("mailers.evaluation_comment.title", investment: @email.commentable.title) %>

-

+

<%= t("mailers.evaluation_comment.hi") %> <%= @email_to.name %>,

-

- <%= sanitize(t( - "mailers.evaluation_comment.new_comment_by", - commenter: @email.comment.author.name, - investment: valuation_comments_link(@email.commentable) - )) %> +

+ <%= sanitize( + t("mailers.evaluation_comment.new_comment_by", + commenter: @email.comment.author.name, + investment: valuation_comments_link(@email.commentable) + ) + ) %>

- <%= t("mailers.evaluation_comment.commenter_info", commenter: @email.comment.author.name, time: l(@email.comment.created_at)) %> -
- <%= simple_format sanitize_and_auto_link(@email.comment.body), {}, sanitize: false %> +

+ <%= t("mailers.evaluation_comment.commenter_info", commenter: @email.comment.author.name, time: l(@email.comment.created_at)) %> +

+ +
+ <%= mailer_simple_format(@email.comment.body) %>
diff --git a/app/views/mailer/machine_learning_error.html.erb b/app/views/mailer/machine_learning_error.html.erb index 9798f477c..9a14a2d3c 100644 --- a/app/views/mailer/machine_learning_error.html.erb +++ b/app/views/mailer/machine_learning_error.html.erb @@ -1,17 +1,16 @@ - + -

+

<%= t("mailers.machine_learning_error.title") %>

-

+

<%= t("mailers.machine_learning_error.text") %>

-

- <%= link_to t("mailers.machine_learning_error.link"), admin_machine_learning_url, +

+ <%= link_to t("mailers.machine_learning_error.link"), + admin_machine_learning_url, style: "color: #2895F1; text-decoration:none;" %>

diff --git a/app/views/mailer/machine_learning_success.html.erb b/app/views/mailer/machine_learning_success.html.erb index 5f6c5d5e5..ec22b0b8c 100644 --- a/app/views/mailer/machine_learning_success.html.erb +++ b/app/views/mailer/machine_learning_success.html.erb @@ -1,17 +1,16 @@ - + -

+

<%= t("mailers.machine_learning_success.title") %>

-

+

<%= t("mailers.machine_learning_success.text") %>

-

- <%= link_to t("mailers.machine_learning_success.link"), admin_machine_learning_url, +

+ <%= link_to t("mailers.machine_learning_success.link"), + admin_machine_learning_url, style: "color: #2895F1; text-decoration:none;" %>

diff --git a/app/views/mailer/newsletter.html.erb b/app/views/mailer/newsletter.html.erb index e28be0eea..7b7d5130d 100644 --- a/app/views/mailer/newsletter.html.erb +++ b/app/views/mailer/newsletter.html.erb @@ -1,16 +1,20 @@ - -

+ + +

<%= auto_link_already_sanitized_html wysiwyg(@newsletter.body) %>

-

- <%= sanitize(t("mailers.config.unsubscribe_text", - notifications: link_to( - t("mailers.config.notifications_link"), - edit_subscriptions_url(token: @token), - style: "color: #2895F1; text-decoration: none;" +

+ <%= sanitize( + t("mailers.config.unsubscribe_text", + notifications: link_to( + t("mailers.config.notifications_link"), + edit_subscriptions_url(token: @token), + style: css_for_mailer_link + ), + notification: User.human_attribute_name(:newsletter) ), - notification: User.human_attribute_name(:newsletter) - )) %> + attributes: %w[href style] + ) %>

diff --git a/app/views/mailer/proposal_notification_digest.html.erb b/app/views/mailer/proposal_notification_digest.html.erb index 7b3d0f58b..fee371793 100644 --- a/app/views/mailer/proposal_notification_digest.html.erb +++ b/app/views/mailer/proposal_notification_digest.html.erb @@ -1,35 +1,29 @@ - - - - - - - -
-

- <%= t("mailers.proposal_notification_digest.title", - org_name: Setting["org_name"]) %> -

-

- <%= t("mailers.proposal_notification_digest.info", - org_name: Setting["org_name"]) %> -

-
+ + +

+ <%= t("mailers.proposal_notification_digest.title", + org_name: Setting["org_name"]) %> +

+ +

+ <%= t("mailers.proposal_notification_digest.info", + org_name: Setting["org_name"]) %> +

<% @notifications.each do |notification| %> @@ -65,18 +62,15 @@
-

- <%= link_to notification.notifiable.title, proposal_url(notification.notifiable.proposal, anchor: "tab-notifications"), style: "color: #2895F1; text-decoration: none;" %> -

-

+

+ <%= link_to notification.notifiable.title, proposal_url(notification.notifiable.proposal, anchor: "tab-notifications"), style: css_for_mailer_link %> +

+

<%= notification.notifiable.proposal.title %> •  <%= notification.notifiable.proposal.created_at.to_date %> •  <%= notification.notifiable.proposal.author.name %>

-

+

<%= notification.notifiable.body %>

@@ -37,23 +31,26 @@
- <%= link_to proposal_url(notification.notifiable.proposal, anchor: "social-share"), 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: 160px; display: inline-block;" do %> - <%= image_tag("icon_mailer_share.png", style: "border: 0; display: inline-block; width: 100%; max-width: 16px", alt: "") %> + <%= link_to proposal_url(notification.notifiable.proposal, anchor: "social-share"), style: css_for_mailer_button do %> <%= t("mailers.proposal_notification_digest.share") %> <% end %> - <%= link_to proposal_url(notification.notifiable.proposal, anchor: "comments"), 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: 160px; display: inline-block; margin-left: 12px;" do %> - <%= image_tag("icon_mailer_comment.png", style: "border: 0; display: inline-block; width: 100%; max-width: 16px; vertical-align: middle;", alt: "") %> + <%= link_to proposal_url(notification.notifiable.proposal, anchor: "comments"), style: css_for_mailer_button do %> <%= t("mailers.proposal_notification_digest.comment") %> <% end %>
-

- <%= sanitize(link_to(t("mailers.proposal_notification_digest.unfollow"), +

+ <%= sanitize( + link_to( + t("mailers.proposal_notification_digest.unfollow"), proposal_url(notification.notifiable.proposal), - style: "color: #2895F1; text-decoration: none;")) %> + style: css_for_mailer_link + ), + attributes: %w[href style] + ) %>

<% end %> - - - - - - -
-

- <%= sanitize(t("mailers.proposal_notification_digest.unsubscribe_text", - notifications: link_to(t("mailers.config.notifications_link"), - edit_subscriptions_url(token: @token), - style: "color: #2895F1; text-decoration: none;"))) %> -

-
+

+ <%= sanitize( + t("mailers.proposal_notification_digest.unsubscribe_text", + notifications: link_to( + t("mailers.config.notifications_link"), + edit_subscriptions_url(token: @token), + style: css_for_mailer_link) + ), + attributes: %w[href style] + ) %> +

diff --git a/app/views/mailer/reply.html.erb b/app/views/mailer/reply.html.erb index ac1b7ee55..c25fcb1bc 100644 --- a/app/views/mailer/reply.html.erb +++ b/app/views/mailer/reply.html.erb @@ -1,30 +1,33 @@ - + -

+

<%= t("mailers.reply.title") %>

-

+

<%= t("mailers.reply.hi") %> <%= @email.recipient.name %>,

-

+

<%= sanitize(t("mailers.reply.new_reply_by", commenter: @email.reply.author.name)) %> - <%= link_to @email.commentable.title, comment_url(@email.reply.id), style: "color: #2895F1; text-decoration:none;" %> + <%= link_to @email.commentable.title, comment_url(@email.reply.id), style: css_for_mailer_link %>

-
- <%= simple_format sanitize_and_auto_link(@email.reply.body), {}, sanitize: false %> +
+ <%= mailer_simple_format(@email.reply.body) %>
-

- <%= sanitize(t("mailers.config.unsubscribe_text", - notifications: link_to( - t("mailers.config.notifications_link"), - edit_subscriptions_url(token: @token), - style: "color: #2895F1; text-decoration: none;" +

+ <%= sanitize( + t("mailers.config.unsubscribe_text", + notifications: link_to( + t("mailers.config.notifications_link"), + edit_subscriptions_url(token: @token), + style: css_for_mailer_link + ), + notification: User.human_attribute_name(:email_on_comment_reply) ), - notification: User.human_attribute_name(:email_on_comment_reply) - )) %> + attributes: %w[href style] + ) %>

diff --git a/app/views/mailer/user_invite.html.erb b/app/views/mailer/user_invite.html.erb index 9cad28493..aa435ec9d 100644 --- a/app/views/mailer/user_invite.html.erb +++ b/app/views/mailer/user_invite.html.erb @@ -1,23 +1,23 @@ - -

+ +

<%= t("mailers.user_invite.title", org: Setting["org_name"]) %>

-

+

<%= t("mailers.user_invite.text", org: Setting["org_name"]) %>

- <%= link_to t("mailers.user_invite.button"), new_user_registration_url, style: "font-family: 'Open Sans','Helvetica Neue',arial,sans-serif; background: #004A83; border-radius: 6px; color: #fff !important; font-weight: bold; margin: 0px; padding: 10px 15px; text-align: center; text-decoration: none; min-width: 160px; display: inline-block; margin-left: 12px;" %> + <%= link_to t("mailers.user_invite.button"), new_user_registration_url, style: css_for_mailer_button %>

-

+

<%= t("mailers.user_invite.ignore") %>

-

+

<%= t("mailers.user_invite.thanks") %>

diff --git a/config/locales/en/mailers.yml b/config/locales/en/mailers.yml index e3601ef90..a11aff0cb 100644 --- a/config/locales/en/mailers.yml +++ b/config/locales/en/mailers.yml @@ -20,7 +20,8 @@ en: instructions: To complete the verification of your user account you must click %{verification_link}. subject: Confirm your email thanks: Thank you very much. - title: Confirm your account using the following link + title: "Confirm your email" + text: "Confirm your account using the following link." reply: hi: Hi new_reply_by: There is a new response from %{commenter} to your comment on @@ -39,7 +40,8 @@ en: unsubscribe_text: "If you don't want to receive direct messages, visit %{notifications} and uncheck 'Receive emails about direct messages'." direct_message_for_sender: subject: "You have sent a new private message" - title: "You have sent a new private message to %{receiver} with the content:" + title: "You have sent a new private message" + text: "You have sent a new private message to %{receiver} with the content:" user_invite: ignore: "If you have not requested this invitation don't worry, you can ignore this email." text: "Thank you for applying to join %{org}! In seconds you can start to participate, just fill the form below:" @@ -57,6 +59,7 @@ en: sincerely: "Sincerely," share: "Share your project" budget_investment_unfeasible: + title: "Your investment project has been marked as unfeasible" hi: "Dear user," new: "For all these, we invite you to elaborate a new investment that adjusts to the conditions of this process. You can do it following this link: %{url}." new_href: "new investment project" @@ -65,6 +68,7 @@ en: subject: "Your investment project '%{code}' has been marked as unfeasible" budget_investment_selected: subject: "Your investment project '%{code}' has been selected" + title: "Your investment project has been selected" hi: "Dear user," share: "Start to get votes, share your investment project on social networks. Share is essential to make it a reality." share_button: "Share your investment project" @@ -72,6 +76,7 @@ en: sincerely: "Sincererly" budget_investment_unselected: subject: "Your investment project '%{code}' has not been selected" + title: "Your investment project has not been selected" hi: "Dear user," thanks: "Thank you again for participating." sincerely: "Sincererly" diff --git a/config/locales/es/mailers.yml b/config/locales/es/mailers.yml index ada78196f..b8f4d73fb 100644 --- a/config/locales/es/mailers.yml +++ b/config/locales/es/mailers.yml @@ -20,7 +20,8 @@ es: instructions: Para terminar de verificar tu cuenta de usuario pulsa %{verification_link}. subject: Verifica tu email thanks: Muchas gracias. - title: Verifica tu cuenta con el siguiente enlace + title: "Verifica tu email" + text: "Verifica tu cuenta con el siguiente enlace." reply: hi: Hola new_reply_by: Hay una nueva respuesta de %{commenter} a tu comentario en @@ -39,7 +40,8 @@ es: unsubscribe_text: "Si no quieres recibir mensajes privados, puedes entrar en %{notifications} y desmarcar la opción 'Recibir emails con mensajes privados'." direct_message_for_sender: subject: "Has enviado un nuevo mensaje privado" - title: "Has enviado un nuevo mensaje privado a %{receiver} con el siguiente contenido:" + title: "Has enviado un nuevo mensaje privado" + text: "Has enviado un nuevo mensaje privado a %{receiver} con el siguiente contenido:" user_invite: ignore: "Si no has solicitado esta invitación no te preocupes, puedes ignorar este correo." text: "¡Gracias por solicitar unirte a %{org}! En unos segundos podrás empezar a participar, sólo tienes que rellenar el siguiente formulario:" @@ -57,6 +59,7 @@ es: sincerely: "Atentamente," share: "Comparte tu proyecto" budget_investment_unfeasible: + title: "Tu proyecto de gasto ha sido marcado como inviable" hi: "Estimado/a usuario/a" new: "Por todo ello, te invitamos a que elabores un nuevo proyecto de gasto que se ajuste a las condiciones de este proceso. Esto lo puedes hacer en este enlace: %{url}." new_href: "nuevo proyecto de gasto" @@ -65,6 +68,7 @@ es: subject: "Tu proyecto de gasto '%{code}' ha sido marcado como inviable" budget_investment_selected: subject: "Tu proyecto de gasto '%{code}' ha sido seleccionado" + title: "Tu proyecto de gasto ha sido seleccionado" hi: "Estimado/a usuario/a" share: "Empieza ya a conseguir votos, comparte tu proyecto de gasto en redes sociales. La difusión es fundamental para conseguir que se haga realidad." share_button: "Comparte tu proyecto" @@ -72,6 +76,7 @@ es: sincerely: "Atentamente" budget_investment_unselected: subject: "Tu proyecto de gasto '%{code}' no ha sido seleccionado" + title: "Tu proyecto de gasto no ha sido seleccionado" hi: "Estimado/a usuario/a" thanks: "Gracias de nuevo por tu participación." sincerely: "Atentamente" diff --git a/spec/system/admin/system_emails_spec.rb b/spec/system/admin/system_emails_spec.rb index b0717c98a..425c5b4d0 100644 --- a/spec/system/admin/system_emails_spec.rb +++ b/spec/system/admin/system_emails_spec.rb @@ -251,25 +251,36 @@ describe "System Emails" do expect(page).to have_content "Some example data is needed in order to preview the email." end - scenario "#evaluation_comment" do - admin = create(:administrator, user: create(:user, username: "Baby Doe")) - investment = create(:budget_investment, - title: "Cleaner city", - heading: heading, - author: user, - administrator: admin) - comment = create(:comment, :valuation, commentable: investment) + describe "#evaluation_comment" do + scenario "render correctly evaluaton comment mailer with valuator as a sample user" do + admin = create(:administrator, user: create(:user, username: "Baby Doe")) + investment = create(:budget_investment, + title: "Cleaner city", + heading: heading, + author: user, + administrator: admin) + comment = create(:comment, :valuation, commentable: investment) - visit admin_system_email_view_path("evaluation_comment") + visit admin_system_email_view_path("evaluation_comment") - expect(page).to have_content "New evaluation comment for Cleaner city" - expect(page).to have_content "Hi #{admin.name}" - expect(page).to have_content "There is a new evaluation comment from #{comment.user.name} "\ - "to the budget investment Cleaner city" - expect(page).to have_content comment.body + expect(page).to have_content "New evaluation comment for Cleaner city" + expect(page).to have_content "Hi #{admin.name}" + expect(page).to have_content "There is a new evaluation comment from #{comment.user.name} "\ + "to the budget investment Cleaner city" + expect(page).to have_content comment.body - expect(page).to have_link "Cleaner city", - href: admin_budget_budget_investment_url(investment.budget, investment, anchor: "comments", host: app_host) + expect(page).to have_link "Cleaner city", + href: admin_budget_budget_investment_url(investment.budget, investment, anchor: "comments", host: app_host) + end + + scenario "uses a current_user as a sample user for sample regular comments" do + create(:budget_investment_comment, body: "This is a sample comment") + + visit admin_system_email_view_path("evaluation_comment") + + expect(page).to have_content "This is a sample comment" + expect(page).to have_content admin.name + end end end