X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=admin%2Fpreferences.pl;h=8bcdb0a0dafffd7a7c88bf7771854458be86968c;hb=568f32606c2c9c247b2b477193a2d6814f738fa6;hp=2182591f29cb2293d41b7cf238572d2232b9b1c3;hpb=9c0b2e408b496b999cdbede92e651f3aef588209;p=koha.git diff --git a/admin/preferences.pl b/admin/preferences.pl index 2182591f29..8bcdb0a0da 100755 --- a/admin/preferences.pl +++ b/admin/preferences.pl @@ -21,7 +21,6 @@ use strict; use warnings; use CGI; - use C4::Auth; use C4::Context; use C4::Koha; @@ -34,8 +33,8 @@ use C4::Budgets qw(GetCurrency); use File::Spec; use IO::File; use YAML::Syck qw(); +use List::MoreUtils qw(any); $YAML::Syck::ImplicitTyping = 1; -$YAML::Syck::ImplicitUnicode = 1; # force utf-8 for preference encoding our $lang; # use Smart::Comments; @@ -122,6 +121,13 @@ sub TransformPrefsToHTML { my $tab = $data->{ $title }; $tab = { '' => $tab } if ( ref( $tab ) eq 'ARRAY' ); + my @override_syspref_names; + if ( exists($ENV{OVERRIDE_SYSPREF_NAMES}) && + defined($ENV{OVERRIDE_SYSPREF_NAMES}) + ) { + @override_syspref_names = split /,/, $ENV{OVERRIDE_SYSPREF_NAMES}; + } + foreach my $group ( sort keys %$tab ) { if ( $group ) { push @lines, { is_group_title => 1, title => $group }; @@ -158,6 +164,7 @@ sub TransformPrefsToHTML { $name_entry->{'highlighted'} = 1; } } + $name_entry->{'overridden'} = 1 if ( any { $name eq $_ } @override_syspref_names ); push @names, $name_entry; } else { push @chunks, $piece; @@ -166,7 +173,6 @@ sub TransformPrefsToHTML { push @chunks, { type_text => 1, contents => $piece }; } } - push @lines, { CHUNKS => \@chunks, NAMES => \@names, is_group_title => 0 }; } } @@ -218,12 +224,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; @@ -297,8 +301,7 @@ if ( $op eq 'save' ) { my @TABS; if ( $op eq 'search' ) { - my $searchfield = $input->param('searchfield'); - utf8::decode($searchfield); + my $searchfield = $input->param( 'searchfield' ); $searchfield =~ s/\p{IsC}//g; $searchfield =~ s/\s+/ /;