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/components/topic-footer-buttons.js.es6

54 lines
1.7 KiB
JavaScript

import discourseComputed from "discourse-common/utils/decorators";
import { alias, or, and } from "@ember/object/computed";
import Component from "@ember/component";
import { getTopicFooterButtons } from "discourse/lib/register-topic-footer-button";
export default Component.extend({
elementId: "topic-footer-buttons",
// Allow us to extend it
layoutName: "components/topic-footer-buttons",
@discourseComputed("topic.isPrivateMessage")
canArchive(isPM) {
return this.siteSettings.enable_personal_messages && isPM;
},
buttons: getTopicFooterButtons(),
@discourseComputed("buttons.[]")
inlineButtons(buttons) {
return buttons.filter(button => !button.dropdown);
},
// topic.assigned_to_user is for backward plugin support
@discourseComputed("buttons.[]", "topic.assigned_to_user")
dropdownButtons(buttons) {
return buttons.filter(button => button.dropdown);
},
@discourseComputed("topic.isPrivateMessage")
showNotificationsButton(isPM) {
return !isPM || this.siteSettings.enable_personal_messages;
},
canInviteTo: alias("topic.details.can_invite_to"),
canDefer: alias("currentUser.enable_defer"),
inviteDisabled: or("topic.archived", "topic.closed", "topic.deleted"),
showEditOnFooter: and("topic.isPrivateMessage", "site.can_tag_pms"),
@discourseComputed("topic.message_archived")
archiveIcon: archived => (archived ? "envelope" : "folder"),
@discourseComputed("topic.message_archived")
archiveTitle: archived =>
archived ? "topic.move_to_inbox.help" : "topic.archive_message.help",
@discourseComputed("topic.message_archived")
archiveLabel: archived =>
archived ? "topic.move_to_inbox.title" : "topic.archive_message.title"
});