From a792e847199b26368fa34ada8b76bc3dfbee7f9a Mon Sep 17 00:00:00 2001 From: Robin Sheat Date: Tue, 13 Oct 2015 17:21:36 +1300 Subject: [PATCH] Revert "Bug 12478: Display facet terms ordered by number of occurrences" This reverts commit cd4905c2969b067476881016d0b03271f0bcc7c8. This commit caused an error in C4::Search::GetFacets when running in zebra mode. Conflicts: Koha/SearchEngine/Elasticsearch/Search.pm Signed-off-by: Nick Clemens Signed-off-by: Jesse Weaver Signed-off-by: Tomas Cohen Arazi Signed-off-by: Kyle M Hall Signed-off-by: Brendan Gallagher --- C4/Search.pm | 8 -------- Koha/SearchEngine/Elasticsearch/Search.pm | 24 ++++++++++------------- catalogue/search.pl | 6 ++++++ opac/opac-search.pl | 8 ++++++++ 4 files changed, 24 insertions(+), 22 deletions(-) diff --git a/C4/Search.pm b/C4/Search.pm index 7dd7c2c6fa..1e5142786c 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -641,14 +641,6 @@ sub GetFacets { $facets = _get_facets_from_records( $rs ); } - # This sorts the facets into alphabetical order - if ($facets && @$facets) { - foreach my $f (@$facets) { - $f->{facets} = [ sort { uc($a->{facet_label_value}) cmp uc($b->{facet_label_value}) } @{ $f->{facets} } ]; - } - @$facets = sort {$a->{expand} cmp $b->{expand}} @$facets; - } - return $facets; } diff --git a/Koha/SearchEngine/Elasticsearch/Search.pm b/Koha/SearchEngine/Elasticsearch/Search.pm index 0950139fad..3c3bf3bc97 100644 --- a/Koha/SearchEngine/Elasticsearch/Search.pm +++ b/Koha/SearchEngine/Elasticsearch/Search.pm @@ -391,14 +391,13 @@ sub _convert_facets { # These should correspond to the ES field names, as opposed to the CCL # things that zebra uses. - # TODO let the library define the order using the interface. my %type_to_label = ( - author => { order => 1, label => 'Authors', }, - itype => { order => 2, label => 'ItemTypes', }, - location => { order => 3, label => 'Location', }, - 'su-geo' => { order => 4, label => 'Places', }, - se => { order => 5, label => 'Series', }, - subject => { order => 6, label => 'Topics', }, + author => 'Authors', + location => 'Location', + itype => 'ItemTypes', + se => 'Series', + subject => 'Topics', + 'su-geo' => 'Places', ); # We also have some special cases, e.g. itypes that need to show the @@ -410,7 +409,7 @@ sub _convert_facets { itype => { map { $_->itemtype => $_->description } @itypes }, location => { map { $_->authorised_value => ( $opac ? ( $_->lib_opac || $_->lib ) : $_->lib ) } @locations }, ); - my @facets; + my @res; $exp_facet //= ''; while ( ( $type, $data ) = each %$es ) { next if !exists( $type_to_label{$type} ); @@ -422,9 +421,8 @@ sub _convert_facets { expand => $type, expandable => ( $type ne $exp_facet ) && ( @{ $data->{terms} } > $limit ), - "type_label_$type_to_label{$type}{label}" => 1, + "type_label_$type_to_label{$type}" => 1, type_link_value => $type, - order => $type_to_label{$type}{order}, }; $limit = @{ $data->{terms} } if ( $limit > @{ $data->{terms} } ); foreach my $term ( @{ $data->{terms} }[ 0 .. $limit - 1 ] ) { @@ -445,11 +443,9 @@ sub _convert_facets { type_link_value => $type, }; } - push @facets, $facet if exists $facet->{facets}; + push @res, $facet if exists $facet->{facets}; } - - @facets = sort { $a->{order} cmp $b->{order} } @facets; - return \@facets; + return \@res; } diff --git a/catalogue/search.pl b/catalogue/search.pl index 653ce4c3b7..06e2b1f116 100755 --- a/catalogue/search.pl +++ b/catalogue/search.pl @@ -531,6 +531,12 @@ eval { ); }; +# This sorts the facets into alphabetical order +if ($facets) { + foreach my $f (@$facets) { + $f->{facets} = [ sort { uc($a->{facet_label_value}) cmp uc($b->{facet_label_value}) } @{ $f->{facets} } ]; + } +} if ($@ || $error) { $template->param(query_error => $error.$@); output_html_with_http_headers $cgi, $cookie, $template->output; diff --git a/opac/opac-search.pl b/opac/opac-search.pl index f68fb9f99c..221eceacad 100755 --- a/opac/opac-search.pl +++ b/opac/opac-search.pl @@ -620,6 +620,14 @@ if ($tag) { }; } +# This sorts the facets into alphabetical order +if ($facets && @$facets) { + foreach my $f (@$facets) { + $f->{facets} = [ sort { uc($a->{facet_label_value}) cmp uc($b->{facet_label_value}) } @{ $f->{facets} } ]; + } + @$facets = sort {$a->{expand} cmp $b->{expand}} @$facets; +} + # use Data::Dumper; print STDERR "-" x 25, "\n", Dumper($results_hashref); if ($@ || $error) { $template->param(query_error => $error.$@); -- 2.39.5