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); } } });