623f1db90a
This addresses comment #13. This also applies cleanly. Signed-off-by: Owen Leonard <oleonard@myacpl.org> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
473 lines
27 KiB
Text
473 lines
27 KiB
Text
[% USE raw %]
|
|
[% USE Koha %]
|
|
[% USE KohaDates %]
|
|
[% USE Asset %]
|
|
[% SET TagsInputEnabled = ( ( Koha.Preference( 'opacuserlogin' ) == 1 ) && TagsEnabled && TagsInputOnList ) %]
|
|
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog › Your cart</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
[% BLOCK cssinclude %]<style type="text/css">.item-status, .dt-buttons { display: inline; } @media print { body { height: 99%; } }</style>[% END %]
|
|
</head>
|
|
[% INCLUDE 'bodytag.inc' bodyid='basket' %]
|
|
<div class="main">
|
|
<div class="container-fluid">
|
|
<div class="row-fluid">
|
|
<div class="span12">
|
|
<div id="userbasket">
|
|
<h2>Your cart</h2>
|
|
<div id="toolbar" class="toolbar noprint">
|
|
[% IF ( verbose ) %]
|
|
<a href="opac-basket.pl" class="brief">Brief display</a>
|
|
[% ELSE %]
|
|
<a href="opac-basket.pl" class="detail">More details</a>
|
|
[% END %]
|
|
[% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
|
|
<a class="send" href="opac-basket.pl">Send</a>
|
|
[% END %]
|
|
<a class="download" href="opac-basket.pl">Download</a>
|
|
<a class="empty" href="opac-basket.pl">Empty and close</a>
|
|
<a class="hide close" href="opac-basket.pl">Hide window</a>
|
|
[% IF ( verbose ) %]
|
|
<a class="print-large" href="#">Print</a>
|
|
[% END %]
|
|
</div>
|
|
|
|
<div id="selections-toolbar" class="toolbar noprint">
|
|
<a id="CheckAll" href="#">Select all</a>
|
|
<a id="CheckNone" href="#">Clear all</a>
|
|
<span class="sep">|</span>
|
|
<span class="links" id="tag_hides">
|
|
<span id="selections">Select titles to: </span>
|
|
<a href="#" class="deleteshelf disabled">Remove</a>
|
|
[% IF ( Koha.Preference( 'opacuserlogin' ) == 1 ) %]
|
|
[% IF ( ( Koha.Preference( 'virtualshelves' ) == 1 ) && loggedinusername ) %]
|
|
<a href="#" class="newshelf disabled">Add to a list</a>
|
|
[% END %]
|
|
[% IF ( Koha.Preference( 'RequestOnOpac' ) == 1 ) %]
|
|
<a href="#" class="hold disabled">Place hold</a>
|
|
[% END %]
|
|
[% IF ( TagsInputEnabled && loggedinusername ) %]
|
|
<a href="#" id="tagsel_tag" class="disabled">Tag</a>
|
|
[% END %]
|
|
[% END # / IF opacuserlogin %]
|
|
</span>
|
|
[% IF ( TagsInputEnabled && loggedinusername ) %]
|
|
<span id="tagsel_form" style="display:none">
|
|
<label for="tagsel_new">New tag:</label>
|
|
<input type="text" name="tagsel_new" id="tagsel_new" maxlength="100" />
|
|
<input id="tagsel_button" name="tagsel_button" class="input tagsel_button" title="Add" type="submit" value="Add">
|
|
<a href="#" id="tagsel_cancel">Cancel</a>
|
|
</span>
|
|
[% END %]
|
|
</div>
|
|
|
|
[% IF ( verbose ) %]
|
|
<form action="opac-basket.pl" method="get" name="bookbag_form" id="bookbag_form" class="checkboxed">
|
|
[% FOREACH BIBLIO_RESULT IN BIBLIO_RESULTS %]
|
|
<h3>
|
|
<input type="checkbox" class="cb" value="[% BIBLIO_RESULT.biblionumber | html %]" name="bib[% BIBLIO_RESULT.biblionumber | html %]" id="bib[% BIBLIO_RESULT.biblionumber | html %]">
|
|
[% BIBLIO_RESULT.title | html %]
|
|
[% IF ( BIBLIO_RESULT.subtitle ) %] [% FOREACH subtitl IN BIBLIO_RESULT.subtitle %] [% subtitl.subfield | html %] [% END %][% END %]
|
|
[% IF ( BIBLIO_RESULT.author ) %] [% BIBLIO_RESULT.author | html %][% END %]
|
|
</h3>
|
|
<!-- COinS / Openurl -->
|
|
<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.au=[% BIBLIO_RESULT.author | html %]&rft.btitle=[% BIBLIO_RESULT.title |url %]&rft.date=[% BIBLIO_RESULT.publicationyear | html %]&rft.tpages=[% BIBLIO_RESULT.item('size') | html %]&rft.isbn=[% BIBLIO_RESULT.isbn |url %]&rft.aucorp=&rft.place=[% BIBLIO_RESULT.place | html %]&rft.pub=[% BIBLIO_RESULT.publisher |url %]&rft.edition=[% BIBLIO_RESULT.edition | html %]&rft.series=[% BIBLIO_RESULT.series | html %]&rft.genre="></span>
|
|
|
|
<table class="table">
|
|
[% IF ( BIBLIO_RESULT.isbn ) %]
|
|
<tr>
|
|
<th scope="row">ISBN</th>
|
|
<td>[% BIBLIO_RESULT.isbn | html %]</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF ( BIBLIO_RESULT.HASAUTHORS ) %]
|
|
<tr>
|
|
<th scope="row">Author(s)</th>
|
|
<td>
|
|
[% IF ( BIBLIO_RESULT.author ) %]
|
|
<p>[% BIBLIO_RESULT.author | html %]</p>
|
|
[% END %]
|
|
[% IF ( BIBLIO_RESULT.MARCAUTHORS ) %]
|
|
[% FOREACH MARCAUTHOR IN BIBLIO_RESULT.MARCAUTHORS %]
|
|
<p> [% FOREACH MARCAUTHOR_SUBFIELDS_LOO IN MARCAUTHOR.MARCAUTHOR_SUBFIELDS_LOOP %]
|
|
[% MARCAUTHOR_SUBFIELDS_LOO.separator | html %]
|
|
[% MARCAUTHOR_SUBFIELDS_LOO.value | html %]
|
|
[% END %]
|
|
</p>
|
|
[% END %]
|
|
[% END %]
|
|
</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF ( BIBLIO_RESULT.publishercode ) %]
|
|
<tr>
|
|
<th scope="row">Publisher</th>
|
|
<td>[% BIBLIO_RESULT.place | html %] [% BIBLIO_RESULT.publishercode | html %] [% BIBLIO_RESULT.publicationyear | html %]
|
|
</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF ( BIBLIO_RESULT.pages ) %]
|
|
<tr>
|
|
<th scope="row">Details</th>
|
|
<td>[% BIBLIO_RESULT.pages | html %] [% BIBLIO_RESULT.illus | html %] [% BIBLIO_RESULT.item('size') | html %]</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF ( BIBLIO_RESULT.seriestitle ) %]
|
|
<tr>
|
|
<th scope="row">Collection</th>
|
|
<td> [% BIBLIO_RESULT.seriestitle | html %]</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF ( BIBLIO_RESULT.MARCSUBJCTS ) %]
|
|
<tr>
|
|
<th scope="row">Subject(s)</th>
|
|
<td>[% FOREACH MARCSUBJCT IN BIBLIO_RESULT.MARCSUBJCTS %]
|
|
<p> [% FOREACH MARCSUBJECT_SUBFIELDS_LOO IN MARCSUBJCT.MARCSUBJECT_SUBFIELDS_LOOP %]
|
|
[% MARCSUBJECT_SUBFIELDS_LOO.separator | html %][% MARCSUBJECT_SUBFIELDS_LOO.value | html %][% END %]
|
|
</p>
|
|
[% END %]</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF ( BIBLIO_RESULT.copyrightdate ) %]
|
|
<tr><th scope="row">Copyright</th>
|
|
<td> [% BIBLIO_RESULT.copyrightdate | html %]</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF ( BIBLIO_RESULT.MARCNOTES ) %]
|
|
<tr>
|
|
<th scope="row">Notes</th>
|
|
<td>
|
|
[% FOREACH MARCNOTE IN BIBLIO_RESULT.MARCNOTES %]
|
|
<p>
|
|
[% IF MARCNOTE.marcnote.match('^https?://\S+$') %]
|
|
- <a href="[% MARCNOTE.marcnote | html %]">[% MARCNOTE.marcnote | html %]</a>
|
|
[% ELSE %]
|
|
- [% MARCNOTE.marcnote | html %]
|
|
[% END %]
|
|
</p>
|
|
[% END %]
|
|
</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF ( BIBLIO_RESULT.unititle ) %]
|
|
<tr>
|
|
<th scope="row">Unified title</th>
|
|
<td> [% BIBLIO_RESULT.unititle | html %]</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF ( BIBLIO_RESULT.serial ) %]
|
|
<tr>
|
|
<th scope="row">Serial</th>
|
|
<td>[% BIBLIO_RESULT.serial | html %]</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF ( BIBLIO_RESULT.dewey ) %]
|
|
<tr>
|
|
<th scope="row">Dewey</th>
|
|
<td>[% BIBLIO_RESULT.dewey | html %]</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF ( BIBLIO_RESULT.classification ) %]
|
|
<tr>
|
|
<th scope="row">Classification</th>
|
|
<td> [% BIBLIO_RESULT.classification | html %]</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF ( BIBLIO_RESULT.lccn ) %]
|
|
<tr>
|
|
<th scope="row">LCCN</th>
|
|
<td> [% BIBLIO_RESULT.lccn | html %]</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
[% IF BIBLIO_RESULT.MARCURLS.size %]
|
|
<tr>
|
|
<th scope="row">URL(s)</th>
|
|
<td>
|
|
[% FOREACH MARCurl IN BIBLIO_RESULT.MARCURLS %]
|
|
[% IF MARCurl.part %]<p>[% MARCurl.part | html %]</p>[% END %]
|
|
|
|
[% IF OPACURLOpenInNewWindow %]
|
|
<a href="[% MARCurl.MARCURL | html %]" title="[% MARCurl.MARCURL | html %]" target="_blank" rel="noreferrer">[% MARCurl.linktext | html %]</a>
|
|
[% ELSE %]
|
|
<a href="[% MARCurl.MARCURL | html %]" title="[% MARCurl.MARCURL | html %]">[% MARCurl.linktext | html %]</a>
|
|
[% END %]
|
|
|
|
[% IF MARCurl.notes %][% FOREACH note IN MARCurl.notes %]<p>[% note.note | html %]</p>[% END %][% END %]
|
|
[% END %]
|
|
</td>
|
|
</tr>
|
|
[% END %]
|
|
|
|
<tr>
|
|
<th scope="row">Location(s) (Status)</th>
|
|
<td>
|
|
[% IF ( BIBLIO_RESULT.ITEM_RESULTS ) %]
|
|
<ul>
|
|
[% FOREACH ITEM_RESULT IN BIBLIO_RESULT.ITEM_RESULTS %]
|
|
<li>
|
|
<strong>[% ITEM_RESULT.branchname | html %]</strong>[% IF ( ITEM_RESULT.location_opac ) %], [% ITEM_RESULT.location_opac | html %][% END %]
|
|
[% IF ( ITEM_RESULT.itemcallnumber ) %]
|
|
([% ITEM_RESULT.itemcallnumber | html %])
|
|
[% END %]
|
|
([% INCLUDE 'item-status.inc' item = ITEM_RESULT %])
|
|
</li>
|
|
[% END %]
|
|
</ul>
|
|
[% ELSE %]
|
|
This record has no items.
|
|
[% END %]
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
[% END # / FOREACH BIBLIO_RESULT %]
|
|
</form>
|
|
|
|
[% ELSE %]
|
|
|
|
<form action="/cgi-bin/koha/opac-basket.pl" method="get" name="bookbag_form" id="bookbag_form" class="checkboxed">
|
|
<table id="itemst" class="table table-bordered table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th class="noprint"> </th>
|
|
<th>Title</th>
|
|
<th>Author</th>
|
|
<th>Year</th>
|
|
<th>Location (Status)</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
[% FOREACH BIBLIO_RESULT IN BIBLIO_RESULTS %]
|
|
<tr>
|
|
<td class="noprint">
|
|
<input type="checkbox" class="cb" value="[% BIBLIO_RESULT.biblionumber | html %]" name="bib[% BIBLIO_RESULT.biblionumber | html %]" id="bib[% BIBLIO_RESULT.biblionumber | html %]">
|
|
</td>
|
|
<td>
|
|
<a href="#" onclick="openBiblio('[% BIBLIO_RESULT.dest | html %]',[% BIBLIO_RESULT.biblionumber | html %])">[% BIBLIO_RESULT.title | html %][% IF ( BIBLIO_RESULT.subtitle ) %] [% FOREACH subtitl IN BIBLIO_RESULT.subtitle %][% subtitl.subfield | html %][% END %][% END %]</a>
|
|
<!-- COinS / Openurl -->
|
|
<span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.au=[% BIBLIO_RESULT.author | html %]&rft.btitle=[% BIBLIO_RESULT.title |url %]&rft.date=[% BIBLIO_RESULT.publicationyear | html %]&rft.tpages=[% BIBLIO_RESULT.item('size') | html %]&rft.isbn=[% BIBLIO_RESULT.isbn |url %]&rft.aucorp=&rft.place=[% BIBLIO_RESULT.place | html %]&rft.pub=[% BIBLIO_RESULT.publisher |url %]&rft.edition=[% BIBLIO_RESULT.edition | html %]&rft.series=[% BIBLIO_RESULT.series | html %]&rft.genre="></span>
|
|
[% IF ( TagsInputEnabled && loggedinusername ) %]
|
|
<span id="newtag[% BIBLIO_RESULT.biblionumber | html %]_status" class="tagstatus results_summary" style="display:none">Tag status here.</span>
|
|
[% END %]
|
|
</td>
|
|
<td>[% BIBLIO_RESULT.author | html %]</td>
|
|
<td>
|
|
[% IF ( BIBLIO_RESULT.publicationyear ) %]
|
|
[% BIBLIO_RESULT.publicationyear | html %]
|
|
[% ELSE %]
|
|
[% BIBLIO_RESULT.copyrightdate | html %]
|
|
[% END %]
|
|
</td>
|
|
<td>[% IF ( BIBLIO_RESULT.ITEM_RESULTS ) %]<ul>[% FOREACH ITEM_RESULT IN BIBLIO_RESULT.ITEM_RESULTS %]
|
|
<li>
|
|
[% ITEM_RESULT.branchname | html %][% IF ( ITEM_RESULT.location_opac ) %], [% ITEM_RESULT.location_opac | html %][% END %]
|
|
[% IF ( ITEM_RESULT.itemcallnumber ) %]
|
|
([% ITEM_RESULT.itemcallnumber | html %])
|
|
[% END %]
|
|
([% INCLUDE 'item-status.inc' item = ITEM_RESULT %])
|
|
</li>
|
|
[% END %]</ul>[% ELSE %]This record has no items.[% END %]
|
|
</td>
|
|
</tr>
|
|
[% END # / FOREACH BIBLIO_RESULT %]
|
|
</tbody>
|
|
</table>
|
|
</form>
|
|
[% END # / verbose %]
|
|
|
|
<form name="myform" action="opac-basket.pl" method="get">
|
|
<input type="hidden" name="records" id="records" />
|
|
</form>
|
|
|
|
</div> <!-- / #userbasket -->
|
|
</div> <!-- / .span10 -->
|
|
</div> <!-- / .row-fluid -->
|
|
</div> <!-- / .container-fluid -->
|
|
</div> <!-- / .main -->
|
|
|
|
[% INCLUDE 'opac-bottom.inc' %]
|
|
|
|
[% BLOCK jsinclude %]
|
|
[% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %]
|
|
[% INCLUDE 'datatables.inc' %]
|
|
<script>
|
|
//<![CDATA[
|
|
|
|
[% IF ( TagsInputEnabled && loggedinusername ) %]
|
|
function tagSelected() {
|
|
var bibs = document.getElementById('records').value;
|
|
if (bibs) {
|
|
$("#tagsel_tag").hide();
|
|
$("#tag_hides").hide();
|
|
$("#tagsel_form").show();
|
|
} else {
|
|
alert(MSG_NO_RECORD_SELECTED);
|
|
}
|
|
}
|
|
|
|
function tagCanceled() {
|
|
$("#tagsel_form").hide();
|
|
$("#tagsel_tag").show();
|
|
$("#tag_hides").show();
|
|
$("#tagsel_new").val("");
|
|
$(".tagstatus").empty().hide();
|
|
}
|
|
|
|
function tagAdded() {
|
|
var checkedBoxes = $("input:checkbox:checked");
|
|
if (!$(checkedBoxes).size()) {
|
|
alert(MSG_NO_RECORD_SELECTED);
|
|
return false;
|
|
}
|
|
|
|
var tag = $("#tagsel_new").val();
|
|
if (!tag || (tag == "")) {
|
|
alert(MSG_NO_TAG_SPECIFIED);
|
|
return false;
|
|
}
|
|
|
|
var bibs = [];
|
|
for (var i = 0; i < $(checkedBoxes).size(); i++) {
|
|
var box = $(checkedBoxes).get(i);
|
|
bibs[i] = $(box).val();
|
|
}
|
|
|
|
KOHA.Tags.add_multitags_button(bibs, tag);
|
|
return false;
|
|
}
|
|
[% END # / TagsInputEnabled && loggedinusername %]
|
|
|
|
$(document).ready(function(){
|
|
$(".brief").click(function(e){
|
|
e.preventDefault();
|
|
showLess();
|
|
});
|
|
|
|
$(".detail").click(function(e){
|
|
e.preventDefault();
|
|
showMore();
|
|
});
|
|
|
|
$(".send").click(function(e){
|
|
e.preventDefault();
|
|
sendBasket();
|
|
});
|
|
|
|
$(".download").click(function(e){
|
|
e.preventDefault();
|
|
downloadBasket();
|
|
});
|
|
|
|
$(".empty").click(function(e){
|
|
e.preventDefault();
|
|
delBasket();
|
|
});
|
|
|
|
$(".deleteshelf").click(function(e){
|
|
e.preventDefault();
|
|
delSelRecords();
|
|
});
|
|
|
|
$(".newshelf").click(function(e){
|
|
e.preventDefault();
|
|
addSelToShelf();
|
|
});
|
|
|
|
$(".hold").click(function(e){
|
|
e.preventDefault();
|
|
holdSel();
|
|
});
|
|
|
|
$("#tagsel_tag").click(function(e){
|
|
e.preventDefault();
|
|
tagSelected();
|
|
});
|
|
|
|
$("#tagsel_button").click(function(e){
|
|
e.preventDefault();
|
|
tagAdded();
|
|
});
|
|
|
|
$("#tagsel_cancel").click(function(e){
|
|
e.preventDefault();
|
|
tagCanceled();
|
|
});
|
|
|
|
$("#CheckAll").click(function(){
|
|
var checked = [];
|
|
$(".checkboxed").checkCheckboxes("*", true).each(
|
|
function() {
|
|
selRecord(this.value,true);
|
|
}
|
|
);
|
|
enableCheckboxActions();
|
|
return false;
|
|
});
|
|
|
|
$("#CheckNone").click(function(){
|
|
var checked = [];
|
|
$(".checkboxed").unCheckCheckboxes("*",true).each(
|
|
function() {
|
|
selRecord(this.value,false);
|
|
}
|
|
);
|
|
enableCheckboxActions();
|
|
return false;
|
|
});
|
|
|
|
var itemst = $("#itemst").dataTable($.extend(true, {}, dataTablesDefaults, {
|
|
"order": [[ 1, "asc" ]],
|
|
"columnDefs": [
|
|
{ "targets": [ 0,-1 ], "sortable": false, "searchable": false }
|
|
],
|
|
"columns": [
|
|
null,
|
|
{ "type": "anti-the" },
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
|
|
}));
|
|
|
|
var buttons = new $.fn.dataTable.Buttons(itemst, {
|
|
buttons: [
|
|
'print'
|
|
]
|
|
}).container().appendTo($('#toolbar'));
|
|
|
|
$(".cb").change(function(){
|
|
selRecord( $(this).val(), $(this).prop("checked") );
|
|
enableCheckboxActions();
|
|
return false;
|
|
});
|
|
enableCheckboxActions();
|
|
});
|
|
|
|
function enableCheckboxActions(){
|
|
// Enable/disable controls if checkboxes are checked
|
|
var checkedBoxes = $(".checkboxed input:checkbox:checked");
|
|
if ($(checkedBoxes).size()) {
|
|
$("#selections").html(_("With selected titles: "));
|
|
$("#selections-toolbar .links a").removeClass("disabled");
|
|
} else {
|
|
$("#selections").html(_("Select titles to: "));
|
|
$("#selections-toolbar .links a").addClass("disabled");
|
|
}
|
|
}
|
|
//]]>
|
|
</script>
|
|
[% END # / BLOCK jsinclude %]
|