2017-11-21 05:53:09 -05:00
|
|
|
import NotificationOptionsComponent from "select-kit/components/notifications-button";
|
2018-06-15 12:42:20 -04:00
|
|
|
import {
|
2019-11-07 16:38:28 -05:00
|
|
|
default as discourseComputed,
|
2018-06-15 12:42:20 -04:00
|
|
|
on
|
2019-11-07 16:38:28 -05:00
|
|
|
} from "discourse-common/utils/decorators";
|
2017-10-19 15:51:08 -04:00
|
|
|
import { topicLevels } from "discourse/lib/notification-levels";
|
|
|
|
|
|
|
|
export default NotificationOptionsComponent.extend({
|
2017-11-21 05:53:09 -05:00
|
|
|
pluginApiIdentifiers: ["topic-notifications-options"],
|
2017-10-19 15:51:08 -04:00
|
|
|
classNames: "topic-notifications-options",
|
|
|
|
content: topicLevels,
|
|
|
|
i18nPrefix: "topic.notifications",
|
2017-11-21 05:53:09 -05:00
|
|
|
allowInitialValueMutation: false,
|
2017-10-19 15:51:08 -04:00
|
|
|
|
2019-11-07 16:38:28 -05:00
|
|
|
@discourseComputed("topic.archetype")
|
2018-06-11 05:35:13 -04:00
|
|
|
i18nPostfix(archetype) {
|
|
|
|
return archetype === "private_message" ? "_pm" : "";
|
|
|
|
},
|
|
|
|
|
2019-03-20 07:50:13 -04:00
|
|
|
_changed(msg) {
|
2019-05-27 04:15:39 -04:00
|
|
|
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
|
|
|
},
|
|
|
|
|
2017-11-21 05:53:09 -05:00
|
|
|
mutateValue(value) {
|
2019-05-27 04:15:39 -04:00
|
|
|
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
|
|
|
}
|
2019-03-26 07:04:33 -04:00
|
|
|
},
|
|
|
|
|
|
|
|
deselect() {}
|
2017-10-19 15:51:08 -04:00
|
|
|
});
|