View | Details | Raw Unified | Return to bug 34338
Collapse All | Expand All

(-)a/Koha/Policy/Patrons/Cardnumber.pm (+3 lines)
Lines 54-59 sub is_valid { Link Here
54
    return Koha::Result::Boolean->new(1)
54
    return Koha::Result::Boolean->new(1)
55
        unless defined $cardnumber;
55
        unless defined $cardnumber;
56
56
57
    return Koha::Result::Boolean->new(0)->add_message( { message => "not_trimmed" } )
58
        if $cardnumber =~ m[^\s|\s$];
59
57
    return Koha::Result::Boolean->new(0)->add_message( { message => "already_exists" } )
60
    return Koha::Result::Boolean->new(0)->add_message( { message => "already_exists" } )
58
        if Koha::Patrons->search(
61
        if Koha::Patrons->search(
59
        {
62
        {
(-)a/installer/onboarding.pl (+3 lines)
Lines 148-153 if ( $step == 3 ) { Link Here
148
                if ( $message eq 'already_exists' ) {
148
                if ( $message eq 'already_exists' ) {
149
                    push @messages, { code => 'ERROR_cardnumber_already_exists' };
149
                    push @messages, { code => 'ERROR_cardnumber_already_exists' };
150
                }
150
                }
151
                elsif ( $message eq 'not_trimmed' ) {
152
                    push @messages, { code => 'ERROR_cardnumber_not_trimmed' };
153
                }
151
                elsif ( $message eq 'invalid_length' ) {
154
                elsif ( $message eq 'invalid_length' ) {
152
                    push @messages, { code => 'ERROR_cardnumber_length' };
155
                    push @messages, { code => 'ERROR_cardnumber_length' };
153
                }
156
                }
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/onboarding_messages.inc (+2 lines)
Lines 14-19 Link Here
14
            <div class="alert alert-danger">The patron has not been created! Cardnumber or Userid may already exist.</div>
14
            <div class="alert alert-danger">The patron has not been created! Cardnumber or Userid may already exist.</div>
15
        [% CASE 'ERROR_cardnumber_already_exists' %]
15
        [% CASE 'ERROR_cardnumber_already_exists' %]
16
            <div class="alert alert-danger">Card number already in use.</div>
16
            <div class="alert alert-danger">Card number already in use.</div>
17
        [% CASE 'ERROR_cardnumber_not_trimmed' %]
18
            <div class="alert alert-danger">Card number contains leading or trailing whitespaces.</div>
17
        [% CASE 'ERROR_cardnumber_length' %]
19
        [% CASE 'ERROR_cardnumber_length' %]
18
            <div class="alert alert-danger">Card number length is incorrect.</div>
20
            <div class="alert alert-danger">Card number length is incorrect.</div>
19
        [% CASE 'ERROR_password_mismatch' %]
21
        [% CASE 'ERROR_password_mismatch' %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt (-2 / +5 lines)
Lines 133-142 legend:hover { Link Here
133
                                        <li id="ERROR_login_exist">Username already exists or could not create unique new one.</li>
133
                                        <li id="ERROR_login_exist">Username already exists or could not create unique new one.</li>
134
                                    [% END %]
134
                                    [% END %]
135
                                    [% IF ERROR_cardnumber_already_exists %]
135
                                    [% IF ERROR_cardnumber_already_exists %]
136
                                        <li id="ERROR_cardnumber">Cardnumber already in use.</li>
136
                                        <li id="ERROR_cardnumber">Card number already in use.</li>
137
                                    [% END %]
138
                                    [% IF ERROR_cardnumber_not_trimmed %]
139
                                        <li id="ERROR_cardnumber">Card number contains leading or trailing whitespaces.</li>
137
                                    [% END %]
140
                                    [% END %]
138
                                    [% IF ERROR_cardnumber_length %]
141
                                    [% IF ERROR_cardnumber_length %]
139
                                        <li id="ERROR_cardnumber">Cardnumber length is incorrect.</li>
142
                                        <li id="ERROR_cardnumber">Card number length is incorrect.</li>
140
                                    [% END %]
143
                                    [% END %]
141
                                    [% IF ( ERROR_age_limitations ) %]
144
                                    [% IF ( ERROR_age_limitations ) %]
142
                                    <li id="ERROR_age_limitations">Patron's age is incorrect for their category.
145
                                    <li id="ERROR_age_limitations">Patron's age is incorrect for their category.
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt (-2 / +4 lines)
Lines 124-135 Link Here
124
                    </div>
124
                    </div>
125
                [% END %]
125
                [% END %]
126
126
127
                [% IF cardnumber_wrong_length || cardnumber_already_exists %]
127
                [% IF cardnumber_wrong_length || cardnumber_already_exists || cardnumber_not_trimmed %]
128
                    <div class="alert alert-error">
128
                    <div class="alert alert-error">
129
                        [% IF cardnumber_wrong_length %]
129
                        [% IF cardnumber_wrong_length %]
130
                        <a href="#borrower_cardnumber"><strong>The entered card number is the wrong length.</strong></a>
130
                        <a href="#borrower_cardnumber"><strong>The entered card number is the wrong length.</strong></a>
131
                        [% ELSIF cardnumber_already_exists %]
131
                        [% ELSIF cardnumber_already_exists %]
132
                        <a href="#borrower_cardnumber"><strong>The entered card number is already in use.</strong></a>
132
                        <a href="#borrower_cardnumber"><strong>The entered card number is already in use.</strong></a>
133
                        [% ELSIF cardnumber_not_trimmed %]
134
                        <a href="#borrower_cardnumber"><strong>The entered card number contains leading or trailing whitespaces.</strong></a>
133
                        [% END %]
135
                        [% END %]
134
                        <span>Please correct and resubmit.</span>
136
                        <span>Please correct and resubmit.</span>
135
                    </div>
137
                    </div>
Lines 233-239 Link Here
233
235
234
                                                <label for="borrower_cardnumber" class="[% required.cardnumber | html %]">Library card number:</label>
236
                                                <label for="borrower_cardnumber" class="[% required.cardnumber | html %]">Library card number:</label>
235
237
236
                                                [% IF borrower && !(cardnumber_wrong_length || cardnumber_already_exists) && action == 'edit' %]
238
                                                [% IF borrower && !(cardnumber_wrong_length || cardnumber_already_exists || cardnumber_not_trimmed) && action == 'edit' %]
237
                                                    [% borrower.cardnumber | html %]
239
                                                    [% borrower.cardnumber | html %]
238
                                                [% ELSE %]
240
                                                [% ELSE %]
239
                                                    [% IF minlength_cardnumber == maxlength_cardnumber %]
241
                                                    [% IF minlength_cardnumber == maxlength_cardnumber %]
(-)a/members/memberentry.pl (+2 lines)
Lines 299-304 if ($op eq 'save' || $op eq 'insert'){ Link Here
299
            my $message = $m->message;
299
            my $message = $m->message;
300
            if ( $message eq 'already_exists' ) {
300
            if ( $message eq 'already_exists' ) {
301
                $template->param( ERROR_cardnumber_already_exists => 1 );
301
                $template->param( ERROR_cardnumber_already_exists => 1 );
302
            } elsif ( $message eq 'not_trimmed' ) {
303
                $template->param( ERROR_cardnumber_not_trimmed => 1 );
302
            } elsif ( $message eq 'invalid_length' ) {
304
            } elsif ( $message eq 'invalid_length' ) {
303
                $template->param( ERROR_cardnumber_length => 1 );
305
                $template->param( ERROR_cardnumber_length => 1 );
304
            }
306
            }
(-)a/opac/opac-memberentry.pl (+2 lines)
Lines 144-149 if ( $action eq 'create' ) { Link Here
144
                my $message = $m->message;
144
                my $message = $m->message;
145
                if ( $message eq 'already_exists' ) {
145
                if ( $message eq 'already_exists' ) {
146
                    $template->param( cardnumber_already_exists => 1 );
146
                    $template->param( cardnumber_already_exists => 1 );
147
                } elsif ( $message eq 'not_trimmed' ) {
148
                    $template->param( cardnumber_not_trimmed => 1 );
147
                } elsif ( $message eq 'invalid_length' ) {
149
                } elsif ( $message eq 'invalid_length' ) {
148
                    $template->param( cardnumber_wrong_length => 1 );
150
                    $template->param( cardnumber_wrong_length => 1 );
149
                }
151
                }
(-)a/t/db_dependent/Koha/Policy/Patrons/Cardnumber.t (-2 / +7 lines)
Lines 31-37 my $builder = t::lib::TestBuilder->new; Link Here
31
31
32
subtest 'is_valid' => sub {
32
subtest 'is_valid' => sub {
33
33
34
    plan tests => 23;
34
    plan tests => 25;
35
35
36
    $schema->storage->txn_begin;
36
    $schema->storage->txn_begin;
37
37
Lines 61-66 subtest 'is_valid' => sub { Link Here
61
    $is_valid = $policy->is_valid( "123" );
61
    $is_valid = $policy->is_valid( "123" );
62
    ok( !$is_valid, "Invalid cardnumber length");
62
    ok( !$is_valid, "Invalid cardnumber length");
63
63
64
    $is_valid = $policy->is_valid( " 123" );
65
    ok( !$is_valid, "Invalid cardnumber length");
66
64
    my $pref = "10";
67
    my $pref = "10";
65
    t::lib::Mocks::mock_preference('CardnumberLength', $pref);
68
    t::lib::Mocks::mock_preference('CardnumberLength', $pref);
66
    ok( !$policy->is_valid( q{123456789} ), "123456789 is shorter than $pref");
69
    ok( !$policy->is_valid( q{123456789} ), "123456789 is shorter than $pref");
Lines 95-100 subtest 'is_valid' => sub { Link Here
95
    ok( $policy->is_valid(undef), "If cardnumber is null, we assume they're allowed") ;
98
    ok( $policy->is_valid(undef), "If cardnumber is null, we assume they're allowed") ;
96
    ok( !$policy->is_valid(""), "Empty string is not correct" );
99
    ok( !$policy->is_valid(""), "Empty string is not correct" );
97
100
101
    $is_valid = $policy->is_valid( "        " );
102
    ok( !$is_valid, "Spaces are not allowed");
103
98
    $schema->storage->txn_rollback;
104
    $schema->storage->txn_rollback;
99
};
105
};
100
106
101
- 

Return to bug 34338