@@ -, +, @@
- Launch a search (OPAC and pro)
- Enable some facets
- Disable some facets
---
catalogue/search.pl | 12 ++++++++
.../intranet-tmpl/prog/en/includes/facets.inc | 27 +++++++++++++++--
.../opac-tmpl/prog/en/includes/opac-facets.inc | 31 +++++++++++++++++---
opac/opac-search.pl | 13 ++++++++
4 files changed, 76 insertions(+), 7 deletions(-)
--- a/catalogue/search.pl
+++ a/catalogue/search.pl
@@ -411,6 +411,9 @@ my @operands = map uri_unescape($_), $cgi->param('q');
# limits are use to limit to results to a pre-defined category such as branch or language
my @limits = map uri_unescape($_), $cgi->param('limit');
+my @nolimits = map uri_unescape($_), $cgi->param('nolimit');
+my %is_nolimit = map { $_ => 1 } @nolimits;
+@limits = grep { not $is_nolimit{$_} } @limits;
if($params->{'multibranchlimit'}) {
my $multibranch = '('.join( " or ", map { "branch: $_ " } @{ GetBranchesInCategory( $params->{'multibranchlimit'} ) } ).')';
@@ -685,6 +688,15 @@ my $gotopage = $cgi->param('gotoPage');
$template->{'VARS'}->{'gotoPage'} = $gotopage
if $gotopage =~ m/^(ISBD|labeledMARC|MARC|more)?detail.pl$/;
+my @input_values = map { $_->{input_value} } @limit_inputs;
+for my $facet ( @$facets ) {
+ for my $entry ( @{ $facet->{facets} } ) {
+ my $index = $entry->{type_link_value};
+ my $value = $entry->{facet_link_value};
+ $entry->{active} = grep { $_ eq qq{$index:$value} } @input_values;
+ }
+}
+
$template->param(
#classlist => $classlist,
total => $total,
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/facets.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/facets.inc
@@ -20,9 +20,30 @@
[% IF ( facets_loo.type_label_Libraries ) %]Libraries[% END %]
[% IF ( facets_loo.type_label_Location ) %]Locations[% END %]
- [% FOREACH facet IN facets_loo.facets %]- [% facet.facet_label_value %] [% IF ( displayFacetCount ) %]([% facet.facet_count %])[% END %]
[% END %][% IF ( facets_loo.expandable ) %]
- - Show more
-[% END %]
+ [% FOREACH facet IN facets_loo.facets %]
+ -
+ [% SET query_cgi_f = query_cgi | html %]
+ [% SET limit_cgi_f = limit_cgi | html %]
+ [% SET url = "/cgi-bin/koha/catalogue/search.pl?" _ query_cgi_f _ limit_cgi_f %]
+ [% IF ( sort_by ) %]
+ [% SET url = url _ "&sort_by=" _ sort_by %]
+ [% END %]
+ [% IF facet.active %]
+ [% SET url = url _ "&nolimit=" _ facet.type_link_value _ ":" _ facet.facet_link_value %]
+ [% facet.facet_label_value %]
+ [x]
+ [% ELSE %]
+ [% SET url = url _ "&limit=" _ facet.type_link_value _ ":" _ facet.facet_link_value %]
+ [% facet.facet_label_value %]
+ [% IF ( displayFacetCount ) %]
+ ([% facet.facet_count %])
+ [% END %]
+ [% END %]
+
+ [% END %]
+ [% IF ( facets_loo.expandable ) %]
+ - Show more
+ [% END %]
[% END %]
[% END %]
--- a/koha-tmpl/opac-tmpl/prog/en/includes/opac-facets.inc
+++ a/koha-tmpl/opac-tmpl/prog/en/includes/opac-facets.inc
@@ -21,10 +21,33 @@
[% END %]
[% IF ( facets_loo.type_label_Location ) %]Locations[% END %]
- [% FOREACH facet IN facets_loo.facets %]- [% facet.facet_label_value %] [% IF ( displayFacetCount ) %]([% facet.facet_count %])[% END %]
[% END %][% IF ( facets_loo.expandable ) %]
- - Show more
-[% END %]
-
+ [% FOREACH facet IN facets_loo.facets %]
+
+ [% SET query_cgi_f = query_cgi | html %]
+ [% SET limit_cgi_f = limit_cgi | html %]
+ [% SET url = "/cgi-bin/koha/opac-search.pl?" _ query_cgi_f _ limit_cgi_f %]
+ [% IF ( sort_by ) %]
+ [% SET url = url _ "&sort_by=" _ sort_by |html %]
+ [% END %]
+ [% IF facet.active %]
+ [% SET url = url _ "&nolimit=" _ facet.type_link_value _ ":" _ facet.facet_link_value %]
+ [% facet.facet_label_value %]
+ [x]
+ [% ELSE %]
+ [% SET url = url _ "&limit=" _ facet.type_link_value _ ":" _ facet.facet_link_value %]
+ [% facet.facet_label_value %]
+ [% IF ( displayFacetCount ) %]
+ ([% facet.facet_count %])
+ [% END %]
+ [% END %]
+
+ [% END %]
+ [% IF ( facets_loo.expandable ) %]
+ Show more
+
+ [% END %]
+
+
[% END %]
[% END %]
--- a/opac/opac-search.pl
+++ a/opac/opac-search.pl
@@ -400,6 +400,9 @@ if ($operands[0] && !$operands[1]) {
# limits are use to limit to results to a pre-defined category such as branch or language
my @limits = $cgi->param('limit');
+my @nolimits = $cgi->param('nolimit');
+my %is_nolimit = map { $_ => 1 } @nolimits;
+@limits = grep { not $is_nolimit{$_} } @limits;
@limits = map { uri_unescape($_) } @limits;
if($params->{'multibranchlimit'}) {
@@ -848,6 +851,16 @@ for (my $i=0;$i<@servers;$i++) {
} #/end of the for loop
#$template->param(FEDERATED_RESULTS => \@results_array);
+my @input_values = map { $_->{input_value} } @limit_inputs;
+for my $facet ( @$facets ) {
+ for my $entry ( @{ $facet->{facets} } ) {
+ my $index = $entry->{type_link_value};
+ my $value = $entry->{facet_link_value};
+ $entry->{active} = grep { $_ eq qq{$index:$value} } @input_values;
+ }
+}
+
+
$template->param(
#classlist => $classlist,
total => $total,
--