https://meta.discourse.org/t/daily-updates-option-for-mailing-list-mode/45029/14?u=tgxworld
62 lines
1.9 KiB
JavaScript
62 lines
1.9 KiB
JavaScript
import PreferencesTabController from "discourse/mixins/preferences-tab-controller";
|
|
import { default as computed } from "ember-addons/ember-computed-decorators";
|
|
import { popupAjaxError } from 'discourse/lib/ajax-error';
|
|
|
|
export default Ember.Controller.extend(PreferencesTabController, {
|
|
|
|
saveAttrNames: [
|
|
'email_always',
|
|
'mailing_list_mode',
|
|
'mailing_list_mode_frequency',
|
|
'email_digests',
|
|
'email_direct',
|
|
'email_in_reply_to',
|
|
'email_private_messages',
|
|
'email_previous_replies',
|
|
'digest_after_minutes',
|
|
'include_tl0_in_digests'
|
|
],
|
|
|
|
@computed()
|
|
frequencyEstimate() {
|
|
var estimate = this.get('model.mailing_list_posts_per_day');
|
|
if (!estimate || estimate < 2) {
|
|
return I18n.t('user.mailing_list_mode.few_per_day');
|
|
} else {
|
|
return I18n.t('user.mailing_list_mode.many_per_day', { dailyEmailEstimate: estimate });
|
|
}
|
|
},
|
|
|
|
@computed()
|
|
mailingListModeOptions() {
|
|
return [
|
|
{name: this.get('frequencyEstimate'), value: 1},
|
|
{name: I18n.t('user.mailing_list_mode.individual_no_echo'), value: 2}
|
|
];
|
|
},
|
|
|
|
previousRepliesOptions: [
|
|
{name: I18n.t('user.email_previous_replies.always'), value: 0},
|
|
{name: I18n.t('user.email_previous_replies.unless_emailed'), value: 1},
|
|
{name: I18n.t('user.email_previous_replies.never'), value: 2}
|
|
],
|
|
|
|
digestFrequencies: [
|
|
{ name: I18n.t('user.email_digests.every_30_minutes'), value: 30 },
|
|
{ name: I18n.t('user.email_digests.every_hour'), value: 60 },
|
|
{ name: I18n.t('user.email_digests.daily'), value: 1440 },
|
|
{ name: I18n.t('user.email_digests.every_three_days'), value: 4320 },
|
|
{ name: I18n.t('user.email_digests.weekly'), value: 10080 },
|
|
{ name: I18n.t('user.email_digests.every_two_weeks'), value: 20160 }
|
|
],
|
|
|
|
actions: {
|
|
save() {
|
|
this.set('saved', false);
|
|
return this.get('model').save(this.get('saveAttrNames')).then(() => {
|
|
this.set('saved', true);
|
|
}).catch(popupAjaxError);
|
|
}
|
|
}
|
|
});
|