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