102 lines
3.0 KiB
JavaScript
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);
|
|
}
|
|
}
|
|
});
|