Add pagination to members Pending promotion tab
What does this MR do and why?
This is a third step in #433174 (closed), it adds pagination to the Promotions tab component.
Here's the MR plan
| this MR | MR plan | status |
|---|---|---|
| Custom Component for the tab | workflowcomplete | |
| Custom store or Apollo store | workflowin review | |
| Pagination | workflowin dev | |
| Add the table with a proper UI | (TBC) | |
| Remove the export button | (TBC) | |
| Post refactoring (defined below) | (TBC) |
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Screenshots or screen recordings
| Before | After |
|---|---|
| N/A | ![]() |
How to set up and validate locally
Set up steps are similar to other MRs in this issue.
- Have an Ultimate License, and simulate Ultimate Self Managed setup (
export GITLAB_SIMULATE_SAAS=0) - Enable Setting
setting = ApplicationSetting.first; setting.enable_member_promotion_management=true; setting.save! - Enable FF
Feature.enable(:member_promotion_management) - Create promotion requests:
- Visit any Group as an owner of that group (e.g.
http://127.0.0.1:3000/groups/gitlab-org/-/group_members) - try promoting a non-billable GUEST member to a DEVELOPER role (this member should be non-billable on the whole instance, i.e. have a highest role as guest, see !149094 (comment 1869616221) for details)
- you should see a banner saying "Role change request was sent to the administrator." — this means a promotion request has been created
- create several requests to test pagination
- Visit any Group as an owner of that group (e.g.
- Open Group or Project members page
- You probably won't see pagination yet, as currently the page limit 50 entries, there's a patch below to reduce that limit
patch
diff --git a/app/controllers/groups/group_members_controller.rb b/app/controllers/groups/group_members_controller.rb
index 94f4dfd90b4d..cff0e723af5a 100644
--- a/app/controllers/groups/group_members_controller.rb
+++ b/app/controllers/groups/group_members_controller.rb
@@ -6,7 +6,7 @@ class Groups::GroupMembersController < Groups::ApplicationController
include SortingHelper
include Gitlab::Utils::StrongMemoize
- MEMBER_PER_PAGE_LIMIT = 50
+ MEMBER_PER_PAGE_LIMIT = 1
def self.admin_not_required_endpoints
%i[index leave request_access]
diff --git a/ee/app/controllers/ee/groups/group_members_controller.rb b/ee/app/controllers/ee/groups/group_members_controller.rb
index b6783688e771..9c95057bc0f3 100644
--- a/ee/app/controllers/ee/groups/group_members_controller.rb
+++ b/ee/app/controllers/ee/groups/group_members_controller.rb
@@ -6,7 +6,7 @@ module GroupMembersController
extend ActiveSupport::Concern
extend ::Gitlab::Utils::Override
- MEMBER_PER_PAGE_LIMIT = 50
+ MEMBER_PER_PAGE_LIMIT = 1
class_methods do
extend ::Gitlab::Utils::Override
- With lowered limit — you should see pagination, and it should work as regular pagination.
Edited by Kos Palchyk
