[Rt-commit] rt branch, 4.4/add-groups-users-cf-filter, repushed
Maureen Mirville
maureen at bestpractical.com
Thu Aug 9 13:30:54 EDT 2018
The branch 4.4/add-groups-users-cf-filter was deleted and repushed:
was 5e61b8fbe838aa8e5dcced638478a034c8afe407
now 6cc2793ecf37ebf7c0bbafbc034982ae231df52b
1: 97a1108d5 < -: ------- Add more filtering to Groups search on Admin>Groups>select
-: ------- > 1: 64b2a045c Allow multiple search criteria on Group Admin page
2: af2303e90 ! 2: d85190fc8 Add tests for multiple search criteria on Group Admin page
@@ -1,6 +1,6 @@
Author: Maureen E. Mirville <maureen at bestpractical.com>
- Add tests for filtering Groups search on Admin>Groups>select
+ Add tests for multiple search criteria on Group Admin page
diff --git a/t/web/admin_groups.t b/t/web/admin_groups.t
--- a/t/web/admin_groups.t
@@ -18,9 +18,8 @@
$m->content_contains('test group', 'did not find new name');
}
-+diag "# Test /Admin/Groups/index.html search filtering";
+{
-+ diag "Create group CustomFields";
++ diag "Test group searches";
+ my @cf_names = qw( CF1 CF2 CF3 );
+ my @cfs = ();
+ foreach my $cf_name ( @cf_names ) {
@@ -41,32 +40,25 @@
+ my $cf_2 = $cfs[1];
+ my $cf_3 = $cfs[2];
+
-+ diag "Create groups and add some CustomField values";
+ my @group_names = qw( Group1 Group2 Group3 Group4 );
+ my @groups = ();
+ foreach my $group_name ( @group_names ) {
+ my $group = RT::Group->new( RT->SystemUser );
+ my ( $id, $msg ) = $group->CreateUserDefinedGroup( Name => $group_name );
-+ isnt ( $id, 0, $msg.': '.$group_name );
++ ok ( $id, $msg.': '.$group_name );
+ push ( @groups, $group );
+ }
-+ my $group_1 = $groups[0];
-+ $group_1->AddCustomFieldValue( Field => $cf_1->id, Value => 'one' );
++ $groups[0]->AddCustomFieldValue( Field => $cf_1->id, Value => 'one' );
+
-+ my $group_2 = $groups[1];
-+ $group_2->AddCustomFieldValue( Field => $cf_1->id, Value => 'one' );
-+ $group_2->AddCustomFieldValue( Field => $cf_2->id, Value => 'two' );
++ $groups[1]->AddCustomFieldValue( Field => $cf_1->id, Value => 'one' );
++ $groups[1]->AddCustomFieldValue( Field => $cf_2->id, Value => 'two' );
+
-+ my $group_3 = $groups[2];
-+ $group_3->AddCustomFieldValue( Field => $cf_1->id, Value => 'one' );
-+ $group_3->AddCustomFieldValue( Field => $cf_2->id, Value => 'two' );
-+ $group_3->AddCustomFieldValue( Field => $cf_3->id, Value => 'three' );
++ $groups[2]->AddCustomFieldValue( Field => $cf_1->id, Value => 'one' );
++ $groups[2]->AddCustomFieldValue( Field => $cf_2->id, Value => 'two' );
++ $groups[2]->AddCustomFieldValue( Field => $cf_3->id, Value => 'three' );
+
-+ my $group_4 = $groups[3];
-+
-+ diag "Filter groups search on Admin > Groups > select page";
+ $m->get_ok( $url . '/Admin/Groups/index.html' );
-+ ok( $m->form_name( 'Admin_Groups' ), 'found the filter admin groups form');
++ ok( $m->form_name( 'GroupsAdmin' ), 'found the filter admin groups form');
+ $m->select( GroupField => 'Name', GroupOp => 'LIKE' );
+ $m->field( GroupString => 'Group' );
+ $m->select( GroupField2 => 'CustomField: '.$cf_1->Name, GroupOp2 => 'LIKE' );
@@ -76,10 +68,10 @@
+ $m->click( 'Go' );
+
+ diag "Verify results contain Groups 2 & 3, but not 1 & 4";
-+ $m->content_contains( $group_2->Name );
-+ $m->content_contains( $group_3->Name );
-+ $m->content_lacks( $group_1->Name );
-+ $m->content_lacks( $group_4->Name );
++ $m->content_contains( $groups[1]->Name );
++ $m->content_contains( $groups[2]->Name );
++ $m->content_lacks( $groups[0]->Name );
++ $m->content_lacks( $groups[3]->Name );
+}
+
+
3: de4654541 ! 3: 6823dbc45 Allow multiple search criteria on Users Admin page
@@ -1,6 +1,6 @@
Author: Maureen E. Mirville <maureen at bestpractical.com>
- Add more filtering to Users search on Admin>Users>select
+ Allow multiple search criteria on Users Admin page
diff --git a/share/html/Admin/Users/index.html b/share/html/Admin/Users/index.html
--- a/share/html/Admin/Users/index.html
@@ -10,14 +10,22 @@
</form>
-<form method="post" action="<% RT->Config->Get('WebPath') %>/Admin/Users/index.html">
-+<form method="post" action="<% RT->Config->Get('WebPath') %>/Admin/Users/index.html" name="Admin_Users">
++<form method="post" action="<% RT->Config->Get('WebPath') %>/Admin/Users/index.html" name="UsersAdmin">
% foreach my $field( qw(Format Rows Page Order OrderBy) ) {
% next unless defined $ARGS{ $field } && length $ARGS{ $field };
<input type="hidden" name="<% $field %>" value="<% $ARGS{ $field } %>" />
% }
<&|/l&>Find all users whose</&> <& /Elements/SelectUsers, %ARGS, Fields => \@fields &><br />
-+<&|/l&>And all users whose</&> <& /Elements/SelectUsers2, %ARGS, Fields => \@fields &><br />
-+<&|/l&>And all users whose</&> <& /Elements/SelectUsers3, %ARGS, Fields => \@fields &><br />
++<&|/l&>And all users whose</&> <& /Elements/SelectUsers, %ARGS, Fields => \@fields,
++ SelectFieldName => 'UserField2',
++ SelectOpName => 'UserOp2',
++ InputStringName => 'UserString2',
++&><br />
++<&|/l&>And all users whose</&> <& /Elements/SelectUsers, %ARGS, Fields => \@fields,
++ SelectFieldName => 'UserField3',
++ SelectOpName => 'UserOp3',
++ InputStringName => 'UserString3',
++&><br />
<input type="checkbox" class="checkbox" id="FindDisabledUsers" name="FindDisabledUsers" value="1" <% $FindDisabledUsers? 'checked="checked"': '' %> />
<label for="FindDisabledUsers"><&|/l&>Include disabled users in search.</&></label>
<br />
@@ -52,13 +60,10 @@
- OPERATOR => $UserOp,
- VALUE => $UserString,
- );
-+ my %user1 = ( field => $UserField, op => $UserOp, string => $UserString );
-+ my %user2 = ( field => $UserField2, op => $UserOp2, string => $UserString2 );
-+ my %user3 = ( field => $UserField3, op => $UserOp3, string => $UserString3 );
-+ my @users_queries = ( \%user1 );
-+
-+ push ( @users_queries, \%user2 ) if length $UserString2;
-+ push ( @users_queries, \%user3 ) if length $UserString3;
++ my @users_queries = ();
++ push @users_queries, { field => $UserField, op => $UserOp, string => $UserString };
++ push @users_queries, { field => $UserField2, op => $UserOp2, string => $UserString2 } if length $UserString2;
++ push @users_queries, { field => $UserField3, op => $UserOp3, string => $UserString3 } if length $UserString3;
+
+ foreach my $user ( @users_queries ) {
+ if ( $user->{'field'} =~ /^CustomField-(\d+)/ ) {
@@ -94,6 +99,38 @@
$EmailLike => undef
+diff --git a/share/html/Elements/SelectUsers b/share/html/Elements/SelectUsers
+--- a/share/html/Elements/SelectUsers
++++ b/share/html/Elements/SelectUsers
+@@
+ %# those contributions and any derivatives thereof.
+ %#
+ %# END BPS TAGGED BLOCK }}}
+-<select name="UserField">
++<select name="<% $SelectFieldName %>">
+ % foreach my $col (@fields) {
+ <option <% ($UserField eq $col->[0]) ? 'selected="selected"' : '' |n %> value="<% $col->[0] %>"><% loc($col->[1]) %></option>
+ % }
+@@
+ <option <% ($UserField eq $val) ? 'selected="selected"' : '' |n %> value="<% $val %>"><&|/l&>CustomField</&>: <% $CF->Name %></option>
+ % }
+ </select>
+-<& /Elements/SelectMatch, Name => 'UserOp', Default => $UserOp &>
+-<input size="8" name="UserString" value="<% $UserString %>" />
++<& /Elements/SelectMatch, Name => $SelectOpName, Default => $UserOp &>
++<input size="8" name="<% $InputStringName %>" value="<% $UserString %>" />
+ <%INIT>
+ my $CFs = RT::CustomFields->new($session{'CurrentUser'});
+ $CFs->LimitToChildType('RT::User');
+@@
+ $UserOp => ''
+ $UserString => ''
+ $Fields => undef
++$SelectFieldName => 'UserField'
++$SelectOpName => 'UserOp'
++$InputStringName => 'UserString'
+ </%ARGS>
+
diff --git a/share/html/Elements/SelectUsers2 b/share/html/Elements/SelectUsers2
new file mode 100644
--- /dev/null
4: 5e61b8fbe ! 4: 6cc2793ec Add tests for multiple search criteria on Users Admin page
@@ -1,6 +1,6 @@
Author: Maureen E. Mirville <maureen at bestpractical.com>
- Add tests for filtering Users search on Admin>Users>select
+ Add tests for multiple search criteria on Users Admin page
diff --git a/t/web/admin_user.t b/t/web/admin_user.t
--- a/t/web/admin_user.t
@@ -10,9 +10,8 @@
'C798591AA831DBFB', 'set private key' );
+
-+diag "# Test /Admin/Users/index.html search filtering";
++diag "Test user searches";
+
-+diag "Create user CustomFields";
+my @cf_names = qw( CF1 CF2 CF3 );
+my @cfs = ();
+foreach my $cf_name ( @cf_names ) {
@@ -33,7 +32,6 @@
+my $cf_2 = $cfs[1];
+my $cf_3 = $cfs[2];
+
-+diag "Create users and add some CustomField values";
+my @user_names = qw( user1 user2 user3 user4 );
+my @users = ();
+foreach my $user_name ( @user_names ) {
@@ -44,23 +42,17 @@
+ push ( @users, $user );
+}
+
-+my $user_1 = $users[0];
-+$user_1->AddCustomFieldValue( Field => $cf_1->id, Value => 'one' );
++$users[0]->AddCustomFieldValue( Field => $cf_1->id, Value => 'one' );
+
-+my $user_2 = $users[1];
-+$user_2->AddCustomFieldValue( Field => $cf_1->id, Value => 'one' );
-+$user_2->AddCustomFieldValue( Field => $cf_2->id, Value => 'two' );
++$users[1]->AddCustomFieldValue( Field => $cf_1->id, Value => 'one' );
++$users[1]->AddCustomFieldValue( Field => $cf_2->id, Value => 'two' );
+
-+my $user_3 = $users[2];
-+$user_3->AddCustomFieldValue( Field => $cf_1->id, Value => 'one' );
-+$user_3->AddCustomFieldValue( Field => $cf_2->id, Value => 'two' );
-+$user_3->AddCustomFieldValue( Field => $cf_3->id, Value => 'three' );
++$users[2]->AddCustomFieldValue( Field => $cf_1->id, Value => 'one' );
++$users[2]->AddCustomFieldValue( Field => $cf_2->id, Value => 'two' );
++$users[2]->AddCustomFieldValue( Field => $cf_3->id, Value => 'three' );
+
-+my $user_4 = $users[3];
-+
-+diag "Filter users search on Admin > Users > select page";
+$m->get_ok( $url . '/Admin/Users/index.html' );
-+ok( $m->form_name( 'Admin_Users' ), 'found the filter admin users form');
++ok( $m->form_name( 'UsersAdmin' ), 'found the filter admin users form');
+$m->select( UserField => 'Name', UserOp => 'LIKE' );
+$m->field( UserString => 'user' );
+$m->select( UserField2 => 'CustomField: '.$cf_1->Name, UserOp2 => 'LIKE' );
@@ -70,10 +62,10 @@
+$m->click( 'Go' );
+
+diag "Verify results contain users 2 & 3, but not 1 & 4";
-+$m->content_contains( $user_2->Name );
-+$m->content_contains( $user_3->Name );
-+$m->content_lacks( $user_1->Name );
-+$m->content_lacks( $user_4->Name );
++$m->content_contains( $users[1]->Name );
++$m->content_contains( $users[2]->Name );
++$m->content_lacks( $users[0]->Name );
++$m->content_lacks( $users[3]->Name );
+
# TODO more /Admin/Users tests
More information about the rt-commit
mailing list