Bug 19708: Improve code for printing the cart in OPAC
[koha.git] / koha-tmpl / opac-tmpl / bootstrap / en / modules / opac-basket.tt
1 [% USE Koha %]
2 [% USE KohaDates %]
3 [% SET TagsInputEnabled = ( ( Koha.Preference( 'opacuserlogin' ) == 1 ) && TagsEnabled && TagsInputOnList ) %]
4
5 [% INCLUDE 'doc-head-open.inc' %]
6 <title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog &rsaquo; Your cart</title>
7 [% INCLUDE 'doc-head-close.inc' %]
8 [% BLOCK cssinclude %]<style type="text/css">.item-status { display: inline; } @media print { body { height: 99%; } }</style>[% END %]
9 </head>
10 [% INCLUDE 'bodytag.inc' bodyid='basket' %]
11     <div class="main">
12         <div class="container-fluid">
13             <div class="row-fluid">
14                 <div class="span12">
15                     <div id="userbasket">
16                         <h2>Your cart</h2>
17                             <div id="toolbar" class="toolbar">
18                                 [% IF ( verbose ) %]
19                                     <a href="opac-basket.pl" class="brief">Brief display</a>
20                                 [% ELSE %]
21                                     <a href="opac-basket.pl" class="detail">More details</a>
22                                 [% END %]
23                                 [% IF Koha.Preference( 'opacuserlogin' ) == 1 %]
24                                     <a class="send" href="opac-basket.pl">Send</a>
25                                 [% END %]
26                                 <a class="download" href="opac-basket.pl">Download</a>
27                                 <a class="print-large" href="#">Print</a>
28                                 <a class="empty" href="opac-basket.pl">Empty and close</a>
29                                 <a class="hide close" href="opac-basket.pl">Hide window</a>
30                             </div>
31
32                             <div id="selections-toolbar" class="toolbar">
33                                 <a id="CheckAll" href="#">Select all</a>
34                                 <a id="CheckNone" href="#">Clear all</a>
35                                 <span class="sep">|</span>
36                                 <span class="links" id="tag_hides">
37                                     <span id="selections">Select titles to: </span>
38                                     <a href="#" class="deleteshelf disabled">Remove</a>
39                                     [% IF ( Koha.Preference( 'opacuserlogin' ) == 1 ) %]
40                                         [% IF ( ( Koha.Preference( 'virtualshelves' ) == 1 ) && loggedinusername ) %]
41                                             <a href="#" class="newshelf disabled">Add to a list</a>
42                                         [% END %]
43                                         [% IF ( Koha.Preference( 'RequestOnOpac' ) == 1 ) %]
44                                             <a href="#" class="hold disabled">Place hold</a>
45                                         [% END %]
46                                         [% IF ( TagsInputEnabled && loggedinusername ) %]
47                                             <a href="#" id="tagsel_tag" class="disabled">Tag</a>
48                                         [% END %]
49                                     [% END # / IF opacuserlogin %]
50                                 </span>
51                                 [% IF ( TagsInputEnabled && loggedinusername ) %]
52                                 <span id="tagsel_form" style="display:none">
53                                     <label for="tagsel_new">New tag:</label>
54                                     <input name="tagsel_new" id="tagsel_new" maxlength="100" />
55                                     <input id="tagsel_button" name="tagsel_button" class="input tagsel_button" title="Add" type="submit" value="Add">
56                                     <a href="#" id="tagsel_cancel">Cancel</a>
57                                 </span>
58                                 [% END %]
59                             </div>
60
61                         [% IF ( verbose ) %]
62                             <form action="opac-basket.pl" method="get" name="bookbag_form" id="bookbag_form" class="checkboxed">
63                                 [% FOREACH BIBLIO_RESULT IN BIBLIO_RESULTS %]
64                                     <h3>
65                                                 <input type="checkbox" class="cb" value="[% BIBLIO_RESULT.biblionumber %]" name="bib[% BIBLIO_RESULT.biblionumber %]" id="bib[% BIBLIO_RESULT.biblionumber %]">
66                                                 [% BIBLIO_RESULT.title |html %]
67                                                 [% IF ( BIBLIO_RESULT.subtitle ) %] [% FOREACH subtitl IN BIBLIO_RESULT.subtitle %] [% subtitl.subfield |html %] [% END %][% END %]
68                                                 [% IF ( BIBLIO_RESULT.author ) %] [% BIBLIO_RESULT.author |html %][% END %]
69                                     </h3>
70                                     <!-- COinS / Openurl -->
71                                     <span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.au=[% BIBLIO_RESULT.author %]&amp;rft.btitle=[% BIBLIO_RESULT.title |url %]&amp;rft.date=[% BIBLIO_RESULT.publicationyear %]&amp;rft.tpages=[% BIBLIO_RESULT.item('size') %]&amp;rft.isbn=[% BIBLIO_RESULT.isbn |url %]&amp;rft.aucorp=&amp;rft.place=[% BIBLIO_RESULT.place %]&amp;rft.pub=[% BIBLIO_RESULT.publisher |url %]&amp;rft.edition=[% BIBLIO_RESULT.edition %]&amp;rft.series=[% BIBLIO_RESULT.series %]&amp;rft.genre="></span>
72
73                                     <table class="table">
74                                         [% IF ( BIBLIO_RESULT.isbn ) %]
75                                             <tr>
76                                                 <th scope="row">ISBN</th>
77                                                 <td>[% BIBLIO_RESULT.isbn %]</td>
78                                             </tr>
79                                         [% END %]
80
81                                         [% IF ( BIBLIO_RESULT.HASAUTHORS ) %]
82                                         <tr>
83                                             <th scope="row">Author(s)</th>
84                                             <td>
85                                                [% IF ( BIBLIO_RESULT.author ) %]
86                                                    <p>[% BIBLIO_RESULT.author %]</p>
87                                                [% END %]
88                                                [% IF ( BIBLIO_RESULT.MARCAUTHORS ) %]
89                                                    [% FOREACH MARCAUTHOR IN BIBLIO_RESULT.MARCAUTHORS %]
90                                                    <p> [% FOREACH MARCAUTHOR_SUBFIELDS_LOO IN MARCAUTHOR.MARCAUTHOR_SUBFIELDS_LOOP %]
91                                                           [% MARCAUTHOR_SUBFIELDS_LOO.separator %]
92                                                               [% MARCAUTHOR_SUBFIELDS_LOO.value %]
93                                                        [% END %]
94                                                    </p>
95                                                    [% END %]
96                                                [% END %]
97                                             </td>
98                                         </tr>
99                                         [% END %]
100
101                                         [% IF ( BIBLIO_RESULT.publishercode ) %]
102                                             <tr>
103                                                 <th scope="row">Publisher</th>
104                                                 <td>[% BIBLIO_RESULT.place %] [% BIBLIO_RESULT.publishercode %] [% BIBLIO_RESULT.publicationyear %]
105                                                 </td>
106                                             </tr>
107                                         [% END %]
108
109                                         [% IF ( BIBLIO_RESULT.pages ) %]
110                                             <tr>
111                                                 <th scope="row">Details</th>
112                                                 <td>[% BIBLIO_RESULT.pages %] [% BIBLIO_RESULT.illus %] [% BIBLIO_RESULT.item('size') %]</td>
113                                             </tr>
114                                         [% END %]
115
116                                         [% IF ( BIBLIO_RESULT.seriestitle ) %]
117                                         <tr>
118                                             <th scope="row">Collection</th>
119                                             <td> [% BIBLIO_RESULT.seriestitle %]</td>
120                                         </tr>
121                                         [% END %]
122
123                                         [% IF ( BIBLIO_RESULT.MARCSUBJCTS ) %]
124                                         <tr>
125                                             <th scope="row">Subject(s)</th>
126                                             <td>[% FOREACH MARCSUBJCT IN BIBLIO_RESULT.MARCSUBJCTS %]
127                                                    <p> [% FOREACH MARCSUBJECT_SUBFIELDS_LOO IN MARCSUBJCT.MARCSUBJECT_SUBFIELDS_LOOP %]
128                                                         [% MARCSUBJECT_SUBFIELDS_LOO.separator %][% MARCSUBJECT_SUBFIELDS_LOO.value %][% END %]
129                                                    </p>
130                                                 [% END %]</td>
131                                         </tr>
132                                         [% END %]
133
134                                         [% IF ( BIBLIO_RESULT.copyrightdate ) %]
135                                             <tr><th scope="row">Copyright</th>
136                                                 <td> [% BIBLIO_RESULT.copyrightdate %]</td>
137                                             </tr>
138                                         [% END %]
139
140                                         [% IF ( BIBLIO_RESULT.MARCNOTES ) %]
141                                             <tr>
142                                                 <th scope="row">Notes</th>
143                                                 <td>
144                                                 [% FOREACH MARCNOTE IN BIBLIO_RESULT.MARCNOTES %]
145                                                     <p>
146                                                     [% IF MARCNOTE.marcnote.match('^https?://\S+$') %]
147                                                         - <a href="[% MARCNOTE.marcnote %]">[% MARCNOTE.marcnote %]</a>
148                                                     [% ELSE %]
149                                                         - [% MARCNOTE.marcnote %]
150                                                     [% END %]
151                                                     </p>
152                                                 [% END %]
153                                                 </td>
154                                             </tr>
155                                         [% END %]
156
157                                         [% IF ( BIBLIO_RESULT.unititle ) %]
158                                             <tr>
159                                                 <th scope="row">Unified title</th>
160                                                 <td> [% BIBLIO_RESULT.unititle %]</td>
161                                             </tr>
162                                         [% END %]
163
164                                         [% IF ( BIBLIO_RESULT.serial ) %]
165                                             <tr>
166                                                 <th scope="row">Serial</th>
167                                                 <td>[% BIBLIO_RESULT.serial %]</td>
168                                             </tr>
169                                         [% END %]
170
171                                         [% IF ( BIBLIO_RESULT.dewey ) %]
172                                             <tr>
173                                                 <th scope="row">Dewey</th>
174                                                 <td>[% BIBLIO_RESULT.dewey %]</td>
175                                             </tr>
176                                         [% END %]
177
178                                         [% IF ( BIBLIO_RESULT.classification ) %]
179                                             <tr>
180                                                 <th scope="row">Classification</th>
181                                                 <td> [% BIBLIO_RESULT.classification %]</td>
182                                             </tr>
183                                         [% END %]
184
185                                         [% IF ( BIBLIO_RESULT.lccn ) %]
186                                             <tr>
187                                                 <th scope="row">LCCN</th>
188                                                 <td> [% BIBLIO_RESULT.lccn %]</td>
189                                             </tr>
190                                         [% END %]
191
192                                         [% IF BIBLIO_RESULT.MARCURLS.size %]
193                                             <tr>
194                                                 <th scope="row">URL(s)</th>
195                                                 <td>
196                                                    [% FOREACH MARCurl IN BIBLIO_RESULT.MARCURLS %]
197                                                         [% IF MARCurl.part %]<p>[% MARCurl.part %]</p>[% END %]
198
199                                                         [% IF OPACURLOpenInNewWindow %]
200                                                             <a href="[% MARCurl.MARCURL %]" title="[% MARCurl.MARCURL %]" target="_blank" rel="noreferrer">[% MARCurl.linktext %]</a>
201                                                         [% ELSE %]
202                                                             <a href="[% MARCurl.MARCURL %]" title="[% MARCurl.MARCURL %]">[% MARCurl.linktext %]</a>
203                                                         [% END %]
204
205                                                         [% IF MARCurl.notes %][% FOREACH note IN MARCurl.notes %]<p>[% note.note %]</p>[% END %][% END %]
206                                                     [% END %]
207                                                 </td>
208                                             </tr>
209                                         [% END %]
210
211                                         <tr>
212                                             <th scope="row">Location(s) (Status)</th>
213                                             <td>
214                                                 [% IF ( BIBLIO_RESULT.ITEM_RESULTS ) %]
215                                                     <ul>
216                                                         [% FOREACH ITEM_RESULT IN BIBLIO_RESULT.ITEM_RESULTS %]
217                                                             <li>
218                                                                 <strong>[% ITEM_RESULT.branchname %]</strong>[% IF ( ITEM_RESULT.location_opac ) %], [% ITEM_RESULT.location_opac %][% END %]
219                                                                 [% IF ( ITEM_RESULT.itemcallnumber ) %]
220                                                                     ([% ITEM_RESULT.itemcallnumber %])
221                                                                 [% END %]
222                                                                 ([% INCLUDE 'item-status.inc' item = ITEM_RESULT %])
223                                                             </li>
224                                                         [% END %]
225                                                     </ul>
226                                                 [% ELSE %]
227                                                     This record has no items.
228                                                 [% END %]
229                                             </td>
230                                         </tr>
231                                     </table>
232                                 [% END # / FOREACH BIBLIO_RESULT %]
233                             </form>
234
235                         [% ELSE %]
236
237                             <form action="/cgi-bin/koha/opac-basket.pl" method="get" name="bookbag_form" id="bookbag_form" class="checkboxed">
238                                 <table id="itemst" class="table table-bordered table-striped">
239                                     <thead>
240                                         <tr>
241                                             <th class="noprint">&nbsp;</th>
242                                             <th>Title</th>
243                                             <th>Author</th>
244                                             <th>Year</th>
245                                             <th>Location (Status)</th>
246                                         </tr>
247                                     </thead>
248                                     <tbody>
249                                     [% FOREACH BIBLIO_RESULT IN BIBLIO_RESULTS %]
250                                         <tr>
251                                                 <td class="noprint">
252                                                 <input type="checkbox" class="cb" value="[% BIBLIO_RESULT.biblionumber %]" name="bib[% BIBLIO_RESULT.biblionumber %]" id="bib[% BIBLIO_RESULT.biblionumber %]">
253                                                 </td>
254                                             <td>
255                                                 <a href="#" onclick="openBiblio('[% BIBLIO_RESULT.dest %]',[% BIBLIO_RESULT.biblionumber %])">[% BIBLIO_RESULT.title |html %][% IF ( BIBLIO_RESULT.subtitle ) %] [% FOREACH subtitl IN BIBLIO_RESULT.subtitle %][% subtitl.subfield |html %][% END %][% END %]</a>
256                                                 <!-- COinS / Openurl -->
257                                                 <span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.au=[% BIBLIO_RESULT.author %]&amp;rft.btitle=[% BIBLIO_RESULT.title |url %]&amp;rft.date=[% BIBLIO_RESULT.publicationyear %]&amp;rft.tpages=[% BIBLIO_RESULT.item('size') %]&amp;rft.isbn=[% BIBLIO_RESULT.isbn |url %]&amp;rft.aucorp=&amp;rft.place=[% BIBLIO_RESULT.place %]&amp;rft.pub=[% BIBLIO_RESULT.publisher |url %]&amp;rft.edition=[% BIBLIO_RESULT.edition %]&amp;rft.series=[% BIBLIO_RESULT.series %]&amp;rft.genre="></span>
258                                                 [% IF ( TagsInputEnabled && loggedinusername ) %]
259                                                 <span id="newtag[% BIBLIO_RESULT.biblionumber %]_status" class="tagstatus results_summary" style="display:none">Tag status here.</span>
260                                                 [% END %]
261                                             </td>
262                                             <td>[% BIBLIO_RESULT.author %]</td>
263                                             <td>
264                                                 [% IF ( BIBLIO_RESULT.publicationyear ) %]
265                                                     [% BIBLIO_RESULT.publicationyear %]
266                                                 [% ELSE %]
267                                                     [% BIBLIO_RESULT.copyrightdate %]
268                                                 [% END %]
269                                             </td>
270                                             <td>[% IF ( BIBLIO_RESULT.ITEM_RESULTS ) %]<ul>[% FOREACH ITEM_RESULT IN BIBLIO_RESULT.ITEM_RESULTS %]
271                                                 <li>
272                                                     [% ITEM_RESULT.branchname %][% IF ( ITEM_RESULT.location_opac ) %], [% ITEM_RESULT.location_opac %][% END %]
273                                                     [% IF ( ITEM_RESULT.itemcallnumber ) %]
274                                                         ([% ITEM_RESULT.itemcallnumber %])
275                                                     [% END %]
276                                                     ([% INCLUDE 'item-status.inc' item = ITEM_RESULT %])
277                                                 </li>
278                                                 [% END %]</ul>[% ELSE %]This record has no items.[% END %]
279                                             </td>
280                                         </tr>
281                                     [% END # / FOREACH BIBLIO_RESULT %]
282                                     </tbody>
283                                 </table>
284                             </form>
285                         [% END # / verbose %]
286
287                             <form name="myform" action="opac-basket.pl" method="get">
288                                 <input type="hidden" name="records" id="records" />
289                             </form>
290
291                 </div> <!-- / #userbasket -->
292             </div> <!-- / .span10 -->
293         </div> <!-- / .row-fluid -->
294     </div> <!-- / .container-fluid -->
295 </div> <!-- / .main -->
296
297 [% INCLUDE 'opac-bottom.inc' %]
298
299 [% BLOCK jsinclude %]
300         <script type="text/javascript" src="[% interface %]/[% theme %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
301         [% INCLUDE 'datatables.inc' %]
302         <script type="text/javascript">
303             //<![CDATA[
304
305             [% IF ( TagsInputEnabled && loggedinusername ) %]
306                 function tagSelected() {
307                     var bibs = document.getElementById('records').value;
308                     if (bibs) {
309                         $("#tagsel_tag").hide();
310                         $("#tag_hides").hide();
311                         $("#tagsel_form").show();
312                     } else {
313                         alert(MSG_NO_RECORD_SELECTED);
314                     }
315                 }
316
317                 function tagCanceled() {
318                     $("#tagsel_form").hide();
319                     $("#tagsel_tag").show();
320                     $("#tag_hides").show();
321                     $("#tagsel_new").val("");
322                     $(".tagstatus").empty().hide();
323                 }
324
325                 function tagAdded() {
326                     var checkedBoxes = $("input:checkbox:checked");
327                     if (!$(checkedBoxes).size()) {
328                         alert(MSG_NO_RECORD_SELECTED);
329                         return false;
330                     }
331
332                     var tag = $("#tagsel_new").val();
333                     if (!tag || (tag == "")) {
334                         alert(MSG_NO_TAG_SPECIFIED);
335                         return false;
336                     }
337
338                     var bibs = [];
339                     for (var i = 0; i < $(checkedBoxes).size(); i++) {
340                         var box = $(checkedBoxes).get(i);
341                         bibs[i] = $(box).val();
342                     }
343
344                     KOHA.Tags.add_multitags_button(bibs, tag);
345                     return false;
346                 }
347             [% END # / TagsInputEnabled && loggedinusername %]
348
349             $(document).ready(function(){
350                 $(".brief").click(function(e){
351                     e.preventDefault();
352                     showLess();
353                 });
354
355                 $(".detail").click(function(e){
356                     e.preventDefault();
357                     showMore();
358                 });
359
360                 $(".send").click(function(e){
361                     e.preventDefault();
362                     sendBasket();
363                 });
364
365                 $(".download").click(function(e){
366                     e.preventDefault();
367                     downloadBasket();
368                 });
369
370                 $(".empty").click(function(e){
371                     e.preventDefault();
372                     delBasket();
373                 });
374
375                 $(".deleteshelf").click(function(e){
376                     e.preventDefault();
377                     delSelRecords();
378                 });
379
380                 $(".newshelf").click(function(e){
381                     e.preventDefault();
382                     addSelToShelf();
383                 });
384
385                 $(".hold").click(function(e){
386                     e.preventDefault();
387                     holdSel();
388                 });
389
390                 $("#tagsel_tag").click(function(e){
391                     e.preventDefault();
392                     tagSelected();
393                 });
394
395                 $("#tagsel_button").click(function(e){
396                     e.preventDefault();
397                     tagAdded();
398                 });
399
400                 $("#tagsel_cancel").click(function(e){
401                     e.preventDefault();
402                     tagCanceled();
403                 });
404
405                 $("#CheckAll").click(function(){
406                     var checked = [];
407                     $(".checkboxed").checkCheckboxes("*", true).each(
408                         function() {
409                             selRecord(this.value,true);
410                         }
411                     );
412                     enableCheckboxActions();
413                     return false;
414                 });
415
416                 $("#CheckNone").click(function(){
417                     var checked = [];
418                     $(".checkboxed").unCheckCheckboxes("*",true).each(
419                         function() {
420                             selRecord(this.value,false);
421                         }
422                     );
423                     enableCheckboxActions();
424                     return false;
425                 });
426
427                 $("#itemst").dataTable($.extend(true, {}, dataTablesDefaults, {
428                     "aaSorting": [[ 1, "asc" ]],
429                     "aoColumnDefs": [
430                       { "aTargets": [ 0,-1 ], "bSortable": false, "bSearchable": false }
431                     ],
432                     "aoColumns": [
433                         null,
434                         { "sType": "anti-the" },
435                         null,
436                         null,
437                         null
438                     ]
439                 }));
440
441                 $(".cb").change(function(){
442                     selRecord( $(this).val(), $(this).prop("checked") );
443                     enableCheckboxActions();
444                     return false;
445                 });
446                 enableCheckboxActions();
447             });
448
449             function enableCheckboxActions(){
450                 // Enable/disable controls if checkboxes are checked
451                 var checkedBoxes = $(".checkboxed input:checkbox:checked");
452                 if ($(checkedBoxes).size()) {
453                   $("#selections").html(_("With selected titles: "));
454                   $("#selections-toolbar .links a").removeClass("disabled");
455                 } else {
456                   $("#selections").html(_("Select titles to: "));
457                   $("#selections-toolbar .links a").addClass("disabled");
458                 }
459             }
460             //]]>
461         </script>
462 [% END # / BLOCK jsinclude %]