diff --git a/app/assets/javascripts/discourse/components/mobile-nav.js.es6 b/app/assets/javascripts/discourse/components/mobile-nav.js.es6 index cee8a2111aa..deccf48ef2d 100644 --- a/app/assets/javascripts/discourse/components/mobile-nav.js.es6 +++ b/app/assets/javascripts/discourse/components/mobile-nav.js.es6 @@ -14,6 +14,7 @@ export default Ember.Component.extend({ }, tagName: 'ul', + selectedHtml: null, classNames: ['mobile-nav'], diff --git a/app/assets/javascripts/discourse/controllers/group-posts.js.es6 b/app/assets/javascripts/discourse/controllers/group-activity-posts.js.es6 similarity index 100% rename from app/assets/javascripts/discourse/controllers/group-posts.js.es6 rename to app/assets/javascripts/discourse/controllers/group-activity-posts.js.es6 diff --git a/app/assets/javascripts/discourse/controllers/group-activity.js.es6 b/app/assets/javascripts/discourse/controllers/group-activity.js.es6 new file mode 100644 index 00000000000..955822ffcf5 --- /dev/null +++ b/app/assets/javascripts/discourse/controllers/group-activity.js.es6 @@ -0,0 +1,10 @@ +import computed from 'ember-addons/ember-computed-decorators'; + +export default Ember.Controller.extend({ + application: Ember.inject.controller(), + + @computed('model.is_group_user') + showGroupMessages(isGroupUser) { + return isGroupUser || (this.currentUser && this.currentUser.admin); + } +}); diff --git a/app/assets/javascripts/discourse/controllers/group.js.es6 b/app/assets/javascripts/discourse/controllers/group.js.es6 index 8ce8e7c821f..4a8a87c0851 100644 --- a/app/assets/javascripts/discourse/controllers/group.js.es6 +++ b/app/assets/javascripts/discourse/controllers/group.js.es6 @@ -16,19 +16,15 @@ export default Ember.Controller.extend({ application: Ember.inject.controller(), counts: null, showing: 'members', + tabs: [ - Tab.create({ name: 'members', active: true, 'location': 'group.index' }), - Tab.create({ name: 'posts' }), - Tab.create({ name: 'topics' }), - Tab.create({ name: 'mentions' }), - Tab.create({ name: 'messages', requiresMembership: true }), + Tab.create({ name: 'members', 'location': 'group.index', icon: 'users' }), + Tab.create({ name: 'activity' }), Tab.create({ - name: 'edit', i18nKey: 'edit.title', - requiresMembership: true, requiresGroupAdmin: true + name: 'edit', i18nKey: 'edit.title', icon: 'pencil', requiresGroupAdmin: true }), Tab.create({ - name: 'logs', i18nKey: 'logs.title', - requiresMembership: true, requiresGroupAdmin: true + name: 'logs', i18nKey: 'logs.title', icon: 'list-alt', requiresGroupAdmin: true }) ], @@ -57,31 +53,22 @@ export default Ember.Controller.extend({ this.get('tabs')[0].set('count', this.get('model.user_count')); }, - @observes('showing') - showingChanged() { - const showing = this.get('showing'); - - this.get('tabs').forEach(tab => { - tab.set('active', showing === tab.get('name')); - }); - }, - @computed('model.is_group_user', 'model.is_group_owner', 'model.automatic') getTabs(isGroupUser, isGroupOwner, automatic) { return this.get('tabs').filter(t => { - let isMember = false; + let display = true; - if (this.currentUser && !automatic) { + if (this.currentUser) { let admin = this.currentUser.admin; - if (t.get('requiresGroupAdmin')) { - isMember = admin || isGroupOwner; + if (automatic && t.get('requiresGroupAdmin')) { + display = false; } else { - isMember = admin || isGroupUser; + display = admin || isGroupOwner; } } - return isMember || !t.get('requiresMembership'); + return display; }); } }); diff --git a/app/assets/javascripts/discourse/routes/app-route-map.js.es6 b/app/assets/javascripts/discourse/routes/app-route-map.js.es6 index 38cebdd9659..7dc4502cf75 100644 --- a/app/assets/javascripts/discourse/routes/app-route-map.js.es6 +++ b/app/assets/javascripts/discourse/routes/app-route-map.js.es6 @@ -49,10 +49,14 @@ export default function() { this.route('group', { path: '/groups/:name', resetNamespace: true }, function() { this.route('members'); - this.route('posts'); - this.route('topics'); - this.route('mentions'); - this.route('messages'); + + this.route('activity', function() { + this.route('posts'); + this.route('topics'); + this.route('mentions'); + this.route('messages'); + }); + this.route('logs'); this.route('edit'); }); diff --git a/app/assets/javascripts/discourse/routes/group-activity-mentions.js.es6 b/app/assets/javascripts/discourse/routes/group-activity-mentions.js.es6 new file mode 100644 index 00000000000..48f4fc7d9d5 --- /dev/null +++ b/app/assets/javascripts/discourse/routes/group-activity-mentions.js.es6 @@ -0,0 +1,3 @@ +import { buildGroupPage } from 'discourse/routes/group-activity-posts'; + +export default buildGroupPage('mentions'); diff --git a/app/assets/javascripts/discourse/routes/group-activity-messages.js.es6 b/app/assets/javascripts/discourse/routes/group-activity-messages.js.es6 new file mode 100644 index 00000000000..660a5c7cd5f --- /dev/null +++ b/app/assets/javascripts/discourse/routes/group-activity-messages.js.es6 @@ -0,0 +1,3 @@ +import { buildGroupPage } from 'discourse/routes/group-activity-posts'; + +export default buildGroupPage('messages'); diff --git a/app/assets/javascripts/discourse/routes/group-posts.js.es6 b/app/assets/javascripts/discourse/routes/group-activity-posts.js.es6 similarity index 79% rename from app/assets/javascripts/discourse/routes/group-posts.js.es6 rename to app/assets/javascripts/discourse/routes/group-activity-posts.js.es6 index 25ee29e4dd0..03cd7ec1147 100644 --- a/app/assets/javascripts/discourse/routes/group-posts.js.es6 +++ b/app/assets/javascripts/discourse/routes/group-activity-posts.js.es6 @@ -11,12 +11,12 @@ export function buildGroupPage(type) { }, setupController(controller, model) { - this.controllerFor('group-posts').setProperties({ model, type }); + this.controllerFor('group-activity-posts').setProperties({ model, type }); this.controllerFor("group").set("showing", type); }, renderTemplate() { - this.render('group-posts'); + this.render('group-activity-posts'); }, actions: { diff --git a/app/assets/javascripts/discourse/routes/group-activity-topics.js.es6 b/app/assets/javascripts/discourse/routes/group-activity-topics.js.es6 new file mode 100644 index 00000000000..16164a51bb3 --- /dev/null +++ b/app/assets/javascripts/discourse/routes/group-activity-topics.js.es6 @@ -0,0 +1,3 @@ +import { buildGroupPage } from 'discourse/routes/group-activity-posts'; + +export default buildGroupPage('topics'); diff --git a/app/assets/javascripts/discourse/routes/group-activity.js.es6 b/app/assets/javascripts/discourse/routes/group-activity.js.es6 new file mode 100644 index 00000000000..84011db59f4 --- /dev/null +++ b/app/assets/javascripts/discourse/routes/group-activity.js.es6 @@ -0,0 +1,5 @@ +export default Ember.Route.extend({ + beforeModel: function() { + this.transitionTo("group.activity.posts"); + } +}); diff --git a/app/assets/javascripts/discourse/routes/group-mentions.js.es6 b/app/assets/javascripts/discourse/routes/group-mentions.js.es6 deleted file mode 100644 index 2a12734dc18..00000000000 --- a/app/assets/javascripts/discourse/routes/group-mentions.js.es6 +++ /dev/null @@ -1,3 +0,0 @@ -import { buildGroupPage } from 'discourse/routes/group-posts'; - -export default buildGroupPage('mentions'); diff --git a/app/assets/javascripts/discourse/routes/group-messages.js.es6 b/app/assets/javascripts/discourse/routes/group-messages.js.es6 deleted file mode 100644 index c800d6f7774..00000000000 --- a/app/assets/javascripts/discourse/routes/group-messages.js.es6 +++ /dev/null @@ -1,3 +0,0 @@ -import { buildGroupPage } from 'discourse/routes/group-posts'; - -export default buildGroupPage('messages'); diff --git a/app/assets/javascripts/discourse/routes/group-topics.js.es6 b/app/assets/javascripts/discourse/routes/group-topics.js.es6 deleted file mode 100644 index be4e87077e9..00000000000 --- a/app/assets/javascripts/discourse/routes/group-topics.js.es6 +++ /dev/null @@ -1,3 +0,0 @@ -import { buildGroupPage } from 'discourse/routes/group-posts'; - -export default buildGroupPage('topics'); diff --git a/app/assets/javascripts/discourse/templates/group-posts.hbs b/app/assets/javascripts/discourse/templates/group-activity-posts.hbs similarity index 100% rename from app/assets/javascripts/discourse/templates/group-posts.hbs rename to app/assets/javascripts/discourse/templates/group-activity-posts.hbs diff --git a/app/assets/javascripts/discourse/templates/group.hbs b/app/assets/javascripts/discourse/templates/group.hbs index e570322d699..571c1813d6e 100644 --- a/app/assets/javascripts/discourse/templates/group.hbs +++ b/app/assets/javascripts/discourse/templates/group.hbs @@ -1,6 +1,4 @@