PERF: Only show members count on group page.
This commit is contained in:
parent
a93c59abbf
commit
bc0a8142fe
|
@ -38,12 +38,9 @@ export default Ember.Controller.extend({
|
|||
};
|
||||
},
|
||||
|
||||
@observes('counts')
|
||||
countsChanged() {
|
||||
const counts = this.get('counts');
|
||||
this.get('tabs').forEach(tab => {
|
||||
tab.set('count', counts.get(tab.get('name')));
|
||||
});
|
||||
@observes('model.user_count')
|
||||
_setMembersTabCount() {
|
||||
this.get('tabs')[0].set('count', this.get('model.user_count'));
|
||||
},
|
||||
|
||||
@observes('showing')
|
||||
|
|
|
@ -166,10 +166,6 @@ Group.reopenClass({
|
|||
});
|
||||
},
|
||||
|
||||
findGroupCounts(name) {
|
||||
return ajax("/groups/" + name + "/counts.json").then(result => Em.Object.create(result.counts));
|
||||
},
|
||||
|
||||
find(name) {
|
||||
return ajax("/groups/" + name + ".json").then(result => Group.create(result.basic_group));
|
||||
},
|
||||
|
|
|
@ -14,12 +14,6 @@ export default Discourse.Route.extend({
|
|||
return { name: model.get('name').toLowerCase() };
|
||||
},
|
||||
|
||||
afterModel(model) {
|
||||
return Group.findGroupCounts(model.get('name')).then(counts => {
|
||||
this.set('counts', counts);
|
||||
});
|
||||
},
|
||||
|
||||
setupController(controller, model) {
|
||||
controller.setProperties({ model, counts: this.get('counts') });
|
||||
}
|
||||
|
|
|
@ -7,23 +7,6 @@ class GroupsController < ApplicationController
|
|||
render_serialized(find_group(:id), GroupShowSerializer, root: 'basic_group')
|
||||
end
|
||||
|
||||
def counts
|
||||
group = find_group(:group_id)
|
||||
|
||||
counts = {
|
||||
posts: group.posts_for(guardian).count,
|
||||
topics: group.posts_for(guardian).where(post_number: 1).count,
|
||||
mentions: group.mentioned_posts_for(guardian).count,
|
||||
members: group.users.count,
|
||||
}
|
||||
|
||||
if guardian.can_see_group_messages?(group)
|
||||
counts[:messages] = group.messages_for(guardian).where(post_number: 1).count
|
||||
end
|
||||
|
||||
render json: { counts: counts }
|
||||
end
|
||||
|
||||
def posts
|
||||
group = find_group(:group_id)
|
||||
posts = group.posts_for(guardian, params[:before_post_id]).limit(20)
|
||||
|
|
|
@ -25,19 +25,6 @@ describe GroupsController do
|
|||
end
|
||||
end
|
||||
|
||||
describe "counts" do
|
||||
it "returns counts if it can be seen" do
|
||||
xhr :get, :counts, group_id: group.name
|
||||
expect(response).to be_success
|
||||
end
|
||||
|
||||
it "returns no counts if it can not be seen" do
|
||||
group.update_columns(visible: false)
|
||||
xhr :get, :counts, group_id: group.name
|
||||
expect(response).not_to be_success
|
||||
end
|
||||
end
|
||||
|
||||
describe "posts" do
|
||||
it "ensures the group can be seen" do
|
||||
Guardian.any_instance.expects(:can_see?).with(group).returns(false)
|
||||
|
|
Loading…
Reference in New Issue