[Rt-commit] rt branch, 4.4/admin-group-members-paging, created. rt-4.4.4-246-gc920e0782c

? sunnavy sunnavy at bestpractical.com
Mon Feb 8 17:16:29 EST 2021


The branch, 4.4/admin-group-members-paging has been created
        at  c920e0782c61c0efc42f8ce6d05731cbc1c4f2b4 (commit)

- Log -----------------------------------------------------------------
commit b5e7be5bfd1b9a450a7e2791fccad5ccddedf643
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Fri Feb 5 05:12:07 2021 +0800

    Sort group members by name on group Members page
    
    This is for consistency, as user members are sorted by name.

diff --git a/share/html/Admin/Groups/Members.html b/share/html/Admin/Groups/Members.html
index 0696c64c0f..a32b5e6fb0 100644
--- a/share/html/Admin/Groups/Members.html
+++ b/share/html/Admin/Groups/Members.html
@@ -87,12 +87,12 @@ my @users = map {$_->[1]}
 </ul>
 <&|/l&>Groups</&>
 <ul>
-% my $GroupMembers = $Group->MembersObj;
-% $GroupMembers->LimitToGroups();
-% while ( my $member = $GroupMembers->Next ) {
-% $GroupsSeen{ $member->MemberId } = 1 if $SkipSeenGroups;
-<li><input type="checkbox" class="checkbox" name="DeleteMember-<% $member->MemberId %>" value="1" />
-<a href="<% RT->Config->Get('WebPath') %>/Admin/Groups/Modify.html?id=<% $member->MemberObj->Object->id %>"><% $member->MemberObj->Object->Name %></a>
+% my $Groups = $Group->GroupMembersObj( Recursively => 0 );
+% my @groups = sort { lc( $a->Name ) cmp lc( $b->Name ) } @{ $Groups->ItemsArrayRef };
+% for my $group ( @groups ) {
+% $GroupsSeen{ $group->id } = 1 if $SkipSeenGroups;
+<li><input type="checkbox" class="checkbox" name="DeleteMember-<% $group->id %>" value="1" />
+<a href="<% RT->Config->Get('WebPath') %>/Admin/Groups/Modify.html?id=<% $group->id %>"><% $group->Name %></a>
 % }
 </ul>
 % }

commit c920e0782c61c0efc42f8ce6d05731cbc1c4f2b4
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Fri Feb 5 05:48:56 2021 +0800

    Add paging support for group Members page

diff --git a/share/html/Admin/Groups/Members.html b/share/html/Admin/Groups/Members.html
index a32b5e6fb0..094889fc67 100644
--- a/share/html/Admin/Groups/Members.html
+++ b/share/html/Admin/Groups/Members.html
@@ -51,6 +51,8 @@
 
 <form action="<% RT->Config->Get('WebPath') %>/Admin/Groups/Members.html" method="post">
 <input type="hidden" class="hidden" name="id" value="<%$Group->Id%>" />
+<input type="hidden" class="hidden" name="Rows" value="<% $Rows %>" />
+<input type="hidden" class="hidden" name="Page" value="<% $Page %>" />
 
 <&| /Widgets/TitleBox, title => loc('Editing membership for group [_1]', $Group->Label) &>
 
@@ -72,6 +74,8 @@
 % } else {
 <&|/l&>Users</&>
 % my $Users = $Group->UserMembersObj( Recursively => 0 );
+% $Users->RowsPerPage($Rows);
+% $Users->GotoPage($Page - 1);
 <%perl>
 my @users = map {$_->[1]}
             sort { lc($a->[0]) cmp lc($b->[0]) }
@@ -88,6 +92,8 @@ my @users = map {$_->[1]}
 <&|/l&>Groups</&>
 <ul>
 % my $Groups = $Group->GroupMembersObj( Recursively => 0 );
+% $Groups->RowsPerPage($Rows);
+% $Groups->GotoPage($Page - 1);
 % my @groups = sort { lc( $a->Name ) cmp lc( $b->Name ) } @{ $Groups->ItemsArrayRef };
 % for my $group ( @groups ) {
 % $GroupsSeen{ $group->id } = 1 if $SkipSeenGroups;
@@ -103,6 +109,18 @@ my @users = map {$_->[1]}
 </td>
 </tr>
 </table>
+
+% if ( $Pages ) {
+    <& /Elements/CollectionListPaging,
+        BaseURL     => '?',
+        Rows        => $Rows,
+        TotalFound  => $TotalFound,
+        CurrentPage => $Page,
+        Pages       => $Pages,
+        URLParams   => { map { $_ => $ARGS{$_} } qw/id Rows Page/ },
+    &>
+% }
+
 </&>
 <em><&|/l&>(Check box to delete)</&></em>
 <& /Elements/Submit, Label => loc('Modify Members'), Reset => 1 &>
@@ -184,6 +202,23 @@ foreach my $member (grep $_, @AddMembersGroups) {
     my ($val, $msg) = $Group->AddMember($principal->PrincipalId);
     push (@results, $msg);
 }
+
+$Rows ||= 50;
+$Page ||= 1;
+my $TotalFound = $Group->UserMembersObj( Recursively => 0 )->Count;
+if ( my $group_count = $Group->GroupMembersObj( Recursively => 0 )->Count ) {
+    $TotalFound = $group_count if $TotalFound < $group_count;
+}
+
+my $Pages;
+if ( $TotalFound && $TotalFound > $Rows ) {
+    $Pages = int( $TotalFound / $Rows ) + ( $TotalFound % $Rows ? 1 : 0 );
+    # This could happen if admin deletes records on the last page.
+    $Page = $Pages if $Page > $Pages;
+}
+else {
+    $Page = 1;
+}
 </%INIT>
 
 <%ARGS>
@@ -192,4 +227,6 @@ foreach my $member (grep $_, @AddMembersGroups) {
 $id => undef
 $SkipSeenUsers => 1
 $SkipSeenGroups => 1
+$Rows => RT->Config->Get('AdminSearchResultRows')->{Users}
+$Page => 1
 </%ARGS>

-----------------------------------------------------------------------


More information about the rt-commit mailing list