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

(-)a/Koha/SearchEngine/Elasticsearch/Search.pm (-3 / +14 lines)
Lines 54-59 use MARC::File::XML; Link Here
54
use MIME::Base64 qw( decode_base64 );
54
use MIME::Base64 qw( decode_base64 );
55
use JSON;
55
use JSON;
56
56
57
use POSIX qw(setlocale LC_COLLATE);
58
use Unicode::Collate::Locale;
59
57
Koha::SearchEngine::Elasticsearch::Search->mk_accessors(qw( store ));
60
Koha::SearchEngine::Elasticsearch::Search->mk_accessors(qw( store ));
58
61
59
=head2 search
62
=head2 search
Lines 502-509 sub _convert_facets { Link Here
502
            };
505
            };
503
        }
506
        }
504
        if( C4::Context->preference('FacetOrder') eq 'Alphabetical' ){
507
        if( C4::Context->preference('FacetOrder') eq 'Alphabetical' ){
505
            @{ $facet->{facets} } =
508
            #Fetch locale as understood by Perl
506
                sort { $a->{facet_label_value} cmp $b->{facet_label_value} } @{ $facet->{facets} };
509
            #NOTE: Technically, we can define locale however we like, but this
510
            #is a good default
511
            my $locale = setlocale(LC_COLLATE);
512
513
            #Create locale-based collator
514
            my $collator = Unicode::Collate::Locale->new( locale => $locale );
515
            if ($collator) {
516
                @{ $facet->{facets} } =
517
                    sort { $collator->cmp( $a->{facet_label_value}, $b->{facet_label_value} ) } @{ $facet->{facets} };
518
            }
507
        }
519
        }
508
        push @facets, $facet if exists $facet->{facets};
520
        push @facets, $facet if exists $facet->{facets};
509
    }
521
    }
510
- 

Return to bug 36947