merging master into html-mail-fixes
authorHerve Saint-Amand <git@saintamh.org>
Sun, 12 Feb 2017 21:05:38 +0000 (21:05 +0000)
committerHerve Saint-Amand <git@saintamh.org>
Sun, 12 Feb 2017 21:05:38 +0000 (21:05 +0000)
app/helpers/notifier_helper.rb
app/views/layouts/notifier.html.erb
app/views/notifier/_message_body.html.erb
app/views/notifier/changeset_comment_notification.html.erb
app/views/notifier/email_confirm.html.erb
app/views/notifier/signup_confirm.html.erb

index 3e53e2543c006a57f9dee08113099abd892df457..da55f6c0e1ef09f86011cab325c6ef09e074f57d 100644 (file)
@@ -5,10 +5,16 @@ module NotifierHelper
 
   def link_to_user(display_name)
     link_to(
-      display_name,
+      content_tag(
+        'strong',
+        display_name,
+        # NB we need "text-decoration: none" twice: GMail only honours it on
+        # the <a> but Outlook only on the <strong>
+        :style => "text-decoration: none"
+      ),
       user_url(display_name, :host => SERVER_URL),
       :target => "_blank",
-      :style => "text-decoration: none; color: #222; font-weight: bold"
+      :style => "text-decoration: none; color: #222"
     )
   end
 
@@ -20,6 +26,9 @@ module NotifierHelper
   end
 
   def style_message(html)
-    html.gsub /<p>/, '<p style="color: black; margin: 0.75em 0">'
+    # Because we can't use stylesheets in HTML emails, we need to inline the
+    # styles. Rather than copy-paste the same string of CSS into every message,
+    # we apply it once here, after the message has been composed.
+    html.gsub /<p>/, '<p style="color: black; margin: 0.75em 0; font-family: \'Helvetica Neue\', Arial, Sans-Serif">'
   end
 end
index dd041cca5268c01f9ec4ff3d904980c6c6ffeb32..883f1b385acaeaa73fab4a3bebcd8723ebe16532 100644 (file)
@@ -5,17 +5,21 @@
   <body style="padding: 0; margin: 0; font-size: 14px; font-family: 'Helvetica Neue', Arial, sans-serif; color: #222">
     <table style="background-color: #eee; width: 100%">
       <tr>
-        <td style="text-align: center">
-          <table style="width: 600px; color: #222; margin-left: auto; margin-right: auto">
+        <%# having width=100% on the table and then only a fixed width on the middle cell gives us a max-width that works in Outlook %>
+        <td rowspan="2"></td>
+        <td width="600" style="text-align: center; padding: 0px 7px">
+          <table style="width: 100%; color: #222; margin-left: auto; margin-right: auto">
             <tr>
               <td style="width: 30px; padding: 10px 10px 10px 0px">
                 <a href="<%= @root_url %>" target="_blank">
-                  <%= image_tag attachments["logo.png"].url, alt: "OpenStreetMap logo", title: "OpenStreetMap", height: "30", width: "30", border: "0" %>
+                  <%= image_tag attachments["logo.png"].url, alt: "OpenStreetMap", title: "OpenStreetMap", height: "30", width: "30", border: "0" %>
                 </a>
               </td>
-              <td style="padding: 10px 0px">
+              <%# the "width: 100%" here looks wrong, but I couldn't find a better way of making Outlook give this cell full width %>
+              <td style="width: 100%; padding: 0px; text-align: left">
+                <%# NB we need "text-decoration: none" twice: GMail only honours it on the <a> but Outlook only on the <strong> %>
                 <a href="<%= @root_url %>" target="_blank" style="text-decoration: none; color: #000">
-                  <h1 style="font-size: 18px; font-weight: 600; margin: 0; text-align: left">OpenStreetMap</h1>
+                  <strong style="text-decoration: none; font-size: 18px; font-weight: 600; margin: 0; text-align: left; font-family: 'Helvetica Neue', Arial, sans-serif">OpenStreetMap</strong>
                 </a>
               </td>
             </tr>
             </tr>
           </table>
         </td>
+        <td rowspan="2"></td>
       </tr>
       <tr>
-        <td style="text-align: center; font-size: 11px">
+        <td style="text-align: center; font-size: 11px; font-family: 'Helvetica Neue', Arial, sans-serif">
           <%= yield :footer %>
           <p style="margin-bottom: 10px">
             <a href="<%= @root_url %>" target="_blank" style="color: #222">OpenStreetMap</a>
index d86d44133e091555908f29a7af6e20317b0912d8..b71c5f99443b75fb5be8acf36c00a34040aedcf4 100644 (file)
@@ -1,6 +1,6 @@
-<table style="font-size: 15px; font-style: italic; margin: 15px 0px; background-color: #eee; width: 520px">
+<table style="font-size: 15px; margin: 15px 0px; background-color: #eee; width: 100%">
   <tr>
-    <td style="width: 50px; vertical-align: top; padding: 15px">
+    <td style="width: 50px; min-width: 50px; vertical-align: top; padding: 15px">
       <%= link_to(
           image_tag(
             attachments["avatar.png"].url,
@@ -14,7 +14,7 @@
           :target => "_blank"
       ) %>
     </td>
-    <td style="text-align: left; vertical-align: top; padding-right: 10px">
+    <td style="text-align: left; vertical-align: top; padding-right: 10px; width: 100%">
       <%= body %>
     </td>
   </tr>
index c2b552ed5e85367ef2e972858420c1908600451d..19ca33d85e2041b5b9546c98d98e3dfe2ecde3f5 100644 (file)
 <% end %>
 
 <p>
-  <%= raw t 'notifier.changeset_comment_notification.details', :url => link_to(@changeset_url, @changeset_url, :style => "white-space: nowrap") %>
+  <%= raw t 'notifier.changeset_comment_notification.details', :url => link_to(@changeset_url, @changeset_url) %>
 </p>
 
 <% content_for :footer do %>
   <p>
-    <%= raw t 'notifier.changeset_comment_notification.unsubscribe', :url => link_to(@changeset_url, @changeset_url, :style => "color: #222; white-space: nowrap") %>
+    <%= raw t 'notifier.changeset_comment_notification.unsubscribe', :url => link_to(@changeset_url, @changeset_url, :style => "color: #222") %>
   </p>
 <% end %>
index 5d8f49d3dc6efad5f79109b417ea3db74794802c..5b7c74d7f52dd608bcb41569b6db3c5577d6654b 100644 (file)
@@ -4,4 +4,4 @@
 
 <p><%= t 'notifier.email_confirm_html.click_the_link' %></p>
 
-<p><a href="<%= @url %>" style="white-space: nowrap"><%= @url %></a></p>
+<p><a href="<%= @url %>"><%= @url %></a></p>
index 41b2ceb4987b5878a5b98cd7cfd8664db6ca39d1..814deee9171220d93896643b05484d1bb9133076 100644 (file)
@@ -4,6 +4,6 @@
 
 <p><%= t("notifier.signup_confirm.confirm") %></p>
 
-<p><%= link_to @url, @url, :style => "white-space: nowrap" %></p>
+<p><%= link_to @url, @url %></p>
 
 <p><%= t("notifier.signup_confirm.welcome") %></p>