discourse/app/assets/javascripts/select-kit/components/group-dropdown.js.es6
Jarek Radosz fe588cc7f8
DEV: Fix function prototype deprecations (#8681)
* DEV: Fix the function prototype observers deprecation

DEPRECATION: Function prototype extensions have been deprecated, please migrate from function(){}.observes('foo') to observer('foo', function() {}). [deprecation id: function-prototype-extensions.observes] See https://deprecations.emberjs.com/v3.x/#toc_function-prototype-extensions-observes for more details.

* DEV: Fix the function prototype event listeners deprecation

DEPRECATION: Function prototype extensions have been deprecated, please migrate from function(){}.on('foo') to on('foo', function() {}). [deprecation id: function-prototype-extensions.on] See https://deprecations.emberjs.com/v3.x/#toc_function-prototype-extensions-on for more details.

* DEV: Simplify `default as` imports

Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
2020-01-16 18:56:53 +01:00

51 lines
1.3 KiB
JavaScript

import { alias } from "@ember/object/computed";
import ComboBoxComponent from "select-kit/components/combo-box";
import DiscourseURL from "discourse/lib/url";
import discourseComputed from "discourse-common/utils/decorators";
export default ComboBoxComponent.extend({
pluginApiIdentifiers: ["group-dropdown"],
classNames: "group-dropdown",
content: alias("groups"),
tagName: "li",
caretDownIcon: "caret-right",
caretUpIcon: "caret-down",
allowAutoSelectFirst: false,
valueAttribute: "name",
@discourseComputed("content")
filterable(content) {
return content && content.length >= 10;
},
computeHeaderContent() {
let content = this._super(...arguments);
if (!this.hasSelection) {
content.label = `<span>${I18n.t("groups.index.all")}</span>`;
}
return content;
},
@discourseComputed
collectionHeader() {
if (
this.siteSettings.enable_group_directory ||
(this.currentUser && this.currentUser.get("staff"))
) {
return `
<a href="${Discourse.getURL("/g")}" class="group-dropdown-filter">
${I18n.t("groups.index.all").toLowerCase()}
</a>
`.htmlSafe();
}
},
actions: {
onSelect(groupName) {
DiscourseURL.routeTo(Discourse.getURL(`/g/${groupName}`));
}
}
});