From: Herve Saint-Amand Date: Sun, 8 Jan 2017 22:09:10 +0000 (+0000) Subject: Moved message table HTMl to a partial template X-Git-Tag: live~3600^2~25 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/417176f8685ae60b670e609ca4d7e2e7c5c07647 Moved message table HTMl to a partial template Several notifications are about a message having been sent from one user to another via OSM. I've moved the code for the HTML table that holds the actual user message, with the avatar and the body text, to its own partial template, so that it can be reused. I've updated a second notifier message to the new template, diary_comment_notification. --- diff --git a/app/models/notifier.rb b/app/models/notifier.rb index 60b682693..ee40a0d6e 100644 --- a/app/models/notifier.rb +++ b/app/models/notifier.rb @@ -3,6 +3,7 @@ class Notifier < ActionMailer::Base :return_path => EMAIL_RETURN_PATH, :auto_submitted => "auto-generated" helper :application + before_action :set_shared_template_vars def signup_confirm(user, token) with_recipient_locale user do @@ -106,6 +107,9 @@ class Notifier < ActionMailer::Base :action => "new", :display_name => comment.user.display_name, :title => "Re: #{comment.diary_entry.title}") + @user_message_author = @from_user + + attach_user_avatar(comment.user) mail :from => from_address(comment.user.display_name, "c", comment.id, comment.digest, recipient.id), :to => recipient.email, @@ -154,7 +158,6 @@ class Notifier < ActionMailer::Base def changeset_comment_notification(comment, recipient) with_recipient_locale recipient do - @root_url = root_url(:host => SERVER_URL) @changeset_url = changeset_url(comment.changeset, :host => SERVER_URL) @comment = comment.body @owner = recipient == comment.changeset.user @@ -162,6 +165,7 @@ class Notifier < ActionMailer::Base @changeset_comment = comment.changeset.tags["comment"].presence @time = comment.created_at @changeset_author = comment.changeset.user.display_name + @user_message_author = @commenter subject = if @owner I18n.t("notifier.changeset_comment_notification.commented.subject_own", :commenter => @commenter) @@ -169,8 +173,8 @@ class Notifier < ActionMailer::Base I18n.t("notifier.changeset_comment_notification.commented.subject_other", :commenter => @commenter) end - attachments.inline["logo.png"] = File.read("#{Rails.root}/app/assets/images/osm_logo_30.png") - attachments.inline["avatar.png"] = File.read(user_avatar_file_path(comment.author)) + attach_project_logo + attach_user_avatar(comment.author) mail :to => recipient.email, :subject => subject end @@ -178,6 +182,19 @@ class Notifier < ActionMailer::Base private + def set_shared_template_vars + @root_url = root_url(:host => SERVER_URL) + attach_project_logo + end + + def attach_project_logo + attachments.inline["logo.png"] = File.read("#{Rails.root}/app/assets/images/osm_logo_30.png") + end + + def attach_user_avatar(user) + attachments.inline["avatar.png"] = File.read(user_avatar_file_path(user)) + end + def user_avatar_file_path(user) image = user.image if image.file? diff --git a/app/views/notifier/_user_message_table.html.erb b/app/views/notifier/_user_message_table.html.erb new file mode 100644 index 000000000..0a7300173 --- /dev/null +++ b/app/views/notifier/_user_message_table.html.erb @@ -0,0 +1,18 @@ + + + + + +
+ <%= link_to( + image_tag( + attachments["avatar.png"].url, + alt: @user_message_author, + title: @user_message_author + ), + user_url(@user_message_author, :host => SERVER_URL), + :target => "_blank" + ) %> + + <%= captured %> +
diff --git a/app/views/notifier/changeset_comment_notification.html.erb b/app/views/notifier/changeset_comment_notification.html.erb index 344a4e33d..4e271cfb2 100644 --- a/app/views/notifier/changeset_comment_notification.html.erb +++ b/app/views/notifier/changeset_comment_notification.html.erb @@ -11,16 +11,11 @@ <%= t "notifier.changeset_comment_notification.commented.partial_changeset_without_comment" %> <% end %>

- - - - - -
- <%= image_tag attachments["avatar.png"].url, alt: @commenter %> - - <%= @comment.to_html %> -
+ + <%= render "notifier/user_message_table", :captured => capture { %> + <%= @comment.to_html %> + <% } %> +

<%= raw t 'notifier.changeset_comment_notification.details', :url => content_tag("nobr", link_to(@changeset_url, @changeset_url)) %>

diff --git a/app/views/notifier/diary_comment_notification.html.erb b/app/views/notifier/diary_comment_notification.html.erb index b47900a63..ea9a65591 100644 --- a/app/views/notifier/diary_comment_notification.html.erb +++ b/app/views/notifier/diary_comment_notification.html.erb @@ -1,9 +1,20 @@ -

<%= t'notifier.diary_comment_notification.hi', :to_user => @to_user %>

+<% content_for :body do %> +

+ <%= t'notifier.diary_comment_notification.hi', :to_user => @to_user %> +

+

+ <%= raw t'notifier.diary_comment_notification.header', :from_user => link_to_user(@from_user), :subject => content_tag("em", @title) %> +

-

<%= raw t'notifier.diary_comment_notification.header', :from_user => link_to(@from_user, :host => SERVER_URL, :controller => :user, :action => :view, :display_name => @from_user), :subject => @title %>

+ <%= render "notifier/user_message_table", :captured => capture { %> + <%= @text.to_html %> + <% } %> +<% end %> -== -<%= @text.to_html %> -== - -

<%= raw t'notifier.diary_comment_notification.footer', :readurl => link_to(@readurl, @readurl), :commenturl => link_to(@commenturl, @commenturl), :replyurl => link_to(@replyurl, @replyurl) %>

+<% content_for :footer do %> +

<%= raw t'notifier.diary_comment_notification.footer', + :readurl => link_to(@readurl, @readurl) + tag(:br), + :commenturl => link_to(@commenturl, @commenturl) + tag(:br), + :replyurl => link_to(@replyurl, @replyurl) + %>

+<% end %>