discourse/app/assets/javascripts/admin/controllers/admin-email-preview-digest.js.es6

50 lines
1.4 KiB
Plaintext
Raw Normal View History

import EmailPreview from 'admin/models/email-preview';
import { popupAjaxError } from 'discourse/lib/ajax-error';
export default Ember.Controller.extend({
emailEmpty: Em.computed.empty('email'),
sendEmailDisabled: Em.computed.or('emailEmpty', 'sendingEmail'),
showSendEmailForm: Em.computed.notEmpty('model.html_content'),
htmlEmpty: Em.computed.empty('model.html_content'),
iframeSrc: function() {
return ('data:text/html;charset=utf-8,' + encodeURI(this.get('model.html_content')));
}.property('model.html_content'),
2013-09-17 02:08:55 +08:00
actions: {
2015-08-16 17:51:31 +08:00
refresh() {
const model = this.get('model');
2013-09-17 02:08:55 +08:00
2015-08-16 18:01:04 +08:00
this.set('loading', true);
this.set('sentEmail', false);
EmailPreview.findDigest(this.get('lastSeen'), this.get('username')).then(email => {
2013-09-17 02:08:55 +08:00
model.setProperties(email.getProperties('html_content', 'text_content'));
2015-08-16 17:51:31 +08:00
this.set('loading', false);
2013-09-17 02:08:55 +08:00
});
},
2015-08-16 17:51:31 +08:00
toggleShowHtml() {
2013-09-17 02:08:55 +08:00
this.toggleProperty('showHtml');
},
sendEmail() {
this.set('sendingEmail', true);
this.set('sentEmail', false);
const self = this;
EmailPreview.sendDigest(this.get('lastSeen'), this.get('username'), this.get('email')).then(result => {
if (result.errors) {
bootbox.alert(result.errors);
} else {
self.set('sentEmail', true);
}
}).catch(popupAjaxError).finally(function() {
self.set('sendingEmail', false);
});
2013-09-17 02:08:55 +08:00
}
}
});