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/notifications.js.es6

102 lines
3.0 KiB
JavaScript

import PreferencesTabController from "discourse/mixins/preferences-tab-controller";
import { NotificationLevels } from "discourse/lib/notification-levels";
import { popupAjaxError } from "discourse/lib/ajax-error";
export default Ember.Controller.extend(PreferencesTabController, {
init() {
this._super(...arguments);
this.saveAttrNames = [
"muted_usernames",
"ignored_usernames",
"new_topic_duration_minutes",
"auto_track_topics_after_msecs",
"notification_level_when_replying",
"like_notification_frequency",
"allow_private_messages"
];
this.likeNotificationFrequencies = [
{ name: I18n.t("user.like_notification_frequency.always"), value: 0 },
{
name: I18n.t("user.like_notification_frequency.first_time_and_daily"),
value: 1
},
{ name: I18n.t("user.like_notification_frequency.first_time"), value: 2 },
{ name: I18n.t("user.like_notification_frequency.never"), value: 3 }
];
this.autoTrackDurations = [
{ name: I18n.t("user.auto_track_options.never"), value: -1 },
{ name: I18n.t("user.auto_track_options.immediately"), value: 0 },
{
name: I18n.t("user.auto_track_options.after_30_seconds"),
value: 30000
},
{ name: I18n.t("user.auto_track_options.after_1_minute"), value: 60000 },
{
name: I18n.t("user.auto_track_options.after_2_minutes"),
value: 120000
},
{
name: I18n.t("user.auto_track_options.after_3_minutes"),
value: 180000
},
{
name: I18n.t("user.auto_track_options.after_4_minutes"),
value: 240000
},
{
name: I18n.t("user.auto_track_options.after_5_minutes"),
value: 300000
},
{
name: I18n.t("user.auto_track_options.after_10_minutes"),
value: 600000
}
];
this.notificationLevelsForReplying = [
{
name: I18n.t("topic.notifications.watching.title"),
value: NotificationLevels.WATCHING
},
{
name: I18n.t("topic.notifications.tracking.title"),
value: NotificationLevels.TRACKING
},
{
name: I18n.t("topic.notifications.regular.title"),
value: NotificationLevels.REGULAR
}
];
this.considerNewTopicOptions = [
{ name: I18n.t("user.new_topic_duration.not_viewed"), value: -1 },
{ name: I18n.t("user.new_topic_duration.after_1_day"), value: 60 * 24 },
{ name: I18n.t("user.new_topic_duration.after_2_days"), value: 60 * 48 },
{
name: I18n.t("user.new_topic_duration.after_1_week"),
value: 7 * 60 * 24
},
{
name: I18n.t("user.new_topic_duration.after_2_weeks"),
value: 2 * 7 * 60 * 24
},
{ name: I18n.t("user.new_topic_duration.last_here"), value: -2 }
];
},
actions: {
save() {
this.set("saved", false);
return this.model
.save(this.saveAttrNames)
.then(() => {
this.set("saved", true);
})
.catch(popupAjaxError);
}
}
});