71 lines
1.8 KiB
JavaScript
71 lines
1.8 KiB
JavaScript
import computed from "ember-addons/ember-computed-decorators";
|
|
import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
|
|
|
|
export default DropdownSelectBoxComponent.extend({
|
|
pluginApiIdentifiers: ["group-member-dropdown"],
|
|
classNames: "group-member-dropdown",
|
|
showFullTitle: false,
|
|
allowInitialValueMutation: false,
|
|
allowAutoSelectFirst: false,
|
|
|
|
init() {
|
|
this._super(...arguments);
|
|
|
|
this.headerIcon = ["wrench"];
|
|
},
|
|
|
|
autoHighlight() {},
|
|
|
|
@computed("member.owner")
|
|
content(isOwner) {
|
|
const items = [
|
|
{
|
|
id: "removeMember",
|
|
name: I18n.t("groups.members.remove_member"),
|
|
description: I18n.t("groups.members.remove_member_description", {
|
|
username: this.get("member.username")
|
|
}),
|
|
icon: "user-times"
|
|
}
|
|
];
|
|
|
|
if (this.currentUser && this.currentUser.admin) {
|
|
if (isOwner) {
|
|
items.push({
|
|
id: "removeOwner",
|
|
name: I18n.t("groups.members.remove_owner"),
|
|
description: I18n.t("groups.members.remove_owner_description", {
|
|
username: this.get("member.username")
|
|
}),
|
|
icon: "shield-alt"
|
|
});
|
|
} else {
|
|
items.push({
|
|
id: "makeOwner",
|
|
name: I18n.t("groups.members.make_owner"),
|
|
description: I18n.t("groups.members.make_owner_description", {
|
|
username: this.get("member.username")
|
|
}),
|
|
icon: "shield-alt"
|
|
});
|
|
}
|
|
}
|
|
|
|
return items;
|
|
},
|
|
|
|
mutateValue(id) {
|
|
switch (id) {
|
|
case "removeMember":
|
|
this.removeMember(this.member);
|
|
break;
|
|
case "makeOwner":
|
|
this.makeOwner(this.get("member.username"));
|
|
break;
|
|
case "removeOwner":
|
|
this.removeOwner(this.member);
|
|
break;
|
|
}
|
|
}
|
|
});
|