discourse/app/assets/javascripts/select-kit/components/group-dropdown.js.es6

50 lines
1.2 KiB
Plaintext
Raw Normal View History

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