]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/templates/opac/parts/js.tt2
LP2045292 Color contrast for AngularJS patron bills
[working/Evergreen.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     // Show the checkbox if JS is enabled
48     document.getElementById('password_visibility').style.display = 'block';
49     let checkbox = document.getElementById('password_visibility_checkbox');
50     let input = document.getElementById('password_field');
51     checkbox.addEventListener('change', () => {
52         if(checkbox.checked){
53           input.type = 'text';
54           input.setAttribute('aria-description', "[% l('Your password is visible!') %]");
55         }
56         else {
57           input.type = 'password';
58           input.setAttribute('aria-description', "[% l('Your password is not visible.') %]");
59         }
60         input.focus();
61     });
62     // If the form is submitted revert the password field to a password input 
63     let form = document.getElementById('opac-login-form');
64     form.addEventListener('submit', () => {
65         input.type = 'password';
66     });
67 </script>
68
69 [%- IF ctx.use_stripe %]
70 <script type="text/javascript">unHideMe($("pay_fines_now"));[%# the DOM is loaded now, right? %]</script>
71 [% END -%]
72
73 [%- IF ctx.is_staff %]
74 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/staff.js[% ctx.cache_key %]"></script>
75     [% IF ctx.page == 'record' %]
76         [% IF ctx.search_result_index >= 0 %]
77         <script>
78             rdetail_next_prev_actions(
79                 "[% ctx.search_result_index %]",
80                 "[% ctx.hit_count %]",
81                 "[% ctx.prev_rec_url || '' %]",
82                 "[% ctx.next_rec_url || '' %]",
83                 "[% mkurl(ctx.first_search_record, {page => 0}) %]",
84                 "[% mkurl(ctx.opac_root _ '/results', {find_last => 1, page => POSIX.floor(ctx.hit_count / ctx.page_size)}) %]",
85                 "[% mkurl(ctx.opac_root _ '/results', {}, ['expand','cnoffset']) %]"
86             );
87         </script>
88         [% END %]
89         [% IF ctx.mfhd_summaries.size %]
90         <script>
91             window.mfhdDetails = [
92                 [% FOR summary IN ctx.mfhd_summaries %]
93                     [% IF summary.sre_id != -1 %]
94                 {
95                     'id' : '[% summary.sre_id %]', 
96                     'label' : '[% summary.location | replace("'", "\\'") %]',
97                     'entryNum' : [% loop.index %],
98                     'owning_lib' : '[% summary.owning_lib %]'
99                 },
100                     [% END %]
101                 [% END %]
102             ];
103         </script>
104         [% END %]
105     [% END %]
106 [%- END %]
107
108 [%- IF ENV.OILS_NOVELIST_URL AND ctx.page == 'record';
109     url = ENV.OILS_NOVELIST_URL;
110     IF CGI.https; url = url.replace('^http:', 'https:'); END; %]
111 <script type='text/javascript' id='EIT' src='[% url %]'></script>
112 [%- END %]
113 [%- IF ctx.page == 'record' AND ctx.google_books_preview %]
114 <script src='[% ctx.media_prefix %]/js/ui/default/opac/ac_google_books.js[% ctx.cache_key %]' async defer></script>
115 [%- END %]
116
117 <script>
118     window.egStrings = [];
119     window.egStrings['CONFIRM_BASKET_EMPTY'] = "[% l('Remove all records from basket?') %]";
120 </script>
121 <script src='[% ctx.media_prefix %]/js/ui/default/opac/record_selectors.js[% ctx.cache_key %]' async defer></script>
122
123 <!-- Require some inputs and selections for browsers that don't support required form field element -->
124 [% IF ctx.page == 'place_hold' %]
125   <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/holds-validation.js[% ctx.cache_key %]">
126   </script>
127 [% END %]
128
129 [%- IF want_dojo; -%]
130 <script type="text/javascript">
131      var djConfig = {
132          locale: "[% ctx.locale | lower | replace('_', '-') %]",
133          parseOnLoad: true,
134          isDebug: false
135      }, lang, bidi;
136 </script>
137 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/dojo/dojo.js?[% ctx.eg_cache_hash %]"></script>
138
139 [%- # So the following works in Mozilla and Chrome, but not in IE8.
140     # Seems like it /should/ work anywhere, though, and obviate the
141     # next three script tags: %]
142 <!-- <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/DojoSRF.js?[% ctx.eg_cache_hash %]"></script> -->
143
144 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/opensrf.js?[% ctx.eg_cache_hash %]"></script>
145 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/opensrf_xhr.js?[% ctx.eg_cache_hash %]"></script>
146 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/JSON_v1.js?[% ctx.eg_cache_hash %]"></script>
147
148 [% IF use_autosuggest.enabled == "t" AND basic_search != "f"; %]
149 <script type="module">
150   import {ListBoxCombobox} from '[% ctx.media_prefix %]/js/ui/default/opac/autosuggest.module.js';
151   document.addEventListener('DOMContentLoaded', () => {new ListBoxCombobox('search_box').attach()}, {once: true})
152 </script>
153 [% END; # use_autosuggest %]
154
155 [% INCLUDE "opac/parts/acjs.tt2" IF ctx.page == 'record' %]
156 [% IF ctx.page == 'advanced' %]
157 <script type="text/javascript" 
158     src="[% ctx.media_prefix %]/js/ui/default/opac/copyloc.js[% ctx.cache_key %]"></script>
159 [% END %]
160
161 [% IF ebook_api.enabled == 'true' %]
162     [% INCLUDE "opac/parts/ebook_api/base_js.tt2" %]
163     [% INCLUDE "opac/parts/ebook_api/login_js.tt2" IF (ctx.page == 'login') %]
164 [% END %]
165 <script src='[% ctx.media_prefix %]/js/ui/default/opac/test_notification.js'></script>
166 <!-- provide a JS friendly org unit hash -->
167 <script type="text/javascript">
168 var aou_hash = {
169 [% FOR org_unit IN ctx.aou_list %]
170     [% org_unit.id %] : {
171         id : "[% org_unit.id %]",
172         name : "[% org_unit.name | replace('"', '\"') %]",
173         parent_ou : "[% org_unit.parent_ou %]",
174         depth : "[% org_unit.ou_type.depth %]",
175         can_have_vols : "[% org_unit.ou_type.can_have_vols %]"
176     }[%- ',' UNLESS loop.last -%]
177 [% END %]
178 };
179 </script>
180
181 <script type="text/javascript">if ($('client_tz_id')) { $('client_tz_id').value = OpenSRF.tz }</script>
182 [%- END; # want_dojo -%]
183
184 [%- IF ctx.max_cart_size; %]
185 <script type="text/javascript">var max_cart_size = [% ctx.max_cart_size %];</script>
186 [%- END; %]
187 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/accordion.js[% ctx.cache_key %]"></script>
188
189 <link rel="stylesheet" href="[% ctx.media_prefix %]/js/ui/default/common/build/js/glide/css/glide.core.min.css[% ctx.cache_key %]">
190 <link rel="stylesheet" href="[% ctx.media_prefix %]/js/ui/default/common/build/js/glide/css/glide.theme.min.css[% ctx.cache_key %]">