From 0988c34a39d0475bbfa794c1432350b2896500bd Mon Sep 17 00:00:00 2001 From: GregoireW <24318548+GregoireW@users.noreply.github.com> Date: Thu, 25 Mar 2021 17:01:19 +0100 Subject: [PATCH 1/6] Limit to display first 50 user on groups Signed-off-by: GregoireW <24318548+GregoireW@users.noreply.github.com> --- .../components/Cards/Group/MembersList/MembersListCard.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx index d68328ef1a..a5aa073b3d 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx @@ -147,7 +147,9 @@ export const MembersListCard = (_props: { return ( 50 ? ' (only first 50 displayed)' : '' + }`} subheader={`of ${displayName}`} > From f59a945b7b034ae2526474011797b314ee06fd0e Mon Sep 17 00:00:00 2001 From: GregoireW <24318548+GregoireW@users.noreply.github.com> Date: Thu, 25 Mar 2021 18:50:43 +0100 Subject: [PATCH 2/6] Changeset Signed-off-by: GregoireW <24318548+GregoireW@users.noreply.github.com> --- .changeset/shaggy-drinks-hammer.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/shaggy-drinks-hammer.md diff --git a/.changeset/shaggy-drinks-hammer.md b/.changeset/shaggy-drinks-hammer.md new file mode 100644 index 0000000000..f068ce4267 --- /dev/null +++ b/.changeset/shaggy-drinks-hammer.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-org': patch +--- + +Display only first 50 group members From 18c0ec2a42bc01b403a4ebaa6097574d52225203 Mon Sep 17 00:00:00 2001 From: GregoireW <24318548+GregoireW@users.noreply.github.com> Date: Thu, 6 May 2021 17:19:41 +0200 Subject: [PATCH 3/6] Limit to display first 50 user on groups Signed-off-by: GregoireW <24318548+GregoireW@users.noreply.github.com> --- .../Cards/Group/MembersList/MembersListCard.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx index a5aa073b3d..89e9f14c4c 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx @@ -154,9 +154,11 @@ export const MembersListCard = (_props: { > {members && members.length > 0 ? ( - members.map(member => ( - - )) + members + .slice(0, 49) + .map(member => ( + + )) ) : ( This group has no members. From bc2cab231f43fd4e8d6cba2d56652dfb67da7914 Mon Sep 17 00:00:00 2001 From: GregoireW <24318548+GregoireW@users.noreply.github.com> Date: Thu, 6 May 2021 20:39:34 +0200 Subject: [PATCH 4/6] Limit to display first 50 user on groups Signed-off-by: GregoireW <24318548+GregoireW@users.noreply.github.com> --- .../Group/MembersList/MembersListCard.tsx | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx index 89e9f14c4c..e3ab4e5193 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx @@ -40,6 +40,7 @@ import { Theme, Typography, } from '@material-ui/core'; +import Pagination from '@material-ui/lab/Pagination'; import React from 'react'; import { generatePath, Link as RouterLink } from 'react-router-dom'; import { useAsync } from 'react-use'; @@ -120,6 +121,12 @@ export const MembersListCard = (_props: { const groupNamespace = grpNamespace || ENTITY_DEFAULT_NAMESPACE; + const [page, setPage] = React.useState(1); + const pageChange = (_: React.ChangeEvent, pageIndex: number) => { + setPage(pageIndex); + }; + const pageSize = 50; + const { loading, error, value: members } = useAsync(async () => { const membersList = await catalogApi.getEntities({ filter: { kind: 'User' }, @@ -148,14 +155,18 @@ export const MembersListCard = (_props: { 50 ? ' (only first 50 displayed)' : '' + members && members.length > pageSize + ? ` (page ${page} of ${Math.ceil( + (members?.length || 0) / pageSize, + )})` + : '' }`} subheader={`of ${displayName}`} > {members && members.length > 0 ? ( members - .slice(0, 49) + .slice(pageSize * (page - 1), pageSize * page) .map(member => ( )) @@ -165,6 +176,13 @@ export const MembersListCard = (_props: { )} + ); From 6b1cf60c5952fc15def88517021adc94db9549c1 Mon Sep 17 00:00:00 2001 From: GregoireW <24318548+GregoireW@users.noreply.github.com> Date: Fri, 7 May 2021 19:23:09 +0200 Subject: [PATCH 5/6] Pagination label is now cleaner Signed-off-by: GregoireW <24318548+GregoireW@users.noreply.github.com> --- .changeset/shaggy-drinks-hammer.md | 2 +- .../Cards/Group/MembersList/MembersListCard.tsx | 13 +++++-------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.changeset/shaggy-drinks-hammer.md b/.changeset/shaggy-drinks-hammer.md index f068ce4267..67f284ea3f 100644 --- a/.changeset/shaggy-drinks-hammer.md +++ b/.changeset/shaggy-drinks-hammer.md @@ -2,4 +2,4 @@ '@backstage/plugin-org': patch --- -Display only first 50 group members +Paginate group members to only display 50 members maximum. diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx index e3ab4e5193..dbe35c3057 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx @@ -151,16 +151,13 @@ export const MembersListCard = (_props: { return ; } + const nbPages = Math.ceil((members?.length || 0) / pageSize); + const paginationLabel = nbPages < 2 ? '' : `, page ${page} of ${nbPages}`; + return ( pageSize - ? ` (page ${page} of ${Math.ceil( - (members?.length || 0) / pageSize, - )})` - : '' - }`} + title={`Members (${members?.length || 0}${paginationLabel})`} subheader={`of ${displayName}`} > @@ -177,7 +174,7 @@ export const MembersListCard = (_props: { )} Date: Mon, 10 May 2021 14:01:48 +0200 Subject: [PATCH 6/6] Pagination is set on the 'action' bar Signed-off-by: GregoireW <24318548+GregoireW@users.noreply.github.com> --- .../Group/MembersList/MembersListCard.tsx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx index dbe35c3057..58dcefaaa4 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx @@ -154,11 +154,22 @@ export const MembersListCard = (_props: { const nbPages = Math.ceil((members?.length || 0) / pageSize); const paginationLabel = nbPages < 2 ? '' : `, page ${page} of ${nbPages}`; + const pagination = ( + + ); + return ( {members && members.length > 0 ? ( @@ -173,13 +184,6 @@ export const MembersListCard = (_props: { )} - );