[Koha-patches] [PATCH 1/6] bug 3263: Staff Search Results Interface Changes
Galen Charlton
galen.charlton at liblime.com
Wed May 27 20:10:42 CEST 2009
Coding by Rick Welykochy <rick at praxis.com.au>
[1] Three new system preferences to enable particular
bib record views in the staff interface:
viewMARC
viewLabeledMARC
viewISBD
Implements enhancement 2642.
[2] New button in the regular and cataloging search results
pages in the staff interface to allow the operator to redo
the search against Z39.50 targets instead of the Koha database.
[3] Added copyright date and edition to cataloging and Z39.50 search results.
Implements enhancement 2640.
Feature sponsored by MassCat.
---
C4/Search.pm | 96 +++++++++++++++++++-
catalogue/ISBDdetail.pl | 4 +-
catalogue/MARCdetail.pl | 3 +
catalogue/detail.pl | 6 ++
catalogue/issuehistory.pl | 2 +
catalogue/moredetail.pl | 3 +
catalogue/search.pl | 29 ++++++-
cataloguing/addbooks.pl | 3 +
cataloguing/z3950_search.pl | 2 +
koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css | 2 +-
.../intranet-tmpl/prog/en/css/staff-global.css | 36 ++++++++
.../prog/en/includes/biblio-view-menu.inc | 12 +++
.../intranet-tmpl/prog/en/includes/cat-toolbar.inc | 31 +++++++
.../prog/en/includes/cataloging-toolbar.inc | 31 ++++++-
.../prog/en/modules/catalogue/results.tmpl | 47 ++++++++++
.../prog/en/modules/cataloguing/addbooks.tmpl | 6 ++
.../prog/en/modules/cataloguing/z3950_search.tmpl | 4 +
reserve/request.pl | 2 +
tools/viewlog.pl | 2 +
19 files changed, 314 insertions(+), 7 deletions(-)
diff --git a/C4/Search.pm b/C4/Search.pm
index 9229746..13f504f 100644
--- a/C4/Search.pm
+++ b/C4/Search.pm
@@ -19,7 +19,7 @@ use strict;
# use warnings; # FIXME
require Exporter;
use C4::Context;
-use C4::Biblio; # GetMarcFromKohaField
+use C4::Biblio; # GetMarcFromKohaField, GetBiblioData
use C4::Koha; # getFacets
use Lingua::Stem;
use C4::Search::PazPar2;
@@ -27,6 +27,7 @@ use XML::Simple;
use C4::Dates qw(format_date);
use C4::XSLT;
use C4::Branch;
+use URI::Escape;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG);
@@ -1250,6 +1251,9 @@ sub searchResults {
$oldbiblio->{normalized_oclc} = GetNormalizedOCLCNumber($marcrecord,$marcflavour);
$oldbiblio->{normalized_isbn} = GetNormalizedISBN(undef,$marcrecord,$marcflavour);
$oldbiblio->{content_identifier_exists} = 1 if ($oldbiblio->{normalized_isbn} or $oldbiblio->{normalized_oclc} or $oldbiblio->{normalized_ean} or $oldbiblio->{normalized_upc});
+
+ # edition information, if any
+ $oldbiblio->{edition} = $oldbiblio->{editionstatement};
$oldbiblio->{description} = $itemtypes{ $oldbiblio->{itemtype} }->{description};
# Build summary if there is one (the summary is defined in the itemtypes table)
# FIXME: is this used anywhere, I think it can be commented out? -- JF
@@ -2109,6 +2113,96 @@ sub NZorder {
}
}
+=head2 enabled_staff_search_views
+
+%hash = enabled_staff_search_views()
+
+This function returns a hash that contains three flags obtained from the system
+preferences, used to determine whether a particular staff search results view
+is enabled.
+
+=over 2
+
+=item C<Output arg:>
+
+ * $hash{can_view_MARC} is true only if the MARC view is enabled
+ * $hash{can_view_ISBD} is true only if the ISBD view is enabled
+ * $hash{can_view_labeledMARC} is true only if the Labeled MARC view is enabled
+
+=item C<usage in the script:>
+
+=back
+
+$template->param ( C4::Search::enabled_staff_search_views );
+
+=cut
+
+sub enabled_staff_search_views
+{
+ return (
+ can_view_MARC => C4::Context->preference('viewMARC'), # 1 if the staff search allows the MARC view
+ can_view_ISBD => C4::Context->preference('viewISBD'), # 1 if the staff search allows the ISBD view
+ can_view_labeledMARC => C4::Context->preference('viewLabeledMARC'), # 1 if the staff search allows the Labeled MARC view
+ );
+}
+
+
+=head2 z3950_search_args
+
+$arrayref = z3950_search_args($matchpoints)
+
+This function returns an array reference that contains the search parameters to be
+passed to the Z39.50 search script (z3950_search.pl). The array elements
+are hash refs whose keys are name, value and encvalue, and whose values are the
+name of a search parameter, the value of that search parameter and the URL encoded
+value of that parameter.
+
+The search parameter names are lccn, isbn, issn, title, author, dewey and subject.
+
+The search parameter values are obtained from the bibliographic record whose
+data is in a hash reference in $matchpoints, as returned by Biblio::GetBiblioData().
+
+If $matchpoints is a scalar, it is assumed to be an unnamed query descriptor, e.g.
+a general purpose search argument. In this case, the returned array contains only
+entry: the key is 'title' and the value and encvalue are derived from $matchpoints.
+
+If a search parameter value is undefined or empty, it is not included in the returned
+array.
+
+The returned array reference may be passed directly to the template parameters.
+
+=over 2
+
+=item C<Output arg:>
+
+ * $array containing hash refs as described above
+
+=item C<usage in the script:>
+
+=back
+
+$data = Biblio::GetBiblioData($bibno);
+$template->param ( MYLOOP => C4::Search::z3950_search_args($data) )
+
+*OR*
+
+$template->param ( MYLOOP => C4::Search::z3950_search_args($searchscalar) )
+
+=cut
+
+sub z3950_search_args {
+ my $bibrec = shift;
+ $bibrec = { title => $bibrec } if !ref $bibrec;
+ my $array = [];
+ for my $field (qw/ lccn isbn issn title author dewey subject /)
+ {
+ my $encvalue = URI::Escape::uri_escape_utf8($bibrec->{$field});
+ push @$array, { name=>$field, value=>$bibrec->{$field}, encvalue=>$encvalue } if defined $bibrec->{$field};
+ }
+ return $array;
+}
+
+
END { } # module clean-up code here (global destructor)
1;
diff --git a/catalogue/ISBDdetail.pl b/catalogue/ISBDdetail.pl
index d9eea6d..b2dea40 100755
--- a/catalogue/ISBDdetail.pl
+++ b/catalogue/ISBDdetail.pl
@@ -45,7 +45,7 @@ use C4::Biblio;
use C4::Items;
use C4::Branch; # GetBranchDetail
use C4::Serials; # CountSubscriptionFromBiblionumber
-
+use C4::Search; # enabled_staff_search_views
#---- Internal function
@@ -88,6 +88,8 @@ $template->param (
ISBD => $res,
biblionumber => $biblionumber,
isbdview => 1,
+ z3950_search_params => C4::Search::z3950_search_args(GetBiblioData($biblionumber)),
+ C4::Search::enabled_staff_search_views,
);
output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/catalogue/MARCdetail.pl b/catalogue/MARCdetail.pl
index f569763..5b209a6 100755
--- a/catalogue/MARCdetail.pl
+++ b/catalogue/MARCdetail.pl
@@ -55,6 +55,7 @@ use C4::Biblio;
use C4::Items;
use C4::Acquisition;
use C4::Serials; #uses getsubscriptionsfrombiblionumber GetSubscriptionsFromBiblionumber
+use C4::Search; # enabled_staff_search_views
my $query = new CGI;
@@ -316,6 +317,8 @@ $template->param (
popup => $popup,
hide_marc => C4::Context->preference('hide_marc'),
marcview => 1,
+ z3950_search_params => C4::Search::z3950_search_args($biblio),
+ C4::Search::enabled_staff_search_views,
);
output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/catalogue/detail.pl b/catalogue/detail.pl
index 649c46f..a9c7f0e 100755
--- a/catalogue/detail.pl
+++ b/catalogue/detail.pl
@@ -34,6 +34,7 @@ use C4::Members;
use C4::Serials;
use C4::XISBN qw(get_xisbns get_biblionumber_from_isbn);
use C4::External::Amazon;
+use C4::Search; # enabled_staff_search_views
# use Smart::Comments;
@@ -195,6 +196,8 @@ $template->param(
itemdata_enumchron => $itemfields{enumchron},
itemdata_copynumber => $itemfields{copynumber},
volinfo => $itemfields{enumchron} || $dat->{'serial'} ,
+ z3950_search_params => C4::Search::z3950_search_args($dat),
+ C4::Search::enabled_staff_search_views,
);
my @results = ( $dat, );
@@ -202,6 +205,9 @@ foreach ( keys %{$dat} ) {
$template->param( "$_" => defined $dat->{$_} ? $dat->{$_} : '' );
}
+# does not work: my %views_enabled = map { $_ => 1 } $template->query(loop => 'EnableViews');
+# method query not found?!?!
+
$template->param(
itemloop => \@itemloop,
biblionumber => $biblionumber,
diff --git a/catalogue/issuehistory.pl b/catalogue/issuehistory.pl
index 0a5db95..8790bb5 100755
--- a/catalogue/issuehistory.pl
+++ b/catalogue/issuehistory.pl
@@ -25,6 +25,7 @@ use C4::Output;
use C4::Circulation; # GetBiblioIssues
use C4::Biblio; # GetBiblio GetBiblioFromItemNumber
use C4::Dates qw/format_date/;
+use C4::Search; # enabled_staff_search_views
my $query = new CGI;
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
@@ -70,6 +71,7 @@ $template->param(
total => scalar @$issues,
issues => $issues,
issuehistoryview => 1,
+ C4::Search::enabled_staff_search_views,
);
output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/catalogue/moredetail.pl b/catalogue/moredetail.pl
index 6f62661..0b339dc 100755
--- a/catalogue/moredetail.pl
+++ b/catalogue/moredetail.pl
@@ -30,6 +30,7 @@ use C4::Auth;
use C4::Serials;
use C4::Dates qw/format_date/;
use C4::Circulation; # to use itemissues
+use C4::Search; # enabled_staff_search_views
my $query=new CGI;
@@ -119,6 +120,7 @@ foreach my $item (@items){
$template->param(count => $data->{'count'},
subscriptionsnumber => $subscriptionsnumber,
subscriptiontitle => $data->{title},
+ C4::Search::enabled_staff_search_views,
);
$template->param(BIBITEM_DATA => \@results);
$template->param(ITEM_DATA => \@items);
@@ -128,6 +130,7 @@ $template->param(biblionumber => $biblionumber);
$template->param(biblioitemnumber => $bi);
$template->param(itemnumber => $itemnumber);
$template->param(ONLY_ONE => 1) if ( $itemnumber && $count != @items );
+$template->param(z3950_search_params => C4::Search::z3950_search_args(GetBiblioData($biblionumber)));
output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/catalogue/search.pl b/catalogue/search.pl
index a5beb6d..afc32a5 100755
--- a/catalogue/search.pl
+++ b/catalogue/search.pl
@@ -403,6 +403,25 @@ if ($params->{'limit-yr'}) {
#FIXME: Should return a error to the user, incorect date format specified
}
+# convert indexes and operands to corresponding parameter names for the z3950 search
+# $ %z3950p will be a hash ref if the indexes are present (advacned search), otherwise undef
+my $z3950par;
+my $indexes2z3950 = {
+ kw=>'title', au=>'author', 'au,phr'=>'author', nb=>'isbn', ns=>'issn',
+ 'lcn,phr'=>'dewey', su=>'subject', 'su,phr'=>'subject',
+ ti=>'title', 'ti,phr'=>'title', se=>'title'
+};
+for (my $ii = 0; $ii < @operands; ++$ii)
+{
+ my $name = $indexes2z3950->{$indexes[$ii]};
+ if (defined $name && defined $operands[$ii])
+ {
+ $z3950par ||= {};
+ $z3950par->{$name} = $operands[$ii] if !exists $z3950par->{$name};
+ }
+}
+
+
# Params that can only have one value
my $scan = $params->{'scan'};
my $count = C4::Context->preference('numSearchResults') || 20;
@@ -494,10 +513,14 @@ for (my $i=0;$i<@servers;$i++) {
## If there's just one result, redirect to the detail page
if ($total == 1) {
my $biblionumber=@newresults[0]->{biblionumber};
- if (C4::Context->preference('IntranetBiblioDefaultView') eq 'isbd') {
+ my $defaultview = C4::Context->preference('IntranetBiblioDefaultView');
+ my $views = { C4::Search::enabled_staff_search_views };
+ if ($defaultview eq 'isbd' && $views->{can_view_ISBD}) {
print $cgi->redirect("/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=$biblionumber");
- } elsif (C4::Context->preference('IntranetBiblioDefaultView') eq 'marc') {
+ } elsif ($defaultview eq 'marc' && $views->{can_view_MARC}) {
print $cgi->redirect("/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=$biblionumber");
+ } elsif ($defaultview eq 'labeled_marc' && $views->{can_view_labeledMARC}) {
+ print $cgi->redirect("/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=$biblionumber");
} else {
print $cgi->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber");
}
@@ -515,6 +538,7 @@ for (my $i=0;$i<@servers;$i++) {
$template->param(query_cgi => $query_cgi);
$template->param(query_desc => $query_desc);
$template->param(limit_desc => $limit_desc);
+ $template->param (z3950_search_params => C4::Search::z3950_search_args($query_desc));
if ($query_desc || $limit_desc) {
$template->param(searchdesc => 1);
}
@@ -580,6 +604,7 @@ for (my $i=0;$i<@servers;$i++) {
# no hits
else {
$template->param(searchdesc => 1,query_desc => $query_desc,limit_desc => $limit_desc);
+ $template->param (z3950_search_params => C4::Search::z3950_search_args($z3950par || $query_desc));
}
diff --git a/cataloguing/addbooks.pl b/cataloguing/addbooks.pl
index 2f43feb..045a4ee 100755
--- a/cataloguing/addbooks.pl
+++ b/cataloguing/addbooks.pl
@@ -113,6 +113,8 @@ for ( my $i = 0 ; $i <= $#resultsbr ; $i++ ) {
$row_data{toggle} = $toggle;
$row_data{id} = $resultsbr[$i]->{'id'};
$row_data{isbn} = $resultsbr[$i]->{'isbn'};
+ $row_data{copyrightdate} = $resultsbr[$i]->{'copyrightdate'};
+ $row_data{editionstatement} = $resultsbr[$i]->{'editionstatement'};
$row_data{file} = $resultsbr[$i]->{'file'};
$row_data{title} = $resultsbr[$i]->{'title'};
$row_data{author} = $resultsbr[$i]->{'author'};
@@ -123,6 +125,7 @@ $template->param(
frameworkcodeloop => \@frameworkcodeloop,
breeding_count => $countbr,
breeding_loop => \@breeding_loop,
+ z3950_search_params => C4::Search::z3950_search_args($query),
);
output_html_with_http_headers $input, $cookie, $template->output;
diff --git a/cataloguing/z3950_search.pl b/cataloguing/z3950_search.pl
index c73b5f9..6f117f4 100755
--- a/cataloguing/z3950_search.pl
+++ b/cataloguing/z3950_search.pl
@@ -244,6 +244,8 @@ warn "query ".$query if $DEBUG;
$row_data{lccn} = $oldbiblio->{lccn};
$row_data{title} = $oldbiblio->{title};
$row_data{author} = $oldbiblio->{author};
+ $row_data{date} = $oldbiblio->{copyrightdate};
+ $row_data{edition} = $oldbiblio->{editionstatement};
$row_data{breedingid} = $breedingid;
$row_data{biblionumber} = $biblionumber;
push( @breeding_loop, \%row_data );
diff --git a/koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css b/koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css
index 6e0a58c..25135ac 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css
+++ b/koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css
@@ -115,4 +115,4 @@ div.subfield_line label {
}
#cataloguing_additem_newitem .input_marceditor {
width : auto;
-}
\ No newline at end of file
+}
diff --git a/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css b/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css
index 2bec4ea..a94ee1e 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css
+++ b/koha-tmpl/intranet-tmpl/prog/en/css/staff-global.css
@@ -844,6 +844,11 @@ fieldset.rows .inputnote {
background-position : center left;
background-repeat : no-repeat;
}
+#z3950searcht table {
+ /* doesn't have desired effect in catalogue/results.tmpl - I'll leave this here for now but there do seem to be casscading CSS errors in this and other CSS fiels - RICKW 20081118 */
+ padding: 20px;
+ border: none;
+}
#printbiblio button, #printbiblio a, #printmenuc .first-child {
padding-left : 34px;
background-image: url("../../img/toolbar-print.gif");
@@ -1324,6 +1329,18 @@ overflow : hidden;
float : right;
}
+#searchheader form.fz3950 {
+ float : right;
+ font-size : 125%;
+ padding : 0 0 0 5em;
+}
+
+#searchheader form.fz3950bigrpad {
+ float : right;
+ font-size : 125%;
+ padding : 5px 25em 0 0;
+}
+
#search-facets ul {
margin : 0;
padding : .3em;
@@ -1642,3 +1659,22 @@ span.permissiondesc {
margin-top : .5em;
padding : .5em;
}
+
+.labeledmarc-table {
+ border: 0;
+}
+
+.labeledmarc-label {
+ border: 0;
+ padding: 5;
+ font-size: 11pt;
+ color: darkblue;
+}
+
+.labeledmarc-value {
+ border: 0;
+ padding: 5;
+ font-size: 10pt;
+ color: black;
+}
+
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc
index 3f021f9..e3ccc8b 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc
@@ -2,10 +2,22 @@
<ul>
<!-- TMPL_IF NAME="detailview" --><li class="active"><!-- TMPL_ELSE --><li><!-- /TMPL_IF -->
<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=<!-- TMPL_IF NAME="object" --><!-- TMPL_VAR NAME="object" --><!-- TMPL_ELSE --><!-- TMPL_VAR NAME="biblionumber" --><!-- /TMPL_IF -->">Normal</a></li>
+
+<!-- TMPL_IF NAME="can_view_MARC" -->
<!-- TMPL_IF NAME="marcview" --><li class="active"><!-- TMPL_ELSE --><li><!-- /TMPL_IF -->
<a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_IF NAME="object" --><!-- TMPL_VAR NAME="object" --><!-- TMPL_ELSE --><!-- TMPL_VAR NAME="biblionumber" --><!-- /TMPL_IF -->">MARC</a></li>
+<!-- /TMPL_IF -->
+
+<!-- TMPL_IF NAME="can_view_labeledMARC" -->
+ <!-- TMPL_IF NAME="labeledmarcview" --><li class="active"><!-- TMPL_ELSE --><li><!-- /TMPL_IF -->
+ <a href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=<!-- TMPL_IF NAME="object" --><!-- TMPL_VAR NAME="object" --><!-- TMPL_ELSE --><!-- TMPL_VAR NAME="biblionumber" --><!-- /TMPL_IF -->">Labeled MARC</a></li>
+<!-- /TMPL_IF -->
+
+<!-- TMPL_IF NAME="can_view_ISBD" -->
<!-- TMPL_IF NAME="isbdview" --><li class="active"><!-- TMPL_ELSE --><li><!-- /TMPL_IF -->
<a href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=<!-- TMPL_IF NAME="object" --><!-- TMPL_VAR NAME="object" --><!-- TMPL_ELSE --><!-- TMPL_VAR NAME="biblionumber" --><!-- /TMPL_IF -->">ISBD</a></li>
+<!-- /TMPL_IF -->
+
<!-- TMPL_IF NAME="moredetailview" --><li class="active"><!-- TMPL_ELSE --><li><!-- /TMPL_IF -->
<a href="/cgi-bin/koha/catalogue/moredetail.pl?biblionumber=<!-- TMPL_IF NAME="object" --><!-- TMPL_VAR NAME="object" --><!-- TMPL_ELSE --><!-- TMPL_VAR NAME="biblionumber" --><!-- /TMPL_IF -->">Items</a></li>
<!-- TMPL_IF NAME="CAN_user_reserveforothers" -->
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc
index e6a26bf..9a6d614 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc
@@ -3,6 +3,23 @@
<script type="text/javascript">
//<![CDATA[
+ /* this function open a popup to search on z3950 server. */
+ function PopupZ3950() {
+ var strQuery = GetZ3950Terms();
+ if(strQuery){
+ window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"+strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes');
+ }
+ }
+
+ /* provide Z3950 search points */
+ function GetZ3950Terms(){
+ var strQuery="&frameworkcode=";
+ <!-- TMPL_LOOP NAME='z3950_search_params' -->
+ strQuery += "&" + "<!-- TMPL_VAR NAME="name" -->" + "=" + "<!-- TMPL_VAR NAME="encvalue" -->";
+ <!-- /TMPL_LOOP -->
+ return strQuery;
+ }
+
function addToShelf() { window.open('/cgi-bin/koha/virtualshelves/addbybiblionumber.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->','Add_to_virtualshelf','width=500,height=400,toolbar=false,scrollbars=yes');
}
function printBiblio() {window.open('/cgi-bin/koha/catalogue/detailprint.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->','Print_Biblio','width=700,height=500,toolbar=false,scrollbars=yes');
@@ -41,6 +58,7 @@ function confirm_deletion() {
$("#printbiblioc").empty();
$("#export").remove();
$("#addtoshelfc").before("<li id=\"savemenuc\"><\/li>");
+ $("#z3950searchc").empty();
yuiToolbar();
});
@@ -92,6 +110,14 @@ function confirm_deletion() {
container: "newmenuc"
});
+ new YAHOO.widget.Button({
+ id: "z3950search",
+ type: "button",
+ label: _("z39.50 Search"),
+ container: "z3950searchc",
+ onclick: {fn:function(){PopupZ3950()}}
+ });
+
var addtoshelfButton = new YAHOO.widget.Button({
id: "addtoshelf",
type: "button",
@@ -116,6 +142,8 @@ function confirm_deletion() {
//]]>
</script>
+<form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
+
<ul class="toolbar">
<!-- TMPL_IF NAME="CAN_user_editcatalogue" -->
<li id="newmenuc"><a id="newbiblio" href="/cgi-bin/koha/cataloguing/addbiblio.pl">New Record</a></li>
@@ -132,4 +160,7 @@ function confirm_deletion() {
<!-- TMPL_UNLESS name="bi_notforloan" -->
<!-- TMPL_UNLESS NAME="norequests" --><li><a id="placehold" href="/cgi-bin/koha/reserve/request.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->">Place Hold</a></li><!-- /TMPL_UNLESS --><!-- /TMPL_UNLESS -->
<!-- /TMPL_IF -->
+ <li id="z3950searchc"><input type="button" id="z3950search" value="z39.50 Search" onclick="PopupZ3950(); return false;" /></li>
+</form>
</ul></div>
+
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cataloging-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cataloging-toolbar.inc
index f1dae2d..d20789e 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/cataloging-toolbar.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cataloging-toolbar.inc
@@ -9,11 +9,12 @@
$(document).ready(function() {
$("#newmenuc").empty();
yuiToolbar();
+ yuiZ3950button();
});
// YUI Toolbar Functions
- function yuiToolbar() {
+ function yuiToolbar() {
<!-- TMPL_IF NAME="NOTMARC" -->
new YAHOO.widget.Button("newrecord");
@@ -34,7 +35,31 @@
});
}
- <!-- /TMPL_IF -->
+ /* this function open a popup to search on z3950 server. */
+ function PopupZ3950() {
+ var strQuery = GetZ3950Terms();
+ if(strQuery){
+ window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"+strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes');
+ }
+ }
+ /* provide Z3950 search points */
+ function GetZ3950Terms(){
+ var strQuery="&frameworkcode=";
+ <!-- TMPL_LOOP NAME='z3950_search_params' -->
+ strQuery += "&" + "<!-- TMPL_VAR NAME="name" -->" + "=" + "<!-- TMPL_VAR NAME="encvalue" -->";
+ <!-- /TMPL_LOOP -->
+ return strQuery;
+ }
+ /* prepare DOM for Z39.50 Search Button */
+ function yuiZ3950button() {
+ new YAHOO.widget.Button({
+ id: "z3950search",
+ type: "button",
+ label: _("z39.50 Search"),
+ container: "newmenuc",
+ onclick: {fn:function(){PopupZ3950()}}
+ });
+ }
//]]>
</script>
@@ -54,6 +79,8 @@
</select>
<input type="submit" value="Add Record Without Search" />
</form>
+ <a id="z3950search" onclick="PopupZ3950(); return false;">z39.50 Search</a>
<!-- /TMPL_IF -->
+
</div>
</div>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tmpl
index 1f4ba4e..2fb76c3 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tmpl
@@ -20,12 +20,20 @@ function verify_images() {
}
});
}
+<!-- /TMPL_IF -->
+
$(document).ready(function() {
+<!-- TMPL_IF NAME="AmazonContent" -->
$('#sortbyform').find("input:submit").hide();
$('#sort_by').change(function() {
$('#sortbyform').submit();
});
+<!-- /TMPL_IF -->
+ $("#z3950searchc").empty();
+ yuiZ3950button();
});
+
+<!-- TMPL_IF NAME="AmazonContent" -->
$(window).load(function() {
verify_images();
});
@@ -79,6 +87,32 @@ function addToList () {
window.open(url, 'Add_to_virtualshelf', 'width=500, height=400, toolbar=false, scrollbars=yes');
return false;
}
+
+/* this function open a popup to search on z3950 server. */
+function PopupZ3950() {
+ var strQuery = GetZ3950Terms();
+ if(strQuery){
+ window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"+strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes');
+ }
+}
+/* provide Z3950 search points */
+function GetZ3950Terms(){
+ var strQuery="&frameworkcode=";
+ <!-- TMPL_LOOP NAME='z3950_search_params' -->
+ strQuery += "&" + "<!-- TMPL_VAR NAME="name" -->" + "=" + "<!-- TMPL_VAR NAME="encvalue" -->";
+ <!-- /TMPL_LOOP -->
+ return strQuery;
+}
+/* prepare DOM for Z39.50 Search Button */
+function yuiZ3950button() {
+ new YAHOO.widget.Button({
+ id: "z3950search",
+ type: "button",
+ label: _("z39.50 Search"),
+ container: "z3950searchc",
+ onclick: {fn:function(){PopupZ3950()}}
+ });
+}
//]]>
</script>
</head>
@@ -112,6 +146,9 @@ function addToList () {
<!-- TMPL_IF NAME="total" -->
<div id="searchheader">
+ <form method="post" name="fz3950" class="fz3950">
+ <span id="z3950searchc"><input type="button" id="z3950search" value="z39.50 Search" onclick="PopupZ3950(); return false;" /></span>
+ </form>
<form action="/cgi-bin/koha/catalogue/search.pl" method="get" id="sortbyform">
<!-- TMPL_IF NAME="searchdesc" -->
<!-- TMPL_LOOP NAME="QUERY_INPUTS"-->
@@ -144,6 +181,10 @@ function addToList () {
</div>
<!-- TMPL_IF NAME="stopwords_removed" --><div><p class="tip">Ignored the following common words: "<!-- TMPL_VAR NAME="stopwords_removed" -->"<p></div><!-- /TMPL_IF -->
<!-- TMPL_ELSE -->
+ <div id="searchheader">
+ <form method="post" name="fz3950" class="fz3950bigrpad">
+ <span id="z3950searchc"><input type="button" id="z3950search" value="z39.50 Search" onclick="PopupZ3950(); return false;" /></span>
+ </form>
<!-- TMPL_IF NAME="searchdesc" -->
<h3>No results found</h3>
<p>
@@ -155,6 +196,7 @@ function addToList () {
You did not specify any search criteria.
</p>
<!-- /TMPL_IF -->
+ </div>
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME="query_error" -->
@@ -290,6 +332,10 @@ function addToList () {
<b><!-- TMPL_IF NAME="title" --><!-- TMPL_VAR NAME="title" --><!-- TMPL_ELSE -->No title<!-- /TMPL_IF --></b>
</a> <!-- TMPL_VAR NAME="subtitle" -->
<!-- TMPL_IF name="volume" -->,<!-- TMPL_VAR name="volume" --><!-- /TMPL_IF --> <!-- TMPL_IF name="volumeddesc" -->, <!-- TMPL_VAR name="volumeddesc" --><!-- /TMPL_IF -->
+ <!-- TMPL_ELSIF NAME="BiblioDefaultViewlabeled_marc" -->
+ <a class="title" href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
+ <!-- TMPL_VAR NAME="title" -->
+ </a> <!-- TMPL_VAR NAME="subtitle" --><!-- TMPL_IF name="volume" -->,<!-- TMPL_VAR name="volume" --><!-- /TMPL_IF --> <!-- TMPL_IF name="volumeddesc" -->, <!-- TMPL_VAR name="volumeddesc" --><!-- /TMPL_IF -->
<!-- TMPL_ELSIF NAME="BiblioDefaultViewisbd" -->
<a class="title" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=<!-- TMPL_VAR NAME="biblionumber" ESCAPE="URL" -->">
<!-- TMPL_IF NAME="title" --><!-- TMPL_VAR NAME="title" --><!-- TMPL_ELSE -->No title<!-- /TMPL_IF -->
@@ -328,6 +374,7 @@ function addToList () {
<!-- /TMPL_IF -->
<!-- TMPL_IF name="publishercode" --><!-- TMPL_VAR name="publishercode" --><!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="edition" -->Edition: <!-- TMPL_VAR NAME="edition" --><!-- /TMPL_IF -->
Description:
<!-- TMPL_IF name="place" --> ; <!-- TMPL_VAR name="place" --><!-- /TMPL_IF -->
<!-- TMPL_IF name="publicationyear" -->, <!-- TMPL_VAR name="publicationyear" -->
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbooks.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbooks.tmpl
index e5d7af8..ed5bd42 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbooks.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbooks.tmpl
@@ -62,6 +62,8 @@
<!-- TMPL_IF NAME="isbn" --> - <!-- TMPL_VAR NAME="isbn" --> <!-- /TMPL_IF -->
<!-- TMPL_IF name="publicationyear" --> - <!-- TMPL_VAR name="publicationyear" --><!-- /TMPL_IF -->
<!-- TMPL_IF name="publishercode" -->- <!-- TMPL_VAR name="publishercode" --><!-- /TMPL_IF -->
+ <!-- TMPL_IF name="copyrightdate" --> - <!-- TMPL_VAR name="copyrightdate" --><!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="edition" -->Edition: <!-- TMPL_VAR NAME="edition" --><!-- /TMPL_IF -->
<!-- TMPL_IF name="place" --> ; <!-- TMPL_VAR name="place" --><!-- /TMPL_IF -->
<!-- TMPL_IF name="pages" --> - <!-- TMPL_VAR name="pages" --><!-- /TMPL_IF -->
<!-- TMPL_IF name="size" --> ; <!-- TMPL_VAR name="size" --><!-- /TMPL_IF -->
@@ -125,6 +127,8 @@
<tr>
<th>Title</th>
<th>ISBN</th>
+ <th>Date</th>
+ <th>Edition</th>
<th>coming from</th>
<th>preview</th>
<th> </th>
@@ -134,6 +138,8 @@
<td><!-- TMPL_VAR NAME="title" escape="html" -->
<!-- TMPL_VAR NAME="author" --></td>
<td><!-- TMPL_VAR NAME="isbn" --></td>
+ <td><!-- TMPL_VAR NAME="copyrightdate" --></td>
+ <td><!-- TMPL_VAR NAME="edition" --></td>
<td><!-- TMPL_VAR NAME="file" --></td>
<td> <a href="/cgi-bin/koha/catalogue/showmarc.pl?importid=<!-- TMPL_VAR NAME="id" -->" title="MARC" rel="gb_page_center[600,500]">MARC</a> | <a href="/cgi-bin/koha/catalogue/showmarc.pl?viewas=card&importid=<!-- TMPL_VAR NAME="id" -->" title="MARC" rel="gb_page_center[600,500]">Card</a>
</td>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/z3950_search.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/z3950_search.tmpl
index bfdaf34..4aac772 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/z3950_search.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/z3950_search.tmpl
@@ -94,6 +94,8 @@ $(document).ready(function(){
<th>Server</th>
<th>Title</th>
<th>Author</th>
+ <th>Date</th>
+ <th>Edition</th>
<th>ISBN</th>
<th>LCCN</th>
<th colspan="2">Preview</th>
@@ -106,6 +108,8 @@ $(document).ready(function(){
<td><!-- TMPL_VAR name="server" --></td>
<td><!-- TMPL_VAR NAME="title" escape="html" --></td>
<td><!-- TMPL_VAR NAME="author" --></td>
+ <td><!-- TMPL_VAR NAME="date" --></td>
+ <td><!-- TMPL_VAR NAME="edition" --></td>
<td><!-- TMPL_VAR NAME="isbn" --></td>
<td><!-- TMPL_VAR NAME="lccn" --></td>
<td><a href="/cgi-bin/koha/catalogue/showmarc.pl?importid=<!-- TMPL_VAR NAME="breedingid" -->" title="MARC" rel="gb_page_center[600,500]">MARC</a></td><td><a href="/cgi-bin/koha/catalogue/showmarc.pl?viewas=card&importid=<!-- TMPL_VAR NAME="breedingid" -->" title="MARC" rel="gb_page_center[600,500]">Card</a></td>
diff --git a/reserve/request.pl b/reserve/request.pl
index 496962f..6812d78 100755
--- a/reserve/request.pl
+++ b/reserve/request.pl
@@ -40,6 +40,7 @@ use C4::Koha;
use C4::Circulation;
use C4::Dates qw/format_date/;
use C4::Members;
+use C4::Search; # enabled_staff_search_views
my $dbh = C4::Context->dbh;
my $sth;
@@ -526,6 +527,7 @@ foreach my $biblionumber (@biblionumbers) {
holdsview => 1,
borrower_branchname => $branches->{$borrowerinfo->{'branchcode'}}->{'branchname'},
borrower_branchcode => $borrowerinfo->{'branchcode'},
+ C4::Search::enabled_staff_search_views,
);
$biblioloopiter{biblionumber} = $biblionumber;
diff --git a/tools/viewlog.pl b/tools/viewlog.pl
index e3bdc73..a08c73f 100755
--- a/tools/viewlog.pl
+++ b/tools/viewlog.pl
@@ -30,6 +30,7 @@ use C4::Items;
use C4::Branch;
use C4::Debug;
# use Data::Dumper;
+use C4::Search; # enabled_staff_search_views
use vars qw($debug $cgi_debug);
@@ -98,6 +99,7 @@ $template->param(
DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(),
dateformat => C4::Dates->new()->format(),
debug => $debug,
+ C4::Search::enabled_staff_search_views,
);
#
#### This code was never really used - maybe some day some will fix it ###
--
1.5.6.5
More information about the Koha-patches
mailing list