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