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

(-)a/Koha/SearchEngine/Elasticsearch/Search.pm (-8 / +5 lines)
Lines 145-159 get ignored here, along with some other things (like C<@servers>.) Link Here
145
sub search_compat {
145
sub search_compat {
146
    my (
146
    my (
147
        $self,     $query,            $simple_query, $sort_by,
147
        $self,     $query,            $simple_query, $sort_by,
148
        $servers,  $results_per_page, $offset,       $expanded_facet,
148
        $servers,  $results_per_page, $offset,
149
        $branches, $query_type,       $scan
149
        $branches, $query_type,       $scan
150
    ) = @_;
150
    ) = @_;
151
    my %options;
151
    my %options;
152
    if ( !defined $offset or $offset < 0 ) {
152
    if ( !defined $offset or $offset < 0 ) {
153
        $offset = 0;
153
        $offset = 0;
154
    }
154
    }
155
155
    $options{offset} = $offset;
156
    $options{offset} = $offset;
156
    $options{expanded_facet} = $expanded_facet;
157
    my $results = $self->search($query, undef, $results_per_page, %options);
157
    my $results = $self->search($query, undef, $results_per_page, %options);
158
158
159
    # Convert each result into a MARC::Record
159
    # Convert each result into a MARC::Record
Lines 171-177 sub search_compat { Link Here
171
    my %result;
171
    my %result;
172
    $result{biblioserver}{hits} = $hits->{'total'};
172
    $result{biblioserver}{hits} = $hits->{'total'};
173
    $result{biblioserver}{RECORDS} = \@records;
173
    $result{biblioserver}{RECORDS} = \@records;
174
    return (undef, \%result, $self->_convert_facets($results->{aggregations}, $expanded_facet));
174
    return (undef, \%result, $self->_convert_facets($results->{aggregations}));
175
}
175
}
176
176
177
=head2 search_auth_compat
177
=head2 search_auth_compat
Lines 430-436 than just 5 like normal. Link Here
430
=cut
430
=cut
431
431
432
sub _convert_facets {
432
sub _convert_facets {
433
    my ( $self, $es, $exp_facet ) = @_;
433
    my ( $self, $es) = @_;
434
434
435
    return if !$es;
435
    return if !$es;
436
436
Lines 471-487 sub _convert_facets { Link Here
471
        homebranch => $library_names
471
        homebranch => $library_names
472
    );
472
    );
473
    my @facets;
473
    my @facets;
474
    $exp_facet //= '';
475
    while ( my ( $type, $data ) = each %$es ) {
474
    while ( my ( $type, $data ) = each %$es ) {
476
        next if !exists( $type_to_label{$type} );
475
        next if !exists( $type_to_label{$type} );
477
476
478
        # We restrict to the most popular $limit !results
477
        # We restrict to the most popular $limit !results
479
        my $limit = ( $type eq $exp_facet ) ? C4::Context->preference('FacetMaxCount') : 5;
478
        my $limit =  C4::Context->preference('FacetMaxCount') || 5 ;
480
        my $facet = {
479
        my $facet = {
481
            type_id    => $type . '_id',
480
            type_id    => $type . '_id',
482
            expand     => $type,
481
            expand     => $type,
483
            expandable => ( $type ne $exp_facet )
484
              && ( @{ $data->{buckets} } > $limit ),
485
            "type_label_$type_to_label{$type}{label}" => 1,
482
            "type_label_$type_to_label{$type}{label}" => 1,
486
            type_link_value                    => $type,
483
            type_link_value                    => $type,
487
            order      => $type_to_label{$type}{order},
484
            order      => $type_to_label{$type}{order},
(-)a/catalogue/search.pl (-3 / +1 lines)
Lines 459-466 my $offset = $params->{'offset'} || 0; Link Here
459
$offset = 0 if $offset < 0;
459
$offset = 0 if $offset < 0;
460
my $page = $cgi->param('page') || 1;
460
my $page = $cgi->param('page') || 1;
461
#my $offset = ($page-1)*$results_per_page;
461
#my $offset = ($page-1)*$results_per_page;
462
my $expanded_facet = $params->{'expand'};
463
464
# Define some global variables
462
# Define some global variables
465
my ( $error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$query_type);
463
my ( $error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$query_type);
466
464
Lines 536-542 eval { Link Here
536
    my $itemtypes = { map { $_->{itemtype} => $_ } @{ Koha::ItemTypes->search_with_localization->unblessed } };
534
    my $itemtypes = { map { $_->{itemtype} => $_ } @{ Koha::ItemTypes->search_with_localization->unblessed } };
537
    ( $error, $results_hashref, $facets ) = $searcher->search_compat(
535
    ( $error, $results_hashref, $facets ) = $searcher->search_compat(
538
        $query,            $simple_query, \@sort_by,       \@servers,
536
        $query,            $simple_query, \@sort_by,       \@servers,
539
        $results_per_page, $offset,       $expanded_facet, undef,
537
        $results_per_page, $offset, undef,
540
        $itemtypes,        $query_type,   $scan
538
        $itemtypes,        $query_type,   $scan
541
    );
539
    );
542
};
540
};
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/facets.inc (-4 / +16 lines)
Lines 30-39 Link Here
30
  [% IF ( sort_by ) %]
30
  [% IF ( sort_by ) %]
31
    [% url = BLOCK %][% url | $raw %][% "&sort_by=" _ sort_by | url %][% END %]
31
    [% url = BLOCK %][% url | $raw %][% "&sort_by=" _ sort_by | url %][% END %]
32
  [% END %]
32
  [% END %]
33
  [%  SET i = 1 %]
34
33
  [% FOREACH facet IN facets_loo.facets %]
35
  [% FOREACH facet IN facets_loo.facets %]
34
  [% IF facets_loo.type_label_CollectionCodes %][% SET facet.facet_label_value = AuthorisedValues.GetByCode('CCODE',facet.facet_label_value,0) || facet.facet_label_value %][% END %]
36
  [% IF facets_loo.type_label_CollectionCodes %][% SET facet.facet_label_value = AuthorisedValues.GetByCode('CCODE',facet.facet_label_value,0) || facet.facet_label_value %][% END %]
35
  [% IF facets_loo.type_label_Language %][% SET facet.facet_label_value = Languages.GetByISOCode(lang,facet.facet_label_value) || facet.facet_label_value %][% END %]
37
  [% IF facets_loo.type_label_Language %][% SET facet.facet_label_value = Languages.GetByISOCode(lang,facet.facet_label_value) || facet.facet_label_value %][% END %]
36
    <li>
38
    <li>
39
37
      [% IF facet.active %]
40
      [% IF facet.active %]
38
        [% local_url = BLOCK %][% url | $raw %][% "&nolimit=" _  facet.type_link_value _ ":" _ facet.facet_link_value | url %][% END %]
41
        [% local_url = BLOCK %][% url | $raw %][% "&nolimit=" _  facet.type_link_value _ ":" _ facet.facet_link_value | url %][% END %]
39
        <span class="facet-label">[% facet.facet_label_value | html %]</span>
42
        <span class="facet-label">[% facet.facet_label_value | html %]</span>
Lines 46-56 Link Here
46
        [% END %]
49
        [% END %]
47
      [% END %]
50
      [% END %]
48
    </li>
51
    </li>
52
    [%  i = i+1 %]
53
    [%   IF ( i == 6 ) %]
54
      <div id="hide_[% facets_loo.type_link_value |html %]">
55
    [% END %]
56
49
  [% END %]
57
  [% END %]
50
  [% IF ( facets_loo.expandable ) %]
58
  [%   IF ( i >= 6 ) %]
51
      <li class="showmore">
59
    </div>
52
          <a href="[% url | url %][% IF offset %]&amp;offset=[% offset | uri %][% END %]&amp;expand=[% facets_loo.expand | uri %]#[% facets_loo.type_id | uri %]">Show more</a>
60
  [% END %]
53
      </li>
61
62
  [% IF ( i > 6 ) %]
63
    <li class="showmore">
64
      <a id="link_[% facets_loo.type_link_value |html %]" href="" >Show more</a>
65
    </li>
54
  [% END %]
66
  [% END %]
55
</ul></li>
67
</ul></li>
56
[% END %]
68
[% END %]
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt (-1 / +37 lines)
Lines 936-941 Link Here
936
            placeHold();
936
            placeHold();
937
        }
937
        }
938
    </script>
938
    </script>
939
940
    <script>
941
    //script of facets.inc
942
    $(document).ready( function () {
943
944
        [% FOREACH facets_loo IN facets_loop %]
945
            $("#hide_[% facets_loo.type_link_value |html %]").css("display", "none");
946
        [% END %]
947
948
        const hide = () => {
949
            [% FOREACH facets_loo IN facets_loop %]
950
951
                $("#link_[% facets_loo.type_link_value |html %]").click(function(e){
952
                    e.preventDefault();
953
                    $("#hide_[% facets_loo.type_link_value | html %]").css("display", "block");
954
                    $("#link_[% facets_loo.type_link_value | html %]").parent().html('<a id="back_[% facets_loo.type_link_value | html %]" href="" >Show less</a>');
955
                    show();
956
                });
957
            [% END %]
958
        };
959
960
        const show = () => {
961
            [% FOREACH facets_loo IN facets_loop %]
962
963
                $("#back_[% facets_loo.type_link_value | html %]").click(function(e){
964
                    e.preventDefault();
965
                    $("#hide_[% facets_loo.type_link_value | html %]").css("display", "none");
966
                    $("#back_[% facets_loo.type_link_value | html %]").parent().html('<a id="link_[% facets_loo.type_link_value | html %]" href="" >Show more</a>');
967
                    hide();
968
                });
969
            [% END %]
970
        };
971
972
        hide();
973
    });
974
975
    </script>
939
[% END %]
976
[% END %]
940
977
941
[% INCLUDE 'intranet-bottom.inc' %]
978
[% INCLUDE 'intranet-bottom.inc' %]
942
- 

Return to bug 22903