# 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;
+#use warnings; FIXME - Bug 2505
use CGI;
use C4::Auth;
my $isbn = $input->param('isbn');
my $issn = $input->param('issn');
my $lccn = $input->param('lccn');
+my $lccall = $input->param('lccall');
my $subject = $input->param('subject');
my $dewey = $input->param('dewey');
my $controlnumber = $input->param('controlnumber');
$template->param( frameworkcode => $frameworkcode, );
if ( $op ne "do_search" ) {
- my $sth = $dbh->prepare("select id,host,name,checked from z3950servers order by host");
+ my $sth = $dbh->prepare("SELECT id,host,name,checked FROM z3950servers ORDER BY rank, name");
$sth->execute();
my $serverloop = $sth->fetchall_arrayref( {} );
$template->param(
isbn => $isbn,
issn => $issn,
lccn => $lccn,
+ lccall => $lccall,
title => $title,
author => $author,
controlnumber=> $controlnumber,
}
else {
my @id = $input->param('id');
+
+ if ( not defined @id ) {
+ # empty server list -> report and exit
+ $template->param( emptyserverlist => 1 );
+ output_html_with_http_headers $input, $cookie, $template->output;
+ exit;
+ }
+
my @oConnection;
my @oResult;
my @errconn;
my $s = 0;
- my $query;
+ my $query = '';
my $nterms;
if ($isbn || $issn) {
$term=$isbn if ($isbn);
$query .= " \@attr 1=9 $lccn ";
$nterms++;
}
+ if ($lccall) {
+ $query .= " \@attr 1=16 \@attr 2=3 \@attr 3=1 \@attr 4=1 \@attr 5=1 \@attr 6=1 \"$lccall\" ";
+ $nterms++;
+ }
if ($controlnumber) {
$query .= " \@attr 1=12 \"$controlnumber\" ";
$nterms++;
warn "query ".$query if $DEBUG;
foreach my $servid (@id) {
- my $sth = $dbh->prepare("select * from z3950servers where id=?");
+ my $sth = $dbh->prepare("SELECT * FROM z3950servers WHERE id=? ORDER BY rank, name");
$sth->execute($servid);
while ( $server = $sth->fetchrow_hashref ) {
warn "serverinfo ".join(':',%$server) if $DEBUG;
$option1->option('user', $server->{userid} ) if $server->{userid};
$option1->option('password', $server->{password}) if $server->{password};
$option1->option('preferredRecordSyntax', $server->{syntax});
+ $option1->option( 'timeout', $server->{timeout} ) if ($server->{timeout});
$oConnection[$s] = create ZOOM::Connection($option1)
|| $DEBUG
&& warn( "" . $oConnection[$s]->errmsg() );
$oConnection[$k]->error_x();
if ($error) {
if ($error =~ m/^(10000|10007)$/ ) {
- push(@errconn, {'server' => $serverhost[$k]});
+ push(@errconn, {'server' => $serverhost[$k], 'error' => $error});
}
$DEBUG and warn "$k $serverhost[$k] error $query: $errmsg ($error) $addinfo\n";
}
# In rel2_2 i am not sure what encoding is so no character conversion is done here
##Add necessary encoding changes to here -TG
my $oldbiblio = TransformMarcToKoha( $dbh, $marcrecord, "" );
- $oldbiblio->{isbn} =~ s/ |-|\.//g,
- $oldbiblio->{issn} =~ s/ |-|\.//g,
+ $oldbiblio->{isbn} =~ s/ |-|\.//g if $oldbiblio->{isbn};
+ # pad | and ( with spaces to allow line breaks in the HTML
+ $oldbiblio->{isbn} =~ s/\|/ \| /g if $oldbiblio->{isbn};
+ $oldbiblio->{isbn} =~ s/\(/ \(/g if $oldbiblio->{isbn};
+
+ $oldbiblio->{issn} =~ s/ |-|\.//g if $oldbiblio->{issn};
+ # pad | and ( with spaces to allow line breaks in the HTML
+ $oldbiblio->{issn} =~ s/\|/ \| /g if $oldbiblio->{issn};
+ $oldbiblio->{issn} =~ s/\(/ \(/g if $oldbiblio->{issn};
my (
$notmarcrecord, $alreadyindb, $alreadyinfarm,
$imported, $breedingid
)
= ImportBreeding( $marcdata, 2, $serverhost[$k], $encoding[$k], $random, 'z3950' );
my %row_data;
- $row_data{toggle} = ($i % 2) ? 1 : 0;
$row_data{server} = $servername[$k];
$row_data{isbn} = $oldbiblio->{isbn};
$row_data{lccn} = $oldbiblio->{lccn};
push( @breeding_loop, \%row_data );
} else {
- push(@breeding_loop,{'toggle'=>($i % 2)?1:0,'server'=>$servername[$k],'title'=>join(': ',$oConnection[$k]->error_x()),'breedingid'=>-1,'biblionumber'=>-1});
+ push(@breeding_loop,{'server'=>$servername[$k],'title'=>join(': ',$oConnection[$k]->error_x()),'breedingid'=>-1,'biblionumber'=>-1});
} # $rec
}
} #$numresults