First steps towards using layouts
authorHerve Saint-Amand <git@saintamh.org>
Fri, 6 Jan 2017 22:37:28 +0000 (22:37 +0000)
committerHerve Saint-Amand <git@saintamh.org>
Fri, 6 Jan 2017 22:37:28 +0000 (22:37 +0000)
Since all HTML mails will presumably share the same overall layout, and the markup is fairly dense, it makes sense to use Rails layouts to share the structure across mail templates. This commit moves the core structure of the HTML mail to a layout. It will need to be further refined so that notifications that involve a text message sent by another user can share the avatar-and-message-text structure.

app/views/layouts/notifier.html.erb [new file with mode: 0644]
app/views/notifier/changeset_comment_notification.html.erb

diff --git a/app/views/layouts/notifier.html.erb b/app/views/layouts/notifier.html.erb
new file mode 100644 (file)
index 0000000..fb001d7
--- /dev/null
@@ -0,0 +1,47 @@
+<html>
+  <head>
+    <title></title>
+    <meta charset="UTF-8"></meta>
+  </head>
+  <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">
+            <tr>
+              <td style="width: 30px; padding: 10px">
+                <a href="<%= @root_url %>" target="_blank">
+                  <%= image_tag attachments["logo.png"].url, alt: "OpenStreetMap logo", title: "OpenStreetMap", height: "30", width: "30", border: "0" %>
+                </a>
+              </td>
+              <td style="padding: 10px 0px">
+                <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>
+                </a>
+              </td>
+            </tr>
+            <tr>
+              <td colspan="2">
+                <table style="background-color: #fff; color: #222; border: solid 1px #ccc; border-collapse: separate">
+                  <tr>
+                    <td style="text-align: left; padding: 15px 15px 5px 15px">
+                      <%= yield :body %>
+                    </td>
+                  </tr>
+                </table>
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td style="text-align: center; font-size: 11px">
+          <%= yield :footer %>
+          <p style="margin-bottom: 10px">
+            <a href="<%= @root_url %>" target="_blank" style="color: #222">OpenStreetMap</a>
+          </p>
+        </td>
+      </tr>
+    </table>
+  </body>
+</html>
index 6bb1b68115e5f146c344d32619c9b654585a0dd3..344a4e33d6bb2f53cae944e27a32077d0749cabf 100644 (file)
@@ -1,73 +1,33 @@
-<html>
-  <head>
-    <title></title>
-    <meta charset="UTF-8"></meta>
-  </head>
-  <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">
-            <tr>
-              <td style="width: 30px; padding: 10px">
-                <a href="<%= @root_url %>" target="_blank">
-                  <%= image_tag attachments["logo.png"].url, alt: "OpenStreetMap logo", title: "OpenStreetMap", height: "30", width: "30", border: "0" %>
-                </a>
-              </td>
-              <td style="padding: 10px 0px">
-                <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>
-                </a>
-              </td>
-            </tr>
-            <tr>
-              <td colspan="2">
-                <table style="background-color: #fff; color: #222; border: solid 1px #ccc; border-collapse: separate">
-                  <tr>
-                    <td style="text-align: left; padding: 15px 15px 5px 15px">
-                      <p style="margin: 0">
-                        <% if @owner %>
-                          <%= raw t "notifier.changeset_comment_notification.commented.your_changeset", :commenter => link_to_user(@commenter), :time => @time %>
-                        <% else %>
-                          <%= raw t "notifier.changeset_comment_notification.commented.commented_changeset", :commenter => link_to_user(@commenter), :time => @time, :changeset_author => @changeset_author %>
-                        <% end %>
-                        <% if @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 %>
-                      </p>
-                      <table style="font-size: 15px; font-style: italic; margin: 15px; background-color: #eee; width: 520px">
-                        <tr>
-                          <td style="width: 50px; vertical-align: top; padding: 15px">
-                            <a href="<%= @commenter_url %>" target="_blank"><%= image_tag attachments["avatar.png"].url, alt: @commenter %></a>
-                          </td>
-                          <td style="text-align: left; vertical-align: top; padding-right: 10px">
-                            <%= @comment.to_html %>
-                          </td>
-                        </tr>
-                      </table>
-                      <p>
-                        <%= raw t 'notifier.changeset_comment_notification.details', :url => content_tag("nobr", link_to(@changeset_url, @changeset_url)) %>
-                      </p>
-                    </td>
-                  </tr>
-                </table>
-              </td>
-            </tr>
-          </table>
-        </td>
-      </tr>
-      <tr>
-        <td style="text-align: center; font-size: 11px">
-          <p>
-            <%= 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>
-          </p>
-        </td>
-      </tr>
-    </table>
-  </body>
-</html>
+<% content_for :body do %>
+  <p style="margin: 0">
+    <% if @owner %>
+      <%= raw t "notifier.changeset_comment_notification.commented.your_changeset", :commenter => link_to_user(@commenter), :time => @time %>
+    <% else %>
+      <%= raw t "notifier.changeset_comment_notification.commented.commented_changeset", :commenter => link_to_user(@commenter), :time => @time, :changeset_author => @changeset_author %>
+    <% end %>
+    <% if @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 %>
+  </p>
+  <table style="font-size: 15px; font-style: italic; margin: 15px; background-color: #eee; width: 520px">
+    <tr>
+      <td style="width: 50px; vertical-align: top; padding: 15px">
+        <a href="<%= @commenter_url %>" target="_blank"><%= image_tag attachments["avatar.png"].url, alt: @commenter %></a>
+      </td>
+      <td style="text-align: left; vertical-align: top; padding-right: 10px">
+        <%= @comment.to_html %>
+      </td>
+    </tr>
+  </table>
+  <p>
+    <%= raw t 'notifier.changeset_comment_notification.details', :url => content_tag("nobr", link_to(@changeset_url, @changeset_url)) %>
+  </p>
+<% end %>
+
+<% content_for :footer do %>
+  <p>
+    <%= raw t 'notifier.changeset_comment_notification.unsubscribe', :url => content_tag("nobr", link_to(@changeset_url, @changeset_url, :style => "color: #222")) %>
+  </p>
+<% end %>