# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License along with
-# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-# Suite 330, Boston, MA 02111-1307 USA
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
use strict;
-require Exporter;
+use warnings;
+
use CGI;
use C4::Output;
use C4::Auth;
my $authtypes = getauthtypes;
my @authtypesloop;
foreach my $thisauthtype ( keys %$authtypes ) {
- my $selected = 1 if $thisauthtype eq $authtypecode;
my %row = (
value => $thisauthtype,
- selected => $selected,
+ selected => ($thisauthtype eq $authtypecode),
authtypetext => $authtypes->{$thisauthtype}{'authtypetext'},
index => $index,
);
push @authtypesloop, \%row;
}
+$op ||= q{};
if ( $op eq "do_search" ) {
my @marclist = $query->param('marclist');
my @and_or = $query->param('and_or');
my @excluding = $query->param('excluding');
my @operator = $query->param('operator');
- my @value = $query->param('value');
+ my @value = ($query->param('value_mainstr')||undef, $query->param('value_main')||undef, $query->param('value_any')||undef);
my $orderby = $query->param('orderby');
$resultsperpage = $query->param('resultsperpage');
- $resultsperpage = 19 if ( !defined $resultsperpage );
+ $resultsperpage = 20 if ( !defined $resultsperpage );
my ( $results, $total ) =
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;
push @field_data, { term => "and_or", val => $and_or[$i] };
push @field_data, { term => "excluding", val => $excluding[$i] };
push @field_data, { term => "operator", val => $operator[$i] };
- push @field_data, { term => "value", val => $value[$i] };
}
+ 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') || ""};
+
my @numbers = ();
if ( $total > $resultsperpage ) {
$template->param( result => $results ) if $results;
$template->param(
+ orderby => $orderby,
startfrom => $startfrom,
displaynext => $displaynext,
displayprev => $displayprev,
to => $to,
numbers => \@numbers,
authtypecode => $authtypecode,
- mainmainstring => $value[0],
- mainstring => $value[1],
- anystring => $value[2],
+ value_mainstr => $query->param('value_mainstr') || "",
+ value_main => $query->param('value_main') || "",
+ value_any => $query->param('value_any') || "",
);
} else {
( $template, $loggedinuser, $cookie ) = get_template_and_user(
}
$template->param(
+ value_mainstr => $query->param('value_mainstr') || "",
+ value_main => $query->param('value_main') || "",
+ value_any => $query->param('value_any') || "",
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') || "",
);
# Print the page