Bug 10853: All existing routing to get a CSV should return a MARC csv
[koha.git] / opac / opac-authorities-home.pl
index a87030e..115012e 100755 (executable)
@@ -41,27 +41,29 @@ $startfrom = 0 if ( !defined $startfrom );
 my ( $template, $loggedinuser, $cookie );
 my $resultsperpage;
 
-my $authtypes = getauthtypes;
-my @authtypesloop;
-foreach my $thisauthtype ( sort { $authtypes->{$a}{'authtypetext'} cmp $authtypes->{$b}{'authtypetext'} }
-    keys %$authtypes )
-{
-    my $selected = 1 if $thisauthtype eq $authtypecode;
-    my %row = (
-        value        => $thisauthtype,
-        selected     => $selected,
-        authtypetext => $authtypes->{$thisauthtype}{'authtypetext'},
-    );
-    push @authtypesloop, \%row;
+my $authtypes     = getauthtypes();
+my @authtypesloop = ();
+foreach my $thisauthtype (
+    sort {
+        $authtypes->{$a}->{'authtypetext'}
+          cmp $authtypes->{$b}->{'authtypetext'}
+    }
+    keys %{$authtypes}
+  ) {
+    push @authtypesloop,
+      { value        => $thisauthtype,
+        selected     => $thisauthtype eq $authtypecode,
+        authtypetext => $authtypes->{$thisauthtype}->{'authtypetext'},
+      };
 }
 
 if ( $op eq "do_search" ) {
-    my @marclist = ($query->param('marclista'),$query->param('marclistb'),$query->param('marclistc'));
-    my @and_or = ($query->param('and_ora'),$query->param('and_orb'),$query->param('and_orc'));
-    my @excluding = ($query->param('excludinga'),$query->param('excludingb'),$query->param('excludingc'),);
-    my @operator = ($query->param('operatora'),$query->param('operatorb'),$query->param('operatorc'));
+    my @marclist = ($query->param('marclist'));
+    my @and_or = ($query->param('and_or'));
+    my @excluding = ($query->param('excluding'),);
+    my @operator = ($query->param('operator'));
     my $orderby = $query->param('orderby');
-    my @value = ($query->param('valuea') || "",$query->param('valueb') || "",$query->param('valuec') || "",);
+    my @value = ($query->param('value') || "",);
 
     $resultsperpage = $query->param('resultsperpage');
     $resultsperpage = 20 if ( !defined $resultsperpage );
@@ -88,15 +90,13 @@ if ( $op eq "do_search" ) {
         $displaynext = 1;
     }
 
-    my @field_data = ();
-
-    foreach my $letter (qw/a b c/){
-        push @field_data, { term => "marclist$letter" , val => $query->param("marclist$letter") || ''};
-        push @field_data, { term => "and_or$letter" , val => $query->param("and_or$letter") || ''};
-        push @field_data, { term => "excluding$letter" , val => $query->param("excluding$letter") || ''};
-        push @field_data, { term => "operator$letter" , val => $query->param("operator$letter") || ''};
-        push @field_data, { term => "value$letter" , val => $query->param("value$letter") || ''};
-    }
+    my @field_data = (
+        { term => "marclist",  val => $marclist[0] },
+        { term => "and_or",    val => $and_or[0] },
+        { term => "excluding", val => $excluding[0] },
+        { term => "operator",  val => $operator[0] },
+        { term => "value",     val => $value[0] },
+    );
 
     my @numbers = ();
 
@@ -125,6 +125,10 @@ if ( $op eq "do_search" ) {
     else {
         $to = ( ( $startfrom + 1 ) * $resultsperpage );
     }
+    unless (C4::Context->preference('OPACShowUnusedAuthorities')) {
+        my @usedauths = grep { $_->{used} > 0 } @$results;
+        $results = \@usedauths;
+    }
     $template->param( result => $results ) if $results;
     $template->param( FIELDS => \@fields );
     $template->param( orderby => $orderby );
@@ -136,9 +140,11 @@ if ( $op eq "do_search" ) {
         startfromnext  => $startfrom + 1,
         startfromprev  => $startfrom - 1,
         searchdata     => \@field_data,
+        countfuzzy     => !(C4::Context->preference('OPACShowUnusedAuthorities')),
         total          => $total,
         from           => $from,
         to             => $to,
+        resultcount    => scalar @$results,
         numbers        => \@numbers,
         authtypecode   => $authtypecode,
         authtypetext   => $authtypes->{$authtypecode}{'authtypetext'},