Remove HTML markup from locale file
authorHerve Saint-Amand <git@saintamh.org>
Tue, 3 Jan 2017 22:38:58 +0000 (22:38 +0000)
committerHerve Saint-Amand <git@saintamh.org>
Tue, 3 Jan 2017 22:38:58 +0000 (22:38 +0000)
Rather than including HTML markup in the locale file (which also has the inconvenience of requiring both a plain-text and an HTML duplicate of the same string), move the markup to the template. Also added a helper to reduce clutter in the template slightly.

app/helpers/notifier_helper.rb
app/models/notifier.rb
app/views/notifier/changeset_comment_notification.html.erb
config/locales/en.yml

index 4b2cd2a06d924689d354d886c56306425d870123..62801ed82394ce45ab7aa9f20784b0aa4f8c3eb9 100644 (file)
@@ -2,4 +2,13 @@ module NotifierHelper
   def fp(text)
     format_paragraph(text, 72, 0)
   end
+
+  def link_to_user(display_name)
+    link_to(
+      display_name,
+      user_url(display_name, :host => SERVER_URL),
+      :target => "_blank",
+      :style => "text-decoration: none; color: #222; font-weight: bold"
+    )
+  end
 end
index d01ef07d14e9492f7e30d82f2af7bfbea11b66b0..60b682693fa716ba896b116520b013d271028efa 100644 (file)
@@ -159,7 +159,6 @@ class Notifier < ActionMailer::Base
       @comment = comment.body
       @owner = recipient == comment.changeset.user
       @commenter = comment.author.display_name
-      @commenter_url = user_url(comment.author.display_name, :host => SERVER_URL)
       @changeset_comment = comment.changeset.tags["comment"].presence
       @time = comment.created_at
       @changeset_author = comment.changeset.user.display_name
index 67deff5e03682f6f464210c284f195dc1482d0ab..6bb1b68115e5f146c344d32619c9b654585a0dd3 100644 (file)
                     <td style="text-align: left; padding: 15px 15px 5px 15px">
                       <p style="margin: 0">
                         <% if @owner %>
-                          <%= t "notifier.changeset_comment_notification.commented.your_changeset_html", :commenter => @commenter, :commenter_url => @commenter_url, :time => @time %>
+                          <%= raw t "notifier.changeset_comment_notification.commented.your_changeset", :commenter => link_to_user(@commenter), :time => @time %>
                         <% else %>
-                          <%= t "notifier.changeset_comment_notification.commented.commented_changeset_html", :commenter => @commenter, :commenter_url => @commenter_url, :time => @time, :changeset_author => @changeset_author %>
+                          <%= raw t "notifier.changeset_comment_notification.commented.commented_changeset", :commenter => link_to_user(@commenter), :time => @time, :changeset_author => @changeset_author %>
                         <% end %>
                         <% if @changeset_comment %>
-                          <%= t "notifier.changeset_comment_notification.commented.partial_changeset_with_comment_html", :changeset_comment => @changeset_comment %>
+                          <%= raw t "notifier.changeset_comment_notification.commented.partial_changeset_with_comment", :changeset_comment => content_tag("em", @changeset_comment) %>
                         <% else %>
                           <%= t "notifier.changeset_comment_notification.commented.partial_changeset_without_comment" %>
                         <% end %>
@@ -48,7 +48,7 @@
                         </tr>
                       </table>
                       <p>
-                        <%= raw t 'notifier.changeset_comment_notification.details_html', :url => link_to(@changeset_url, @changeset_url) %>
+                        <%= raw t 'notifier.changeset_comment_notification.details', :url => content_tag("nobr", link_to(@changeset_url, @changeset_url)) %>
                       </p>
                     </td>
                   </tr>
@@ -61,7 +61,7 @@
       <tr>
         <td style="text-align: center; font-size: 11px">
           <p>
-            <%= t 'notifier.changeset_comment_notification.unsubscribe_html', :url => @changeset_url %>
+            <%= raw t 'notifier.changeset_comment_notification.unsubscribe', :url => content_tag("nobr", link_to(@changeset_url, @changeset_url, :style => "color: #222")) %>
           </p>
           <p style="margin-bottom: 10px">
             <a href="<%= @root_url %>" target="_blank" style="color: #222">OpenStreetMap</a>
index 7a255cd4b5c82e2e08e115b527aff5c634db0ebe..ab50a681adec46a96e5feeb166a47fa702c0059e 100644 (file)
@@ -1315,23 +1315,11 @@ en:
         subject_own: "[OpenStreetMap] %{commenter} has commented on one of your changesets"
         subject_other: "[OpenStreetMap] %{commenter} has commented on a changeset you are interested in"
         your_changeset: "%{commenter} has left a comment on one of your changesets created at %{time}"
-        your_changeset_html: '<a href="%{commenter_url}" target="_blank" style="text-decoration: none; color: #222"><strong>%{commenter}</strong></a>
-           has left a comment on one of your changesets
-           created at %{time}'
         commented_changeset: "%{commenter} has left a comment on a map changeset you are watching created by %{changeset_author} at %{time}"
-        commented_changeset_html: '<a href="%{commenter_url}" target="_blank" style="text-decoration: none; color: #222"><strong>%{commenter}</strong></a>
-          has left a comment on a map changeset you are watching created by
-          %{changeset_author}
-          at %{time}'
         partial_changeset_with_comment: "with comment '%{changeset_comment}'"
-        partial_changeset_with_comment_html: 'with comment <em>%{changeset_comment}</em>'
         partial_changeset_without_comment: "without comment"
       details: "More details about the changeset can be found at %{url}."
-      details_html: 'More details about the changeset can be found at
-         <nobr>%{url}</nobr>.'
-      unsubscribe_html: 'To unsubscribe from updates to this changeset,
-        visit <nobr><a style="color: #222" href="%{url}">%{url}</a></nobr>
-        and click "Unsubscribe".'
+      unsubscribe: 'To unsubscribe from updates to this changeset, visit %{url} and click "Unsubscribe".'
   message:
     inbox:
       title: "Inbox"