Bug 8887: only display desired result when doing exact syspref search
This patch fixes an issue where entering the complete name of a system preference when doing a syspref search in the staff interface resulted in the display of *all* preferences belonging to the desired one's module. Since providing a more specific search string should result in getting back more specific results, the previous behavior was not intuitive. Test scenario: a) In sysprefs, do a search with partial match (e.g. intranetcolor) -> Result shows one entry: intranetcolorstylesheet b) Do an exact search. e.g. intranetcolorstylesheet -> Result shows all Staff Client preferences Apply patch, test again. Now b) behaves like a). Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net> Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Passes koha-qa.pl, works as advertised. Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
parent
dbe233a0e5
commit
9bc53a0fcc
|
|
@ -216,12 +216,10 @@ sub SearchPrefs {
|
|||
|
||||
foreach my $piece ( @$line ) {
|
||||
if ( ref( $piece ) eq 'HASH' ) {
|
||||
if ( !$piece->{'pref'} ){ next; }
|
||||
if ( $piece->{'pref'} =~ /^$searchfield$/i ) {
|
||||
my ( undef, $LINES ) = TransformPrefsToHTML( $data, $searchfield );
|
||||
|
||||
return { search_jumped => 1, tab => $tab_name, tab_title => $title, LINES => $LINES };
|
||||
} elsif ( matches( $piece->{'pref'}, \@terms) ) {
|
||||
if ( !$piece->{'pref'} ){
|
||||
next;
|
||||
}
|
||||
if ( matches( $piece->{'pref'}, \@terms) ) {
|
||||
$matched = 1;
|
||||
} elsif ( ref( $piece->{'choices'} ) eq 'HASH' && grep( { $_ && matches( $_, \@terms ) } values( %{ $piece->{'choices'} } ) ) ) {
|
||||
$matched = 1;
|
||||
|
|
|
|||
Loading…
Reference in New Issue