FIX: Infinite loading broken on group members list (#23214)
This regressed in 5a99243629
where
the condition to load more members into the list on the client side was
inverted.
This commit is contained in:
parent
7c12f7d50a
commit
8d72a51ae1
|
@ -23,7 +23,7 @@ export default Controller.extend({
|
||||||
bulkSelection: null,
|
bulkSelection: null,
|
||||||
|
|
||||||
get canLoadMore() {
|
get canLoadMore() {
|
||||||
return this.get("model.members")?.length >= this.get("model.user_count");
|
return this.get("model.members")?.length < this.get("model.user_count");
|
||||||
},
|
},
|
||||||
|
|
||||||
@observes("filterInput")
|
@observes("filterInput")
|
||||||
|
|
|
@ -230,14 +230,15 @@ class GroupsController < ApplicationController
|
||||||
render "posts/latest", formats: [:rss]
|
render "posts/latest", formats: [:rss]
|
||||||
end
|
end
|
||||||
|
|
||||||
MEMBERS_LIMIT = 1_000
|
MEMBERS_MAX_PAGE_SIZE = 1_000
|
||||||
|
MEMBERS_DEFAULT_PAGE_SIZE = 50
|
||||||
|
|
||||||
def members
|
def members
|
||||||
group = find_group(:group_id)
|
group = find_group(:group_id)
|
||||||
|
|
||||||
guardian.ensure_can_see_group_members!(group)
|
guardian.ensure_can_see_group_members!(group)
|
||||||
|
|
||||||
limit = fetch_limit_from_params(default: 50, max: MEMBERS_LIMIT)
|
limit = fetch_limit_from_params(default: MEMBERS_DEFAULT_PAGE_SIZE, max: MEMBERS_MAX_PAGE_SIZE)
|
||||||
offset = params[:offset].to_i
|
offset = params[:offset].to_i
|
||||||
|
|
||||||
raise Discourse::InvalidParameters.new(:offset) if offset < 0
|
raise Discourse::InvalidParameters.new(:offset) if offset < 0
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
RSpec.describe "Viewing group members", type: :system do
|
||||||
|
fab!(:group) { Fabricate(:group) }
|
||||||
|
fab!(:user_in_group_1) { Fabricate(:user).tap { |u| group.add(u) } }
|
||||||
|
fab!(:user_in_group_2) { Fabricate(:user).tap { |u| group.add(u) } }
|
||||||
|
fab!(:user_in_group_3) { Fabricate(:user).tap { |u| group.add(u) } }
|
||||||
|
|
||||||
|
it "loads more group members when a user scrolls to the bottom of the list" do
|
||||||
|
stub_const(GroupsController, "MEMBERS_DEFAULT_PAGE_SIZE", 2) do
|
||||||
|
visit("/g/#{group.name}/members")
|
||||||
|
|
||||||
|
expect(page).to have_selector(".group-member", count: 3)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue