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