Bug 20168: Update of the OPAC bootstrap template to bootstrap v4
[koha.git] / koha-tmpl / opac-tmpl / bootstrap / en / includes / opac-bottom.inc
1 [% USE raw %]
2 [% USE Koha %]
3 [% USE KohaNews %]
4 [%- USE KohaPlugins -%]
5 [% USE Asset %]
6 [% SET opaccredits = KohaNews.get( location => "opaccredits", lang => lang, library => branchcode ) %]
7 [% PROCESS 'html_helpers.inc' %]
8 [% UNLESS ( is_popup ) %]
9         [% SET OpacLangSelectorMode = Koha.Preference('OpacLangSelectorMode') %]
10         [% IF ( opaccredits ) %]
11             <div class="container-fluid">
12                 <div class="row">
13                     <div class="col">
14                         [% PROCESS koha_news_block news => opaccredits %]
15                     </div>
16                 </div>
17             </div>
18         [% END #/ opaccredits %]
19
20         [% IF ( Koha.Preference('OPACReportProblem') && Koha.Preference('KohaAdminEmailAddress') ) || OpacKohaUrl %]
21             <div class="container-fluid">
22                 <div class="row">
23                     <div class="col">
24                         <div id="report-koha-url">
25                             <div class="row justify-content-between">
26                                 [% IF Koha.Preference('OPACReportProblem') && Koha.Preference('KohaAdminEmailAddress') %]
27                                     <div class="col">
28                                         <div id="report_a_problem" class="noprint">
29                                             <a class="koha-url" href="/cgi-bin/koha/opac-reportproblem.pl">Report a problem</a>
30                                         </div>
31                                     </div>
32                                 [% END # / IF Koha.Preference('OPACReportProblem') && Koha.Preference('KohaAdminEmailAddress') %]
33                                 [% IF OpacKohaUrl %]
34                                     <div class="col">
35                                         <div id="koha_url" class="clearfix noprint">
36                                             <p>Powered by
37                                             [% IF template.name.match('opac-main.tt') %]
38                                                 <a class="koha_url" href="http://koha-community.org">Koha</a>
39                                             [% ELSE %]
40                                                 <a class="koha_url" rel="nofollow" href="http://koha-community.org">Koha</a>
41                                             [% END %]</p>
42                                         </div> <!-- /#koha_url -->
43                                     </div> <!-- /.col -->
44                                 [% END # /IF OpacKohaUrl %]
45                             </div> <!-- /.row.justify-content-between -->
46                         </div> <!-- /#report-koha-url -->
47                     </div> <!-- /.col -->
48                 </div> <!-- /.row -->
49             </div> <!-- /.container-fluid -->
50         [% END # / OPACReportProblem || OpacKohaUrl %]
51     </div> <!-- / #wrapper in masthead.inc -->
52
53     [% IF OpacLangSelectorMode == 'both' || OpacLangSelectorMode == 'footer' %]
54         [% IF ( opaclanguagesdisplay ) %]
55             [% IF ( languages_loop && opaclanguagesdisplay ) %]
56                 [% UNLESS ( one_language_enabled ) %]
57                     <footer id="changelanguage"  class="noprint">
58                         <ul class="nav">
59                             <li class="nav-item">
60                                 <span class="navbar-text">Languages:</span>
61                             </li>
62                             [% FOREACH languages_loo IN languages_loop %]
63                                 [% IF ( languages_loo.group_enabled ) %]
64                                     [% IF ( languages_loo.plural ) %]
65                                         <li class="nav-item dropup">
66                                             <a class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="show[% languages_loo.rfc4646_subtag | html %]">
67                                                 [% IF ( languages_loo.native_description ) %]
68                                                     [% languages_loo.native_description | html %]
69                                                 [% ELSE %]
70                                                     [% languages_loo.rfc4646_subtag | html %]
71                                                 [% END %]
72                                             </a><!-- /.nav-link.dropdown-toggle -->
73                                             <div id="sub[% languages_loo.rfc4646_subtag | html %]" class="dropdown-menu" aria-labelledby="show[% languages_loo.rfc4646_subtag | html %]">
74                                                 [% FOREACH sublanguages_loo IN languages_loo.sublanguages_loop %]
75                                                     [% IF ( sublanguages_loo.enabled ) %]
76                                                         [% IF ( sublanguages_loo.sublanguage_current ) %]
77                                                             <a class="dropdown-item" href="#">[% sublanguages_loo.native_description | html %] [% sublanguages_loo.script_description | html %] [% sublanguages_loo.region_description | html %] [% sublanguages_loo.variant_description | html %] ([% sublanguages_loo.rfc4646_subtag | html %])</a>
78                                                         [% ELSE %]
79                                                             <a class="dropdown-item" href="/cgi-bin/koha/opac-changelanguage.pl?language=[% sublanguages_loo.rfc4646_subtag | uri %]"> [% sublanguages_loo.native_description | html %] [% sublanguages_loo.script_description | html %] [% sublanguages_loo.region_description | html %] [% sublanguages_loo.variant_description | html %] ([% sublanguages_loo.rfc4646_subtag | html %])</a>
80                                                         [% END %]
81                                                     [% END # / IF sublanguages_loo.enabled %]
82                                                 [% END # / FOREACH sublanguages_loo %]
83                                             </div> <!-- /#sub[% languages_loo.rfc4646_subtag | html %] -->
84                                         </li> <!-- /.nav-item.dropup -->
85                                     [% ELSE %]
86                                         [% IF ( languages_loo.group_enabled ) %]
87                                             [% IF ( languages_loo.current ) %]
88                                                 <li class="nav-item">
89                                                     <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">
90                                                         [% IF ( languages_loo.native_description ) %]
91                                                             [% languages_loo.native_description | html %]
92                                                         [% ELSE %]
93                                                             [% languages_loo.rfc4646_subtag | html %]
94                                                         [% END %]
95                                                     </a> <!-- /.nav-link -->
96                                                 </li> <!-- /.nav-item -->
97                                             [% ELSE %]
98                                                 <li class="nav-item">
99                                                     <a class="nav-link" href="/cgi-bin/koha/opac-changelanguage.pl?language=[% languages_loo.rfc4646_subtag | uri %]">
100                                                         [% IF ( languages_loo.native_description ) %]
101                                                             [% languages_loo.native_description | html %]
102                                                         [% ELSE %]
103                                                             [% languages_loo.rfc4646_subtag | html %]
104                                                         [% END %]
105                                                     </a> <!-- /.nav-link -->
106                                                 </li> <!-- /.nav-item -->
107                                             [% END # /IF ( languages_loo.current ) %]
108                                         [% END # / IF languages_loo.current %]
109                                     [% END # / IF ( languages_loo.plural ) %]
110                                 [% END # / IF ( languages_loo.group_enabled ) %]
111                             [% END # / FOREACH languages_loo IN languages_loop %]
112                         </ul> <!-- /.nav -->
113                     </footer> <!-- / #changelanguage -->
114                 [% END # / UNLESS ( one_language_enabled ) %]
115             [% END # / IF ( languages_loop && opaclanguagesdisplay ) %]
116         [% END # / IF opaclanguagesdisplay %]
117     [% END # /IF OpacLangSelectorMode == 'both' || OpacLangSelectorMode == 'footer' %]
118 [% END # / UNLESS is_popup %]
119
120 <!-- JavaScript includes -->
121 [% Asset.js("lib/jquery/jquery-3.4.1.min.js") | $raw %]
122 [% Asset.js("lib/jquery/jquery-migrate-3.1.0.min.js") | $raw %]
123 [% Asset.js("lib/jquery/jquery-ui-1.12.1.min.js") | $raw %]
124 <script>
125 // Resolve name collision between jQuery UI and Twitter Bootstrap
126 $.widget.bridge('uitooltip', $.ui.tooltip);
127 </script>
128 [% Asset.js("lib/bootstrap/js/bootstrap.bundle.min.js") | $raw %]
129 [% Asset.js("lib/fontfaceobserver.min.js") | $raw %]
130 [% Asset.js("js/global.js") | $raw %]
131 <script>
132     Modernizr.load([
133         // Test need for polyfill
134         {
135             test: window.matchMedia,
136             nope: "[% Asset.url('lib/media.match.min.js') | $raw %]"
137         },
138         // and then load enquire
139         "[% Asset.url('lib/enquire.min.js') | $raw %]",
140         "[% Asset.url('js/script.js') | $raw %]",
141     ]);
142
143     // Fix for datepicker in a modal
144     $.fn.modal.Constructor.prototype.enforceFocus = function () {};
145 </script>
146 [% IF ( OPACAmazonCoverImages || SyndeticsCoverImages ) %]
147 <script>
148         var NO_AMAZON_IMAGE = _("No cover image available");
149
150 </script>
151 [% Asset.js("js/amazonimages.js") | $raw %]
152 [% END %]
153
154 <script>
155
156     var MSG_CONFIRM_AGAIN = _("Warning: Cannot be undone. Please confirm once again")
157     var MSG_DELETE_SEARCH_HISTORY = _("Are you sure you want to delete your search history?");
158     var MSG_NO_SUGGESTION_SELECTED = _("No suggestion was selected");
159     var MSG_SEARCHING = _("Searching %s...");
160     var MSG_ERROR_SEARCHING_COLLECTION = _("Error searching %s collection");
161     var MSG_NO_RESULTS_FOUND_IN_COLLECTION = _("No results found in the library's %s collection");
162     var MSG_RESULTS_FOUND_IN_COLLECTION = _("Found %s results in the library's %s collection");
163     var MSG_BY = _("by");
164     var MSG_TYPE = _("Type");
165     var MSG_NEXT = _("Next");
166     var MSG_PREVIOUS = _("Previous");
167     var MSG_CHECKOUTS = _("Checkouts");
168     var MSG_NO_CHECKOUTS = _("No checkouts");
169     var MSG_CHECK_OUT = _("Check out");
170     var MSG_CHECK_OUT_CONFIRM = _("Are you sure you want to check out this item?");
171     var MSG_CHECKED_OUT_UNTIL = _("Checked out until %s");
172     var MSG_CHECK_IN = _("Check in");
173     var MSG_CHECK_IN_CONFIRM = _("Are you sure you want to return this item?");
174     var MSG_NO_CHECKOUTS = _("No checkouts");
175     var MSG_DOWNLOAD = _("Download");
176     var MSG_HOLDS = _("Holds");
177     var MSG_NO_HOLDS = _("No holds");
178     var MSG_PLACE_HOLD = _("Place hold");
179     var MSG_CANCEL_HOLD = _("Cancel");
180     var MSG_CANCEL_HOLD_CONFIRM = _("Are you sure you want to cancel this hold?");
181     var MSG_ON_HOLD = _("On hold");
182
183     [% IF ( Koha.Preference( 'opacuserlogin' ) == 1 ) && ( Koha.Preference( 'TagsEnabled' ) == 1 ) %]
184         var MSG_TAGS_DISABLED = _("Sorry, tags are not enabled on this system.");
185         var MSG_TAG_ALL_BAD = _("Error! Your tag was entirely markup code.  It was NOT added.  Please try again with plain text.");
186         var MSG_ILLEGAL_PARAMETER = _("Error! Illegal parameter");
187         var MSG_TAG_SCRUBBED = _("Note: your tag contained markup code that was removed. The tag was added as ");
188         var MSG_ADD_TAG_FAILED = _("Error! Adding tags failed at");
189         var MSG_ADD_TAG_FAILED_NOTE = _("Note: you can only tag an item with a given term once.  Check 'My Tags' to see your current tags.");
190         var MSG_DELETE_TAG_FAILED = _("Error! You cannot delete the tag");
191         var MSG_DELETE_TAG_FAILED_NOTE = _("Note: you can only delete your own tags.")
192         var MSG_LOGIN_REQUIRED = _("You must be logged in to add tags.");
193         var MSG_TAGS_ADDED = _("Tags added: ");
194         var MSG_TAGS_DELETED = _("Tags added: ");
195         var MSG_TAGS_ERRORS = _("Errors: ");
196         var MSG_MULTI_ADD_TAG_FAILED = _("Unable to add one or more tags.");
197         var MSG_NO_TAG_SPECIFIED = _("No tag was specified.");
198     [% END %]
199     [% IF ( Koha.Preference('OverDriveClientKey') && Koha.Preference('OverDriveClientSecret') ) %]
200         var MSG_OVERDRIVE_LOGIN = _("Log in to your OverDrive account");
201         var MSG_OVERDRIVE_LINK = _( "OverDrive account page" );
202         var MSG_OVERDRIVE_LOGOUT = _("Log out from your OverDrive account");
203         var MSG_OVERDRIVE_CHECKEDOUT_UNTIL = _( "Checked out until: " );
204         var MSG_OVERDRIVE_ACCESS_ONLINE = _("Access online");
205         var MSG_OVERDRIVE_DOWNLOAD_AS = _( "Download as: " );
206         var MSG_OVERDRIVE_CANNOT_CHECKOUT = _("Item cannot be checked out. There are no available formats");
207     [% END %]
208     [% IF OpenLibraryCovers || OpenLibrarySearch %]
209         var NO_OL_JACKET = _("No cover image available");
210         var OL_PREVIEW = _("Preview");
211     [% END %]
212     [% IF (query_desc) %]
213         var query_desc = "[% query_desc | html %]";
214         var querystring = "[% querystring | html %]";
215         var query_cgi = "[% query_cgi | html %]";
216     [% END %]
217
218     [% IF ( OPACAmazonCoverImages || SyndeticsCoverImages ) %]
219         $(window).load(function() {
220             verify_images();
221          });
222     [% END %]
223     $(".print-large").on("click",function(){
224         window.print();
225         return false;
226     });
227     $("#ulactioncontainer > ul > li > a.addtoshelf").on("click",function(){
228         Dopop('opac-addbybiblionumber.pl?biblionumber=[% biblionumber | uri %]');
229         return false;
230     });
231     $("body").on("click", ".addtocart", function(e){
232         e.preventDefault();
233         var biblionumber = $(this).data("biblionumber");
234         addRecord( biblionumber );
235     });
236     $("body").on("click", ".cartRemove", function(e){
237         e.preventDefault();
238         var biblionumber = $(this).data("biblionumber");
239         delSingleRecord( biblionumber );
240     });
241     $(".clearsh").on("click", function(){
242         return confirmDelete(MSG_DELETE_SEARCH_HISTORY);
243     });
244
245 </script>
246
247 [% IF Koha.Preference( 'opacbookbag' ) == 1 %]
248     [% Asset.js("js/basket.js") | $raw %]
249 [% ELSIF ( Koha.Preference( 'virtualshelves' ) == 1 ) %]
250     [% Asset.js("js/basket.js") | $raw %]
251 [% ELSE %]
252     <script>var readCookie;</script>
253 [% END %]
254
255 [% IF Koha.Preference( 'opacuserlogin' ) == 1 %][% IF Koha.Preference( 'TagsEnabled' ) == 1 %][% Asset.js("js/tags.js") | $raw %][% END %][% ELSE %][% END %]
256 [% IF ( GoogleJackets ) %]
257     [% Asset.js("js/google-jackets.js") | $raw %]
258     <script>
259
260         var NO_GOOGLE_JACKET = _("No cover image available");
261
262     </script>
263 [% END %]
264 [% IF ( Koha.Preference('OpacCoce') && Koha.Preference('CoceProviders') ) %]
265     [% Asset.js("js/coce.js") | $raw %]
266     <script>
267
268         var NO_COCE_JACKET = _("No cover image available");
269
270     </script>
271 [% END %]
272
273 [% IF OPACLocalCoverImages %]
274     [% Asset.js("js/localcovers.js") | $raw %]
275     <script>
276
277     var NO_LOCAL_JACKET = _("No cover image available");
278
279     </script>
280 [% END %]
281
282 [% IF ( BakerTaylorEnabled ) %]
283     [% Asset.js("js/bakertaylorimages.js") | $raw %]
284     <script>
285
286         var NO_BAKERTAYLOR_IMAGE = _("No cover image available");
287         $(window).load(function(){
288             bt_verify_images();
289         });
290
291     </script>
292 [% END %]
293
294 [% IF Koha.Preference( 'OpacNewsLibrarySelect' ) %]
295 <script>
296     $("#news-branch-select").change(function() {
297         $( "#news-branch-select" ).submit();
298     });
299 </script>
300 [% END %]
301
302 [% IF Koha.Preference('RecordedBooksClientSecret') && Koha.Preference('RecordedBooksLibraryID') %]
303 <script>
304   var SPINNER_THROBBER = "[% interface | html %]/lib/jquery/plugins/themes/classic/throbber.gif";
305 </script>
306 [% END %]
307
308 [% Asset.js("lib/jquery/plugins/jquery.cookie.min.js") | $raw %]
309 <script>
310 $(document).ready(function() {
311     if($('#searchsubmit').length) {
312         $(document).on("click", '#searchsubmit', function(e) {
313             jQuery.removeCookie("form_serialized", { path: '/'});
314             jQuery.removeCookie("form_serialized_limits", { path: '/'});
315             jQuery.removeCookie("num_paragraph", { path: '/'});
316             jQuery.removeCookie("search_path_code", { path: '/'});
317         });
318     }
319 });
320 </script>
321 [% PROCESS jsinclude %]
322 [% IF ( Koha.Preference('OPACUserJS') ) %]
323     <script>
324         [% Koha.Preference('OPACUserJS') | $raw %]
325     </script>
326 [% END %]
327 [% IF SCO_login %]
328     [% SET SCOUserJS = Koha.Preference('SCOUserJS') %]
329     [% IF ( SCOUserJS ) %]
330         <script>
331
332             [% SCOUserJS | $raw %]
333
334         </script>
335     [% END %]
336 [% END %]
337 [% KohaPlugins.get_plugins_opac_js | $raw %]
338 </body>
339 </html>