Better HTML emails, smarter email digests, new email section in admin with digest preview

This commit is contained in:
Robin Ward
2013-06-05 17:47:25 -04:00
parent f030d9b420
commit 0b97ea6345
69 changed files with 552 additions and 443 deletions
@@ -1,21 +1,29 @@
/**
This controller supports the interface for reviewing email logs.
This controller supports email functionality.
@class AdminEmailLogsController
@extends Ember.ArrayController
@class AdminEmailIndexController
@extends Discourse.Controller
@namespace Discourse
@module Discourse
**/
Discourse.AdminEmailLogsController = Ember.ArrayController.extend(Discourse.Presence, {
Discourse.AdminEmailIndexController = Discourse.Controller.extend(Discourse.Presence, {
/**
Is the "send test email" button disabled?
@property sendTestEmailDisabled
**/
sendTestEmailDisabled: function() {
return this.blank('testEmailAddress');
}.property('testEmailAddress'),
sendTestEmailDisabled: Em.computed.empty('testEmailAddress'),
/**
Clears the 'sentTestEmail' property on successful send.
@method testEmailAddressChanged
**/
testEmailAddressChanged: function() {
this.set('sentTestEmail', false);
}.observes('testEmailAddress'),
/**
Sends a test email to the currently entered email address
@@ -26,7 +34,7 @@ Discourse.AdminEmailLogsController = Ember.ArrayController.extend(Discourse.Pres
this.set('sentTestEmail', false);
var adminEmailLogsController = this;
Discourse.ajax("/admin/email_logs/test", {
Discourse.ajax("/admin/email/test", {
type: 'POST',
data: { email_address: this.get('testEmailAddress') }
}).then(function () {
@@ -0,0 +1,21 @@
/**
This controller previews an email digest
@class AdminEmailPreviewDigestController
@extends Discourse.ObjectController
@namespace Discourse
@module Discourse
**/
Discourse.AdminEmailPreviewDigestController = Discourse.ObjectController.extend(Discourse.Presence, {
refresh: function() {
var model = this.get('model');
var controller = this;
controller.set('loading', true);
Discourse.EmailPreview.findDigest(this.get('lastSeen')).then(function (email) {
model.setProperties(email.getProperties('html_content', 'text_content'));
controller.set('loading', false);
})
}
});