[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