66 lines
2.0 KiB
JavaScript
66 lines
2.0 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);
|
|
}
|
|
}
|
|
});
|