0e35c0fae4c7fdeec48bb554380f41c7a39804db
[evergreen-equinox.git] / Open-ILS / src / templates / opac / parts / js.tt2
1 <!-- JS imports, etc.  -->
2 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/simple.js[% ctx.cache_key %]"></script>
3 [% INCLUDE "opac/i18n_strings.tt2" %]
4
5 [% IF ctx.want_jquery || ctx.readonly %]
6 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/common/build/js/jquery.min.js[% ctx.cache_key %]"></script>
7 [% END; # ctx.want_jquery %]
8
9 [% IF ctx.readonly %]
10 <script type="text/javascript">
11   $(document).ready(function() {
12     $('a').removeAttr('href');
13     $('a').click(function(event) { event.preventDefault(); });
14     $('button').prop('disabled', true);
15     $('button').click(function(event) { event.preventDefault(); });
16     $('input').prop('disabled', true);
17     $('input').click(function(event) { event.preventDefault(); });
18     $('select').prop('disabled', true);
19     $('select').click(function(event) { event.preventDefault(); });
20     $('textarea').prop('disabled', true);
21     $('textarea').click(function(event) { event.preventDefault(); });
22   });
23 </script>
24 [% END %]
25
26 [% IF ctx.get_org_setting(ctx.search_ou, 'opac.patron.custom_jquery') %]
27 [%     custom_jquery = ctx.get_org_setting(ctx.search_ou, 'opac.patron.custom_jquery') %]
28 [%     '<script>'; custom_jquery ; '</script>' %]                                          
29 [% END %]
30
31 <!-- DOB validation for Patron Registration in OPAC -->
32 <script type="text/javascript">
33     function dobValidate(input) {
34         var validformat = /^(19|20)\d\d([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])$/
35         var returnval = false
36         if (input.value != '' && !validformat.test(input.value))
37             alert("[% l('You have entered an invalid date, or an improperly formatted date.  Please enter Date of Birth in YYYY-MM-DD or YYYY/MM/DD format and try again.') %]")
38         else
39             returnval = true
40         if (returnval == false) input.select()
41         return returnval
42 }
43 </script>
44
45 <!-- Password Visibility Checkbox -->
46 <script>
47     let checkbox = document.getElementById('password_visibility_checkbox');
48     let input = document.getElementById('password_field');
49     checkbox.addEventListener('change', () => {
50         if(checkbox.checked) input.type = 'text';
51         else input.type = 'password';
52         input.focus();
53     });
54 </script>
55
56 [%- IF ctx.use_stripe %]
57 <script type="text/javascript">unHideMe($("pay_fines_now"));[%# the DOM is loaded now, right? %]</script>
58 [% END -%]
59
60 [%- IF ctx.is_staff %]
61 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/staff.js[% ctx.cache_key %]"></script>
62     [% IF ctx.page == 'record' %]
63         [% IF ctx.search_result_index >= 0 %]
64         <script>
65             rdetail_next_prev_actions(
66                 "[% ctx.search_result_index %]",
67                 "[% ctx.hit_count %]",
68                 "[% ctx.prev_rec_url || '' %]",
69                 "[% ctx.next_rec_url || '' %]",
70                 "[% mkurl(ctx.first_search_record, {page => 0}) %]",
71                 "[% mkurl(ctx.opac_root _ '/results', {find_last => 1, page => POSIX.floor(ctx.hit_count / ctx.page_size)}) %]",
72                 "[% mkurl(ctx.opac_root _ '/results', {}, ['expand','cnoffset']) %]"
73             );
74         </script>
75         [% END %]
76         [% IF ctx.mfhd_summaries.size %]
77         <script>
78             window.mfhdDetails = [
79                 [% FOR summary IN ctx.mfhd_summaries %]
80                     [% IF summary.sre_id != -1 %]
81                 {
82                     'id' : '[% summary.sre_id %]', 
83                     'label' : '[% summary.location | replace("'", "\\'") %]',
84                     'entryNum' : [% loop.index %],
85                     'owning_lib' : '[% summary.owning_lib %]'
86                 },
87                     [% END %]
88                 [% END %]
89             ];
90         </script>
91         [% END %]
92     [% END %]
93 [%- END %]
94
95 [%- IF ENV.OILS_NOVELIST_URL AND ctx.page == 'record';
96     url = ENV.OILS_NOVELIST_URL;
97     IF CGI.https; url = url.replace('^http:', 'https:'); END; %]
98 <script type='text/javascript' id='EIT' src='[% url %]'></script>
99 [%- END %]
100 [%- IF ctx.page == 'record' AND ctx.google_books_preview %]
101 <script src='[% ctx.media_prefix %]/js/ui/default/opac/ac_google_books.js[% ctx.cache_key %]' async defer></script>
102 [%- END %]
103
104 <script>
105     window.egStrings = [];
106     window.egStrings['CONFIRM_BASKET_EMPTY'] = "[% l('Remove all records from basket?') %]";
107 </script>
108 <script src='[% ctx.media_prefix %]/js/ui/default/opac/record_selectors.js[% ctx.cache_key %]' async defer></script>
109
110 <!-- Require some inputs and selections for browsers that don't support required form field element -->
111 [% IF ctx.page == 'place_hold' %]
112   <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/holds-validation.js[% ctx.cache_key %]">
113   </script>
114 [% END %]
115
116 [%- IF want_dojo; -%]
117 <script type="text/javascript">
118      var djConfig = {
119          locale: "[% ctx.locale | lower | replace('_', '-') %]",
120          parseOnLoad: true,
121          isDebug: false
122      }, lang, bidi;
123 </script>
124 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/dojo/dojo.js?[% ctx.eg_cache_hash %]"></script>
125
126 [%- # So the following works in Mozilla and Chrome, but not in IE8.
127     # Seems like it /should/ work anywhere, though, and obviate the
128     # next three script tags: %]
129 <!-- <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/DojoSRF.js?[% ctx.eg_cache_hash %]"></script> -->
130
131 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/opensrf.js?[% ctx.eg_cache_hash %]"></script>
132 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/opensrf_xhr.js?[% ctx.eg_cache_hash %]"></script>
133 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/JSON_v1.js?[% ctx.eg_cache_hash %]"></script>
134
135 [% IF use_autosuggest.enabled == "t" AND basic_search != "f"; %]
136 <script type="text/javascript">
137     dojo.require("openils.widget.AutoSuggest");
138
139     /* Set focus, and place the cursor at the end of the input string */
140     dojo.addOnLoad(function() {
141         /* Don't error out if the object doesn't exist, like on advanced search pages */
142         if (dojo.byId('search_box')) {
143             dijit.byId('search_box').focus();
144
145             var sb_value = dijit.byId('search_box').value;
146             /* Dojo won't trigger a change if the value doesn't change */
147             if (sb_value) {
148                 dijit.byId('search_box').setValue(sb_value + ' ');
149                 dijit.byId('search_box').setValue(sb_value);
150             }
151         }
152     });
153 </script>
154 [% END; # use_autosuggest %]
155
156 [% INCLUDE "opac/parts/acjs.tt2" IF ctx.page == 'record' %]
157 [% IF ctx.page == 'advanced' %]
158 <script type="text/javascript" 
159     src="[% ctx.media_prefix %]/js/ui/default/opac/copyloc.js[% ctx.cache_key %]"></script>
160 [% END %]
161
162 [% IF ebook_api.enabled == 'true' %]
163     [% INCLUDE "opac/parts/ebook_api/base_js.tt2" %]
164     [% INCLUDE "opac/parts/ebook_api/login_js.tt2" IF (ctx.page == 'login') %]
165 [% END %]
166 <script src='[% ctx.media_prefix %]/js/ui/default/opac/test_notification.js'></script>
167 <!-- provide a JS friendly org unit hash -->
168 <script type="text/javascript">
169 var aou_hash = {
170 [% FOR org_unit IN ctx.aou_list %]
171     [% org_unit.id %] : {
172         id : "[% org_unit.id %]",
173         name : "[% org_unit.name | replace('"', '\"') %]",
174         parent_ou : "[% org_unit.parent_ou %]",
175         depth : "[% org_unit.ou_type.depth %]",
176         can_have_vols : "[% org_unit.ou_type.can_have_vols %]"
177     }[%- ',' UNLESS loop.last -%]
178 [% END %]
179 };
180 </script>
181
182 <script type="text/javascript">if ($('client_tz_id')) { $('client_tz_id').value = OpenSRF.tz }</script>
183 [%- END; # want_dojo -%]
184
185 [%- IF ctx.max_cart_size; %]
186 <script type="text/javascript">var max_cart_size = [% ctx.max_cart_size %];</script>
187 [%- END; %]
188 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/accordion.js[% ctx.cache_key %]"></script>
189
190 <link rel="stylesheet" href="[% ctx.media_prefix %]/js/ui/default/common/build/js/glide/css/glide.core.min.css[% ctx.cache_key %]">
191 <link rel="stylesheet" href="[% ctx.media_prefix %]/js/ui/default/common/build/js/glide/css/glide.theme.min.css[% ctx.cache_key %]">