discourse/app/assets/javascripts/select-kit/components/topic-notifications-options...

44 lines
1.2 KiB
Plaintext
Raw Normal View History

import NotificationOptionsComponent from "select-kit/components/notifications-button";
2018-06-15 12:42:20 -04:00
import {
default as discourseComputed,
2018-06-15 12:42:20 -04:00
on
} from "discourse-common/utils/decorators";
2017-10-19 15:51:08 -04:00
import { topicLevels } from "discourse/lib/notification-levels";
export default NotificationOptionsComponent.extend({
pluginApiIdentifiers: ["topic-notifications-options"],
2017-10-19 15:51:08 -04:00
classNames: "topic-notifications-options",
content: topicLevels,
i18nPrefix: "topic.notifications",
allowInitialValueMutation: false,
2017-10-19 15:51:08 -04:00
@discourseComputed("topic.archetype")
i18nPostfix(archetype) {
return archetype === "private_message" ? "_pm" : "";
},
2019-03-20 07:50:13 -04:00
_changed(msg) {
if (this.computedValue !== msg.id) {
2019-03-20 07:50:13 -04:00
this.get("topic.details").updateNotifications(msg.id);
}
},
2017-10-19 15:51:08 -04:00
@on("didInsertElement")
_bindGlobalLevelChanged() {
2019-03-20 07:50:13 -04:00
this.appEvents.on("topic-notifications-button:changed", this, "_changed");
2017-10-19 15:51:08 -04:00
},
@on("willDestroyElement")
_unbindGlobalLevelChanged() {
2019-03-20 07:50:13 -04:00
this.appEvents.off("topic-notifications-button:changed", this, "_changed");
2017-10-19 15:51:08 -04:00
},
mutateValue(value) {
if (value !== this.value) {
2017-11-09 13:57:53 -05:00
this.get("topic.details").updateNotifications(value);
2017-10-19 15:51:08 -04:00
}
},
deselect() {}
2017-10-19 15:51:08 -04:00
});