This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/controllers/preferences/emails.js.es6
2018-06-15 17:03:24 +02:00

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