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

53 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({
username: null,
lastSeen: null,
emailEmpty: Ember.computed.empty('email'),
sendEmailDisabled: Ember.computed.or('emailEmpty', 'sendingEmail'),
showSendEmailForm: Ember.computed.notEmpty('model.html_content'),
htmlEmpty: Ember.computed.empty('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);
let username = this.get('username');
if (!username) {
username = this.currentUser.get('username');
this.set('username', username);
}
EmailPreview.findDigest(username, this.get('lastSeen')).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);
EmailPreview.sendDigest(this.get('username'), this.get('lastSeen'), this.get('email')).then(result => {
if (result.errors) {
bootbox.alert(result.errors);
} else {
this.set('sentEmail', true);
}
}).catch(popupAjaxError).finally(() => {
this.set('sendingEmail', false);
});
2013-09-17 02:08:55 +08:00
}
}
});