Upgrade merged emails with HTML
Merged change emails will emit an HTML part alongside the existing
plain-text. The HTML message is formatted the same way as the text
version, except that whitespace sensitive parts are set in PRE tags.
Change-Id: I46325add175a635a409c854f064e4789c395c705
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/SitePathInitializer.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/SitePathInitializer.java
index 1d7195b..c3d516b 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/SitePathInitializer.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/SitePathInitializer.java
@@ -115,6 +115,7 @@
extractMailExample("FooterHtml.soy");
extractMailExample("HeaderHtml.soy");
extractMailExample("Merged.soy");
+ extractMailExample("MergedHtml.soy");
extractMailExample("NewChange.soy");
extractMailExample("NewChangeHtml.soy");
extractMailExample("RegisterNewEmail.soy");
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/MailSoyTofuProvider.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/MailSoyTofuProvider.java
index 9aef496..26bd99e 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/MailSoyTofuProvider.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/MailSoyTofuProvider.java
@@ -53,6 +53,7 @@
"FooterHtml.soy",
"HeaderHtml.soy",
"Merged.soy",
+ "MergedHtml.soy",
"NewChange.soy",
"NewChangeHtml.soy",
"RegisterNewEmail.soy",
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/MergedSender.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/MergedSender.java
index c2a3cdd..17a0854 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/MergedSender.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/MergedSender.java
@@ -59,6 +59,10 @@
@Override
protected void formatChange() throws EmailException {
appendText(textTemplate("Merged"));
+
+ if (useHtml()) {
+ appendHtml(soyHtmlTemplate("MergedHtml"));
+ }
}
public String getApprovals() {
@@ -129,4 +133,9 @@
super.setupSoyContext();
soyContextEmailData.put("approvals", getApprovals());
}
+
+ @Override
+ protected boolean supportsHtml() {
+ return true;
+ }
}
diff --git a/gerrit-server/src/main/resources/com/google/gerrit/server/mail/MergedHtml.soy b/gerrit-server/src/main/resources/com/google/gerrit/server/mail/MergedHtml.soy
new file mode 100644
index 0000000..33dd7b8
--- /dev/null
+++ b/gerrit-server/src/main/resources/com/google/gerrit/server/mail/MergedHtml.soy
@@ -0,0 +1,53 @@
+/**
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+{namespace com.google.gerrit.server.mail.template}
+
+/**
+ * @param change
+ * @param email
+ * @param fromName
+ */
+{template .MergedHtml autoescape="strict" kind="html"}
+ <p>
+ {$fromName} has submitted this change and it was merged.
+ </p>
+
+ {if $email.changeUrl}
+ <p>
+ {call .ViewChangeButton data="all" /}
+ </p>
+ {/if}
+
+ <p>
+ Change subject: {$change.subject}
+ </p>
+ <hr/>
+
+ <pre>
+ {$email.changeDetail}
+ </pre>
+
+ <pre>
+ {$email.approvals}
+ </pre>
+
+ {if $email.includeDiff}
+ <pre>
+ {$email.unifiedDiff}
+ </pre>
+ {/if}
+{/template}
\ No newline at end of file