]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/templates/opac/parts/js.tt2
LP#1422802 Fix javascript validation for visible parts
[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"></script>
3
4 <!-- DOB validation for Patron Registration in OPAC -->
5 <script type="text/javascript">
6     function dobValidate(input) {
7         var validformat = /^(19|20)\d\d([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])$/
8         var returnval = false
9         if (!validformat.test(input.value))
10             alert("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.")
11         else
12             returnval = true
13         if (returnval == false) input.select()
14         return returnval
15 }
16 </script>
17
18 [%- IF ctx.use_stripe %]
19 <script type="text/javascript">unHideMe($("pay_fines_now"));[%# the DOM is loaded now, right? %]</script>
20 [% END -%]
21
22 [%- IF ctx.is_staff %]
23 <script type="text/javascript" src="[% ctx.media_prefix %]/js/ui/default/opac/staff.js"></script>
24     [% IF ctx.page == 'record' %]
25         [% IF ctx.search_result_index >= 0 %]
26         <script>
27             rdetail_next_prev_actions(
28                 "[% ctx.search_result_index %]",
29                 "[% ctx.hit_count %]",
30                 "[% ctx.prev_rec_url || '' %]",
31                 "[% ctx.next_rec_url || '' %]",
32                 "[% mkurl(ctx.first_search_record, {page => 0}) %]",
33                 "[% mkurl(ctx.opac_root _ '/results', {find_last => 1, page => POSIX.floor(ctx.hit_count / ctx.page_size)}) %]",
34                 "[% mkurl(ctx.opac_root _ '/results', {}, ['expand','cnoffset']) %]"
35             );
36         </script>
37         [% END %]
38         [% IF ctx.mfhd_summaries.size %]
39         <script>
40             window.mfhdDetails = [
41                 [% FOR summary IN ctx.mfhd_summaries %]
42                     [% IF summary.sre_id != -1 %]
43                 {
44                     'id' : '[% summary.sre_id %]', 
45                     'label' : '[% summary.location | replace("'", "\\'") %]',
46                     'entryNum' : [% loop.index %],
47                     'owning_lib' : '[% summary.owning_lib %]'
48                 },
49                     [% END %]
50                 [% END %]
51             ];
52         </script>
53         [% END %]
54     [% END %]
55 [%- END %]
56
57 [%- IF ENV.OILS_NOVELIST_URL AND ctx.page == 'record';
58     url = ENV.OILS_NOVELIST_URL;
59     IF CGI.https; url = url.replace('^http:', 'https:'); END; %]
60 <script type='text/javascript' id='EIT' src='[% url %]'></script>
61 [%- END %]
62 [%- IF want_dojo; -%]
63 <script type="text/javascript">
64      var djConfig = {
65          locale: "[% ctx.locale | lower | replace('_', '-') %]",
66          parseOnLoad: true,
67          isDebug: false
68      }, lang, bidi;
69 </script>
70 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/dojo/dojo.js?[% ctx.eg_cache_hash %]"></script>
71 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/dojo/openils_dojo.js?[% ctx.eg_cache_hash %]"></script>
72
73 [%- # So the following works in Mozilla and Chrome, but not in IE8.
74     # Seems like it /should/ work anywhere, though, and obviate the
75     # next three script tags: %]
76 <!-- <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/DojoSRF.js?[% ctx.eg_cache_hash %]"></script> -->
77
78 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/opensrf.js?[% ctx.eg_cache_hash %]"></script>
79 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/opensrf_xhr.js?[% ctx.eg_cache_hash %]"></script>
80 <script type="text/javascript" src="[% ctx.media_prefix %]/js/dojo/opensrf/JSON_v1.js?[% ctx.eg_cache_hash %]"></script>
81
82 [% IF use_autosuggest.enabled == "t" AND basic_search != "f"; %]
83 <script type="text/javascript">
84     dojo.require("openils.widget.AutoSuggest");
85
86     /* Set focus, and place the cursor at the end of the input string */
87     dojo.addOnLoad(function() {
88         /* Don't error out if the object doesn't exist, like on advanced search pages */
89         if (dojo.byId('search_box')) {
90             dijit.byId('search_box').focus();
91
92             var sb_value = dijit.byId('search_box').value;
93             /* Dojo won't trigger a change if the value doesn't change */
94             if (sb_value) {
95                 dijit.byId('search_box').setValue(sb_value + ' ');
96                 dijit.byId('search_box').setValue(sb_value);
97             }
98         }
99     });
100 </script>
101 [% END; # use_autosuggest %]
102
103 [% INCLUDE "opac/parts/acjs.tt2" IF ctx.page == 'record' %]
104 [% INCLUDE "opac/parts/ac_google_books.tt2" IF ctx.page == 'record' AND ctx.google_books_preview %]
105 [% IF ctx.page == 'advanced' %]
106 <script type="text/javascript" 
107     src="[% ctx.media_prefix %]/js/ui/default/opac/copyloc.js"></script>
108 [% END %]
109
110 <!-- provide a JS friendly org unit hash -->
111 <script type="text/javascript">
112 var aou_hash = {
113 [% FOR org_unit IN ctx.aou_list %]
114     [% org_unit.id %] : {
115         id : "[% org_unit.id %]",
116         name : "[% org_unit.name | replace('"', '\"') %]",
117         parent_ou : "[% org_unit.parent_ou %]",
118         depth : "[% org_unit.ou_type.depth %]",
119         can_have_vols : "[% org_unit.ou_type.can_have_vols %]"
120     }[%- ',' UNLESS loop.last -%]
121 [% END %]
122 };
123 </script>
124
125 <!-- Require radio parts selection for browsers that don't support required form field element -->
126 [% IF ctx.page == 'place_hold' %]
127   <script type="text/javascript">
128     function validateRadioSelection (radios) {
129        for (i = 0; i < radios.length; ++ i)
130        {
131          if (radios[i].checked) return true;
132        }
133        return false;
134     }
135     function validateHoldForm() {
136       if (validateRadioSelection (document.getElementsByName("part")))
137       {
138         return true;
139        }
140        else
141        {
142           alert ("Please select a part");
143           return false;
144         }
145      }
146   </script>
147 [% END %]
148
149 [%- END; # want_dojo -%]