summary refs log tree commit diff
path: root/res/templates
diff options
context:
space:
mode:
authorMatthew Hodgson <matthew@matrix.org>2016-05-10 00:14:48 +0200
committerMatthew Hodgson <matthew@matrix.org>2016-05-10 00:14:48 +0200
commit55996088876664280e7a9232ca21b1875db6c413 (patch)
tree325a6a6f581c4da6eea102a375b83ef9b5fa24d2 /res/templates
parentSwitch from CSS to Table layout for HTML mails so they work in Outlook aka Word (diff)
downloadsynapse-55996088876664280e7a9232ca21b1875db6c413.tar.xz
Switch from CSS to Table layout for HTML mails so they work in Outlook aka Word
    Remove templates-vector and theme templates with variables instead
    Switch to matrix.to URLs by default for links
Diffstat (limited to 'res/templates')
-rw-r--r--res/templates/mail.css137
-rw-r--r--res/templates/notif.html50
-rw-r--r--res/templates/notif.txt2
-rw-r--r--res/templates/notif_mail.html42
-rw-r--r--res/templates/room.html54
5 files changed, 222 insertions, 63 deletions
diff --git a/res/templates/mail.css b/res/templates/mail.css
index 61953ba51c..b02f509e58 100644
--- a/res/templates/mail.css
+++ b/res/templates/mail.css
@@ -1,21 +1,146 @@
+body {
+    margin: 0px;
+}
+
+#page {
+    font-family: 'Open Sans', Helvetica, Arial, Sans-Serif;
+    font-color: #454545;
+    font-size: 12pt;
+    width: 100%;
+    padding: 20px;
+}
+
+#inner {
+    width: 640px;
+}
+
+.header {
+    width: 100%;
+    height: 87px;
+    color: #454545;
+    border-bottom: 4px solid #e5e5e5;
+}
+
+.logo {
+    text-align: right;
+    margin-left: 20px;
+}
+
+.salutation {
+    padding-top: 10px;
+    font-weight: bold;
+}
+
+.summarytext {
+}
+
+.room {
+    width: 100%;
+    color: #454545;
+    border-bottom: 1px solid #e5e5e5;
+}
+
+.room_header td {
+    padding-top: 38px;
+    padding-bottom: 10px;
+    border-bottom: 1px solid #e5e5e5;
+}
+
+.room_name {
+    vertical-align: middle;
+    font-size: 18px;
+    font-weight: bold;
+}
+
+.room_header h2 {
+    margin-top: 0px;
+    margin-left: 75px;
+    font-size: 20px;
+}
+
 .room_avatar {
+    width: 56px;
+    line-height: 0px;
+    text-align: center;
+    vertical-align: middle;
+}
+
+.room_avatar img {
     width: 48px;
     height: 48px;
-    float: left;
+    object-fit: cover;
+    border-radius: 24px;
+}
+
+.notif {
+    border-bottom: 1px solid #e5e5e5;
+    margin-top: 16px;
+    padding-bottom: 16px;
+}
+
+.historical_message .sender_avatar {
+    opacity: 0.3;
+}
+
+/* spell out opacity and historical_message class names for Outlook aka Word */
+.historical_message .sender_name {
+    color: #e3e3e3;
+}
+
+.historical_message .message_time {
+    color: #e3e3e3;
+}
+
+.historical_message .message_body {
+    color: #c7c7c7;
+}
+
+.historical_message td,
+.message td {
+    padding-top: 10px;
 }
 
