Merge remote-tracking branch 'origin/new/bug_8523'
[koha.git] / authorities / auth_finder.pl
index 89f632f..8182299 100755 (executable)
@@ -35,6 +35,7 @@ my $authtypecode = $query->param('authtypecode');
 my $index        = $query->param('index');
 my $tagid        = $query->param('tagid');
 my $resultstring = $query->param('result');
+my $relationship = $query->param('relationship');
 my $dbh          = C4::Context->dbh;
 
 my $startfrom = $query->param('startfrom');
@@ -60,7 +61,7 @@ if ( $op eq "do_search" ) {
     my @and_or    = $query->param('and_or');
     my @excluding = $query->param('excluding');
     my @operator  = $query->param('operator');
-    my @value     = ($query->param('value_mainstr')||undef, $query->param('value_main')||undef, $query->param('value_any')||undef);
+    my @value     = ($query->param('value_mainstr')||undef, $query->param('value_main')||undef, $query->param('value_any')||undef, $query->param('value_match')||undef);
     my $orderby   = $query->param('orderby');
 
     $resultsperpage = $query->param('resultsperpage');
@@ -70,6 +71,20 @@ if ( $op eq "do_search" ) {
       SearchAuthorities( \@marclist, \@and_or, \@excluding, \@operator, \@value,
         $startfrom * $resultsperpage,
         $resultsperpage, $authtypecode, $orderby);
+
+    # If an authority heading is repeated, add an arrayref to those repetions
+    # First heading -- Second heading
+    for my $heading ( @$results ) {
+        my @repets = split / -- /, $heading->{summary};
+        if ( @repets > 1 ) {
+            my @repets_loop;
+            for (my $i = 0; $i < @repets; $i++) {
+                push @repets_loop,
+                    { index => $index, repet => $i+1, value => $repets[$i] };
+            }
+            $heading->{repets} = \@repets_loop;
+        }
+    }
     # multi page display gestion
     my $displaynext = 0;
     my $displayprev = $startfrom;
@@ -92,6 +107,7 @@ if ( $op eq "do_search" ) {
     push @field_data, { term => "value_mainstr", val => $query->param('value_mainstr') || "" };
     push @field_data, { term => "value_main",    val => $query->param('value_main')    || "" };
     push @field_data, { term => "value_any",     val => $query->param('value_any')     || ""};
+    push @field_data, { term => "value_match",   val => $query->param('value_match')   || ""};
 
     my @numbers = ();
 
@@ -122,7 +138,7 @@ if ( $op eq "do_search" ) {
     }
     ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         {
-            template_name   => "authorities/searchresultlist-auth.tmpl",
+            template_name   => "authorities/searchresultlist-auth.tt",
             query           => $query,
             type            => 'intranet',
             authnotrequired => 0,
@@ -148,11 +164,12 @@ if ( $op eq "do_search" ) {
         value_mainstr  => $query->param('value_mainstr') || "", 
         value_main     => $query->param('value_main') || "",
         value_any      => $query->param('value_any') || "",
+        value_match    => $query->param('value_match') || "",
     );
 } else {
     ( $template, $loggedinuser, $cookie ) = get_template_and_user(
         {
-            template_name   => "authorities/auth_finder.tmpl",
+            template_name   => "authorities/auth_finder.tt",
             query           => $query,
             type            => 'intranet',
             authnotrequired => 0,
@@ -169,15 +186,16 @@ $template->param(
     value_mainstr => $query->param('value_mainstr') || "", 
     value_main    => $query->param('value_main') || "",
     value_any     => $query->param('value_any') || "",
+    value_match   => $query->param('value_match') || "",
     tagid         => $tagid,
     index         => $index,
     authtypesloop => \@authtypesloop,
     authtypecode  => $authtypecode,
-    value_mainstr  => $query->param('value_mainstr') || "", 
-    value_main     => $query->param('value_main')    || "",
-    value_any      => $query->param('value_any')     || "",
 );
 
+$template->{VARS}->{source} = $query->param('source') || '';
+$template->{VARS}->{relationship} = $query->param('relationship') || '';
+
 # Print the page
 output_html_with_http_headers $query, $cookie, $template->output;