Bug 14145: Noisy warns in admin/preferences.pl

The problem with the odd number of hashes happens when not everything is selected.
The grep returns undef, because it isn't found in @values.
By turning the grep into a ternary-operator truth value, we can set a value (1 or 0) expressly.

The next problem is when nothing is selected in these multiple lists, $value is
undefined, so you can't split it. By splitting the definition of @values from
the actual splitting, we can split only if $value is defined, thus eliminating the
warning message.

TEST PLAN
---------
1) back up your koha error log file
2) blank your koha error log file
3) log in to the staff client
4) Home -> Koha administration -> Global system preferences
5) Click on every tab, EXCEPT local use.
6) notice the koha error log file has warnings.
7) blank the koha error log file again
8) apply this patch
9) Click on every tab, EXCEPT local use, again.
10) notice the koha error log file has no warnings.
11) koha qa test tools.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
I like more this version
Works as described
No koha-qa errors

Signed-off-by: Jonathan Druart <jonathan.druart@koha-community.org>
To reproduce: go on the OPAC tab, OpacAdvSearchMoreOptions  or
OpacAdvSearchOptions should not have all options selected.
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
This commit is contained in:
Mark Tompsett 2015-05-09 01:31:37 -04:00 committed by Tomas Cohen Arazi
parent b9a063f171
commit 7ad39b6fc9
1 changed files with 3 additions and 2 deletions

View File

@ -106,7 +106,8 @@ sub _get_chunk {
keys %{ $options{'choices'} }
];
} elsif ( $options{'multiple'} ) {
my @values = split /,/, $value;
my @values;
@values = split /,/, $value if defined($value);
$chunk->{type} = 'multiple';
$chunk->{CHOICES} = [
sort { $a->{'text'} cmp $b->{'text'} }
@ -115,7 +116,7 @@ sub _get_chunk {
{
text => $options{multiple}->{$option_value},
value => $option_value,
selected => grep /^$option_value$/, @values,
selected => (grep /^$option_value$/, @values) ? 1 : 0,
}
}
keys %{ $options{multiple} }