-.room_content {
-    clear: left;
+.sender_avatar {
+    width: 56px;
+    text-align: center;
+    vertical-align: top;
 }
 
-.historical {
-    color: #888;
+.sender_avatar img {
+    margin-top: -2px;
+    width: 32px;
+    height: 32px;
+    border-radius: 16px;
 }
 
 .sender_name  {
     display: inline;
+    font-size: 13px;
+    color: #a2a2a2;
 }
 
 .message_time  {
-    display: inline;
+    text-align: right;
+    width: 100px;
+    font-size: 11px;
+    color: #a2a2a2;
+}
+
+.message_body {
 }
+
+.notif_link td {
+    padding-top: 10px;
+    padding-bottom: 10px;
+    font-weight: bold;
+}
+
+.notif_link a, .footer a {
+    color: #454545;
+    text-decoration: none;
+}
+
+.footer {
+    margin-top: 20px;
+    text-align: center;
+}
\ No newline at end of file
diff --git a/res/templates/notif.html b/res/templates/notif.html
index 3112df9704..92e80352fc 100644
--- a/res/templates/notif.html
+++ b/res/templates/notif.html
@@ -1,9 +1,9 @@
-<div class="notif">
-    <div>
-        {% for message in notif.messages %}
-            <div class="message {% if message.is_historical %}historical{% endif %}">
+{% for message in notif.messages %}
+    <tr class="{{ "historical_message" if message.is_historical else "message" }}">
+        <td class="sender_avatar">
+            {% if loop.index0 == 0 or notif.messages[loop.index0 - 1].sender_name != notif.messages[loop.index0].sender_name %}
                 {% if message.sender_avatar_url %}
-                    <img class="sender_avatar" src="{{ message.sender_avatar_url|mxc_to_http(48,48) }}"  />
+                    <img alt="" class="sender_avatar" src="{{ message.sender_avatar_url|mxc_to_http(32,32) }}"  />
                 {% else %}
                     {% if message.sender_hash % 3 == 0 %}
                         <img class="sender_avatar" src="https://vector.im/beta/img/76cfa6.png"  />
@@ -14,21 +14,29 @@
                     {% endif %}
                     <img class="sender_avatar" src="{{ message.sender_avatar_url }}"  />
                 {% endif %}
+            {% endif %}
+        </td>
+        <td class="message_contents">
+            {% if loop.index0 == 0 or notif.messages[loop.index0 - 1].sender_name != notif.messages[loop.index0].sender_name %}
                 <div class="sender_name">{{ message.sender_name }}</div>
-                <div class="message_time">{{ message.ts|format_ts("%H:%M") }}</div>
-                <div class="message_body">
-                    {% if message.msgtype == "m.text" %}
-                        {{ message.body_text_html }}
-                    {% elif message.msgtype == "m.image" %}
-                        <img src="{{ message.image_url|mxc_to_http(640, 480, scale) }}" />
-                    {% elif message.msgtype == "m.file" %}
-                        <span class="filename">{{ message.body_text_plain }}</span>
-                    {% endif %}
-                </div>
+            {% endif %}
+            <div class="message_body">
+                {% if message.msgtype == "m.text" %}
+                    {{ message.body_text_html }}
+                {% elif message.msgtype == "m.image" %}
+                    <img src="{{ message.image_url|mxc_to_http(640, 480, scale) }}" />
+                {% elif message.msgtype == "m.file" %}
+                    <span class="filename">{{ message.body_text_plain }}</span>
+                {% endif %}
             </div>
-        {% endfor %}
-    </div>
-    <div class="notif_link">
-        <a href="{{ notif.link }}">View</a>
-    </div>
-</div>
+        </td>
+        <td class="message_time">{{ message.ts|format_ts("%H:%M") }}</td>
+    </tr>
+{% endfor %}
+<tr class="notif_link">
+    <td></td>
+    <td>
+        <a href="{{ notif.link }}">View {{ room.title }}</a>
+    </td>
+    <td></td>
+</tr>
diff --git a/res/templates/notif.txt b/res/templates/notif.txt
index b515f394c3..a3ddac80ce 100644
--- a/res/templates/notif.txt
+++ b/res/templates/notif.txt
@@ -9,4 +9,4 @@
 {% endif %}
 {% endfor %}
 
-View at {{ notif.link }}
+View {{ room.title }} at {{ notif.link }}
diff --git a/res/templates/notif_mail.html b/res/templates/notif_mail.html
index cc3573e65a..4034f3c601 100644
--- a/res/templates/notif_mail.html
+++ b/res/templates/notif_mail.html
@@ -3,20 +3,38 @@
     <head>
         <style type="text/css">
             {% include 'mail.css' without context %}
+            {% include "mail-%s.css" % app_name ignore missing without context %}
         </style>
     </head>
     <body>
-        <div id="page">
-            <div className="salutation">Hi {{ user_display_name }},</div>
-            <div className="summarytext">{{ summary_text }}</div>
-            <div class="content">
-                {% for room in rooms %}
-                    {% include 'room.html' with context %}
-                {% endfor %}
-            </div>
-            <div class="footer">
-                <a href="{{ unsubscribe_link }}">Unsubscribe</a>
-            </div>
-        </div>
+        <table id="page">
+            <tr>
+                <td> </td>
+                <td id="inner">
+                    <table class="header">
+                        <tr>
+                            <td>
+                                <div class="salutation">Hi {{ user_display_name }},</div>
+                                <div class="summarytext">{{ summary_text }}</div>
+                            </td>
+                            <td class="logo">
+                                {% if app_name == "Vector" %}
+                                    <img src="http://matrix.org/img/vector-logo-email.png" width="64" height="83" alt="[Vector]"/>
+                                {% else %}
+                                    <img src="http://matrix.org/img/matrix-94px-white.png" width="94" height="40" alt="[matrix]"/>
+                                {% endif %}
+                            </td>
+                        </tr>
+                    </table>
+                    {% for room in rooms %}
+                        {% include 'room.html' with context %}
+                    {% endfor %}
+                    <div class="footer">
+                        <a href="{{ unsubscribe_link }}">Unsubscribe</a>
+                    </div>
+                </td>
+                <td> </td>
+            </tr>
+        </table>
     </body>
 </html>
diff --git a/res/templates/room.html b/res/templates/room.html
index 3c0a4607b3..723c222d25 100644
--- a/res/templates/room.html
+++ b/res/templates/room.html
@@ -1,25 +1,33 @@
-<div class="room">
-    <div class="room_avatar">
-        {% if room.avatar_url %}
-            <img src="{{ room.avatar_url|mxc_to_http(48,48) }}" />
-        {% else %}
-            {% if room.hash % 3 == 0 %}
-                <img src="https://vector.im/beta/img/76cfa6.png"  />
-            {% elif room.hash % 3 == 1 %}
-                <img src="https://vector.im/beta/img/50e2c2.png"  />
+<table class="room">
+    <tr class="room_header">
+        <td class="room_avatar">
+            {% if room.avatar_url %}
+                <img alt="" src="{{ room.avatar_url|mxc_to_http(48,48) }}" />
             {% else %}
-                <img src="https://vector.im/beta/img/f4c371.png"  />
+                {% if room.hash % 3 == 0 %}
+                    <img alt="" src="https://vector.im/beta/img/76cfa6.png"  />
+                {% elif room.hash % 3 == 1 %}
+                    <img alt="" src="https://vector.im/beta/img/50e2c2.png"  />
+                {% else %}
+                    <img alt="" src="https://vector.im/beta/img/f4c371.png"  />
+                {% endif %}
             {% endif %}
-        {% endif %}
-    </div>
-    <h2>{{ room.title }}</h2>
-    <div class="room_content">
-        {% if room.invite %}
-            <a href="{{ room.link }}">Join the conversation.</a>
-        {% else %}
-            {% for notif in room.notifs %}
-                {% include 'notif.html' with context %}
-            {% endfor %}
-        {% endif %}
-    </div>
-</div>
+        </td>
+        <td class="room_name" colspan="2">
+            {{ room.title }}
+        </td>
+    </tr>
+    {% if room.invite %}
+        <tr>
+            <td></td>
+            <td>
+                <a href="{{ room.link }}">Join the conversation.</a>
+            </td>
+            <td></td>
+        </tr>
+    {% else %}
+        {% for notif in room.notifs %}
+            {% include 'notif.html' with context %}
+        {% endfor %}
+    {% endif %}
+</table>