Koha/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbooks.tt
Fridolin Somers 064d5478d3 Bug 12071: improve generation of Z39.50 search links
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>
2014-04-18 15:37:56 +00:00

208 lines
9.2 KiB
Text

[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; 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> &rsaquo; 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>&nbsp;</th>[% ELSE %][% END %]
[% IF ( CAN_user_editcatalogue_edit_items ) %]<th>&nbsp;</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 %]
&nbsp;
[% 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&amp;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>&nbsp;</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&amp;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' %]