Fridolin Somers
064d5478d3
This patch fixes two problems with the generation of links to execute a Z39.50 search from the staff client catalog and cataloguing search results page. First, if using URI::Escape 3.30 or earlier, performing a simple search with a double quote (e.g., "histoire algerie"), the Javascript is broken in results page because of : function GetZ3950Terms(){ var strQuery="&frameworkcode="; strQuery += "&" + "title" + "=" + ""histoire%20algerie""; Second, the encoding of non-ASCII characters in the search term was broken. This patch moves URI escaping from Perl to template with uri TT filter. Test plan : - To reproduce the issue with double quotes, the server must be running URI::Escape 3.30 or earlier; the current version of URI::Escape properly escapes double quote. - In staff interface, perform a search with double quotes that will return no result, ie "aaa xxx" => Without patch, javascript is broken => With patch, javascript is not broken - Click on Z3950 button on results page => Without patch, the Title input is empty => With patch, the Title input contains the search terms Additional test: Do a search with something like äöü and then click Z3950 button on results page. Without patch, encoding is broken in Z3950 form With patch, encoding is correct. Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Fixed a few tabs. Passes tests and QA script. I can't reproduce the Javascript problem, but I can reproduce the Z39.50 encoding problem and can detect no regression. Signed-off-by: Galen Charlton <gmc@esilibrary.com>
208 lines
9.2 KiB
Text
208 lines
9.2 KiB
Text
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Cataloging</title>
|
|
[% INCLUDE 'greybox.inc' %]
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
<script type="text/javascript">
|
|
//<![CDATA[
|
|
|
|
$(document).ready(function() {
|
|
$("#z3950search").click(function(){
|
|
PopupZ3950("");
|
|
return false;
|
|
});
|
|
|
|
$(".z3950searchFw").click(function(){
|
|
PopupZ3950($(this).prop('id'));
|
|
return false;
|
|
});
|
|
});
|
|
|
|
/* this function open a popup to search on z3950 server. */
|
|
function PopupZ3950(fw) {
|
|
var strQuery = GetZ3950Terms(fw);
|
|
if(strQuery){
|
|
window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=[% biblionumber %]"+strQuery,"z3950search",'width=760,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes');
|
|
}
|
|
}
|
|
/* provide Z3950 search points */
|
|
function GetZ3950Terms(fw){
|
|
var strQuery="&frameworkcode=" + fw;
|
|
[% FOREACH z3950_search_param IN z3950_search_params %]
|
|
strQuery += "&" + "[% z3950_search_param.name |uri %]" + "=" + "[% z3950_search_param.encvalue |uri %]";
|
|
[% END %]
|
|
return strQuery;
|
|
}
|
|
//]]>
|
|
</script>
|
|
</head>
|
|
<body id="cat_addbooks" class="cat">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'cataloging-search.inc' %]
|
|
|
|
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › Cataloging</div>
|
|
|
|
<div id="doc" class="yui-t7">
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
|
|
[% IF ( CAN_user_editcatalogue_edit_catalogue ) %]
|
|
<div id="toolbar" class="btn-toolbar">
|
|
<div class="btn-group">
|
|
<button class="btn btn-small dropdown-toggle" data-toggle="dropdown"><i class="icon-plus"></i> New record <span class="caret"></span></button>
|
|
<ul class="dropdown-menu">
|
|
<li><a href="/cgi-bin/koha/cataloguing/addbiblio.pl?frameworkcode=">Default framework</a></li>
|
|
[% FOREACH frameworkcodeloo IN frameworkcodeloop %]
|
|
<li><a href="/cgi-bin/koha/cataloguing/addbiblio.pl?frameworkcode=[% frameworkcodeloo.value %]">[% frameworkcodeloo.frameworktext %]</a></li>
|
|
[% END %]
|
|
</ul>
|
|
</div>
|
|
<div class="btn-group">
|
|
<button class="btn btn-small" id="z3950search"><i class="icon-search"></i> New from Z39.50</button>
|
|
<button class="btn btn-small dropdown-toggle" data-toggle="dropdown">
|
|
<span class="caret"></span>
|
|
</button>
|
|
<ul class="dropdown-menu">
|
|
<li id="" class="z3950searchFw"><a href="#">Default framework</a></li>
|
|
[% FOREACH frameworkcodeloo IN frameworkcodeloop %]
|
|
<li id="[% frameworkcodeloo.value %]" class="z3950searchFw"><a href="#">[% frameworkcodeloo.frameworktext %]</a></li>
|
|
[% END %]
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
[% END %]
|
|
|
|
[% IF ( noitemsfound ) %]
|
|
No results found
|
|
[% END %]
|
|
|
|
<!-- display the search results -->
|
|
|
|
[% IF ( total ) %]
|
|
[% total %] result(s) found in catalog,
|
|
<a href="#searchresult-breeding">[% breeding_count %] result(s) found in reservoir</a>
|
|
<div class="pages">[% pagination_bar %]</div>
|
|
<div class="searchresults">
|
|
<table>
|
|
<tr>
|
|
<th>Title</th>
|
|
<th>Location</th>
|
|
<th>Preview</th>
|
|
[% IF ( CAN_user_editcatalogue_edit_catalogue ) %]<th> </th>[% ELSE %][% END %]
|
|
[% IF ( CAN_user_editcatalogue_edit_items ) %]<th> </th>[% END %]
|
|
</tr>
|
|
[% FOREACH resultsloo IN resultsloop %]
|
|
[% IF ( loop.even ) %]
|
|
<tr class="highlight">
|
|
[% ELSE %]
|
|
<tr>
|
|
[% END %]
|
|
<td>
|
|
<p>
|
|
<a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% resultsloo.biblionumber %]">[% resultsloo.title |html %]</a>
|
|
[% FOREACH subtitl IN resultsloo.subtitle %][% subtitl.subfield %][% END %]</p>
|
|
[% IF ( resultsloo.summary ) %]
|
|
<p>[% resultsloo.summary %]</p>
|
|
[% ELSE %]
|
|
<p>
|
|
[% IF ( resultsloo.author ) %]
|
|
[% resultsloo.author %]
|
|
[% ELSE %]
|
|
|
|
[% END %]
|
|
[% IF ( resultsloo.isbn ) %] - [% resultsloo.isbn %] [% END %]
|
|
[% IF ( resultsloo.publicationyear ) %] - [% resultsloo.publicationyear %][% END %]
|
|
[% IF ( resultsloo.publishercode ) %]- [% resultsloo.publishercode %][% END %]
|
|
[% IF ( resultsloo.copyrightdate ) %] - [% resultsloo.copyrightdate %][% END %]
|
|
[% IF ( resultsloo.edition ) %]Edition: [% resultsloo.edition %][% END %]
|
|
[% IF ( resultsloo.place ) %] ; [% resultsloo.place %][% END %]
|
|
[% IF ( resultsloo.pages ) %] - [% resultsloo.pages %][% END %]
|
|
[% IF ( resultsloo.size ) %] ; [% resultsloo.size %][% END %]
|
|
[% IF ( resultsloo.timestamp ) %] <i>(modified on [% resultsloo.timestamp %])</i>[% END %]
|
|
</p>
|
|
[% END %]
|
|
</td>
|
|
<td>
|
|
[% IF ( resultsloo.available_items_loop ) %]
|
|
<span class="available">
|
|
[% FOREACH items_loo IN resultsloo.available_items_loop %]
|
|
[% items_loo.count %] [% items_loo.branchname %]
|
|
<i>
|
|
[% IF ( items_loo.location ) %][% items_loo.location %][% END %]
|
|
[% IF ( items_loo.itemcallnumber ) %][% items_loo.itemcallnumber %][% END %]
|
|
[% IF ( items_loo.classification ) %]
|
|
<a href="/cgi-bin/koha/catalogue/search.pl?q=callnum:[% items_loo.classification |url %]">
|
|
[% items_loo.classification %]
|
|
</a>
|
|
[% END %]
|
|
</i>
|
|
<br />
|
|
[% END %]
|
|
</span>
|
|
[% END %]
|
|
<span class="unavailable">
|
|
[% IF ( resultsloo.onloancount ) %] Checked out ([% resultsloo.onloancount %]),<br /> [% END %]
|
|
[% IF ( resultsloo.withdrawncount ) %] Withdrawn ([% resultsloo.withdrawncount %]),<br /> [% END %]
|
|
[% IF ( resultsloo.itemlostcount ) %] Lost ([% resultsloo.itemlostcount %])<br />[% END %]
|
|
[% IF ( resultsloo.orderedcount ) %] On order ([% resultsloo.orderedcount %])[% END %]
|
|
</span>
|
|
</td>
|
|
<td> <a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% resultsloo.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">MARC</a> | <a href="/cgi-bin/koha/catalogue/showmarc.pl?viewas=card&id=[% resultsloo.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">Card</a>
|
|
</td>
|
|
[% IF ( CAN_user_editcatalogue_edit_catalogue ) %]<td><a href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% resultsloo.biblionumber %]">Edit biblio</a></td>[% END %]
|
|
[% IF ( CAN_user_editcatalogue_edit_items ) %]<td><a href="/cgi-bin/koha/cataloguing/additem.pl?biblionumber=[% resultsloo.biblionumber %]">Add/Edit items</a></td>[% END %]
|
|
</tr>
|
|
[% END %]
|
|
</table>
|
|
</div>
|
|
[% ELSE %]
|
|
[% IF ( query ) %]
|
|
[% IF ( error ) %]<div class="dialog alert">[% END %]<b>No results found</b>
|
|
[% IF ( error ) %]
|
|
Error: <span class="error">[% error %]</span></div>
|
|
[% END %]
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% IF ( query ) %]
|
|
<div id="searchresult-breeding">
|
|
<h3>Biblios in reservoir</h3>
|
|
[% IF ( breeding_loop ) %]
|
|
<table>
|
|
<tr>
|
|
<th>Title</th>
|
|
<th>ISBN</th>
|
|
<th>Date</th>
|
|
<th>Edition</th>
|
|
<th>Coming from</th>
|
|
<th>Preview</th>
|
|
[% IF ( CAN_user_editcatalogue_edit_catalogue ) %]<th> </th>[% END %]
|
|
</tr>
|
|
[% FOREACH breeding_loo IN breeding_loop %]
|
|
[% IF ( loop.odd ) %]
|
|
<tr>
|
|
[% ELSE %]
|
|
<tr class="highlight">
|
|
[% END %]
|
|
<td>[% breeding_loo.title |html %]
|
|
[% breeding_loo.author %]</td>
|
|
<td>[% breeding_loo.isbn %]</td>
|
|
<td>[% breeding_loo.copyrightdate %]</td>
|
|
<td>[% breeding_loo.edition %]</td>
|
|
<td>[% breeding_loo.file %]</td>
|
|
<td> <a href="/cgi-bin/koha/catalogue/showmarc.pl?importid=[% breeding_loo.id %]" title="MARC" rel="gb_page_center[600,500]">MARC</a> | <a href="/cgi-bin/koha/catalogue/showmarc.pl?viewas=card&importid=[% breeding_loo.id %]" title="MARC" rel="gb_page_center[600,500]">Card</a>
|
|
</td>
|
|
[% IF ( CAN_user_editcatalogue_edit_catalogue ) %]<td>
|
|
<a href="/cgi-bin/koha/cataloguing/addbiblio.pl?breedingid=[% breeding_loo.id %]">Add biblio</a>
|
|
</td>[% END %]
|
|
</tr>
|
|
[% END %]
|
|
</table>
|
|
[% ELSE %]
|
|
<p>None</p>
|
|
[% END %]
|
|
</div>
|
|
[% END %]
|
|
</div>
|
|
</div>
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|