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