diff --git a/public/src/admin/settings/email.js b/public/src/admin/settings/email.js
index 13b440d66e..a63546f0ba 100644
--- a/public/src/admin/settings/email.js
+++ b/public/src/admin/settings/email.js
@@ -33,6 +33,16 @@ define('admin/settings/email', ['admin/settings'], function(settings) {
$('#email-editor-holder').val(emailEditor.getValue());
});
+ $('button[data-action="email.revert"]').off('click').on('click', function() {
+ ajaxify.data.emails.forEach(function(email) {
+ if (email.path === $('#email-editor-selector').val()) {
+ emailEditor.getSession().setValue(email.original);
+ $('#email-editor-holder')
+ .val(email.original);
+ }
+ });
+ });
+
updateEmailEditor();
}
diff --git a/src/controllers/admin/settings.js b/src/controllers/admin/settings.js
index 225c563604..bf0975058a 100644
--- a/src/controllers/admin/settings.js
+++ b/src/controllers/admin/settings.js
@@ -28,19 +28,16 @@ function renderEmail(req, res, next) {
async.map(emails, function(email, next) {
var path = email.replace(emailsPath, '').substr(1).replace('.tpl', '');
- function callback(err, str) {
+ fs.readFile(email, function(err, original) {
+ var text = meta.config['email:custom:' + path] ? meta.config['email:custom:' + path] : original.toString();
+
next(err, {
path: path,
fullpath: email,
- text: str.toString()
+ text: text,
+ original: original.toString()
});
- }
-
- if (meta.config['email:custom:' + path]) {
- return callback(null, meta.config['email:custom:' + path]);
- }
-
- fs.readFile(email, callback);
+ });
}, function(err, emails) {
res.render('admin/settings/email', {
emails: emails,
diff --git a/src/views/admin/settings/email.tpl b/src/views/admin/settings/email.tpl
index b2046a61a4..24e4fc7798 100644
--- a/src/views/admin/settings/email.tpl
+++ b/src/views/admin/settings/email.tpl
@@ -33,9 +33,12 @@
-
+
+