UX: Allow admins to manage automatic groups on group page.

This commit is contained in:
Guo Xiang Tan
2018-04-04 11:06:40 +08:00
parent 4f7f733ab0
commit e6d07fa6d8
4 changed files with 217 additions and 159 deletions
@@ -1,9 +1,24 @@
import { default as computed } from 'ember-addons/ember-computed-decorators';
export default Ember.Controller.extend({
application: Ember.inject.controller(),
tabs: [
{ route: 'group.manage.profile', title: 'groups.manage.profile.title' },
{ route: 'group.manage.members', title: 'groups.manage.members.title' },
{ route: 'group.manage.logs', title: 'groups.manage.logs.title' },
],
@computed("model.automatic")
tabs(automatic) {
const defaultTabs = [
{ route: 'group.manage.profile', title: 'groups.manage.profile.title' },
];
if (!automatic) {
defaultTabs.push(
{ route: 'group.manage.members', title: 'groups.manage.members.title' }
);
defaultTabs.push(
{ route: 'group.manage.logs', title: 'groups.manage.logs.title' },
);
}
return defaultTabs;
},
});
@@ -14,8 +14,8 @@ export default Ember.Controller.extend({
counts: null,
showing: 'members',
@computed('showMessages', 'model.user_count')
tabs(showMessages, userCount) {
@computed('showMessages', 'model.user_count', 'canManageGroup')
tabs(showMessages, userCount, canManageGroup) {
const membersTab = Tab.create({
name: 'members',
route: 'group.index',
@@ -36,7 +36,7 @@ export default Ember.Controller.extend({
}));
}
if (this.currentUser && this.currentUser.canManageGroup(this.model)) {
if (canManageGroup) {
defaultTabs.push(
Tab.create({
name: 'manage', i18nKey: 'manage.title', icon: 'wrench'
@@ -81,9 +81,12 @@ export default Ember.Controller.extend({
return this.currentUser && messageable;
},
@computed('model')
canManageGroup(model) {
return this.currentUser && this.currentUser.canManageGroup(model);
@computed('model', 'model.automatic')
canManageGroup(model, automatic) {
return this.currentUser && (
this.currentUser.canManageGroup(model) ||
(this.currentUser.admin && automatic)
);
},
actions: {