1 (function($, globals) { |
1 (function($, globals) { |
2 |
2 |
3 "use strict"; |
3 "use strict"; |
4 |
4 |
5 var MyAMS = globals.MyAMS; |
5 var ams = globals.MyAMS; |
6 var PyAMS_default = { |
6 globals.PyAMS_default = { |
7 |
7 |
|
8 search: { |
|
9 |
|
10 updateSort: function() { |
|
11 var form = $('form[id="search-results"]'); |
|
12 if (form.exists()) { |
|
13 var index = $(this).val(); |
|
14 $('input[name="order_by"]', form).val(index); |
|
15 form.submit(); |
|
16 } |
|
17 }, |
|
18 |
|
19 updatePageLength: function() { |
|
20 var form = $('form[id="search-results"]'); |
|
21 if (form.exists()) { |
|
22 var length = $(this).val(); |
|
23 $('input[name="start"]', form).val(0); |
|
24 $('input[name="length"]', form).val(length); |
|
25 form.submit(); |
|
26 } |
|
27 }, |
|
28 |
|
29 previousPage: function() { |
|
30 var form = $('form[id="search-results"]'); |
|
31 if (form.exists()) { |
|
32 var current = $(this).parents('ol.pagination').data('ams-current-page'); |
|
33 var length = $('input[name="length"]', form).val(); |
|
34 $('input[name="start"]', form).val(length * (current - 2)); |
|
35 form.submit(); |
|
36 } |
|
37 }, |
|
38 |
|
39 nextPage: function() { |
|
40 var form = $('form[id="search-results"]'); |
|
41 if (form.exists()) { |
|
42 var current = $(this).parents('ol.pagination').data('ams-current-page'); |
|
43 var length = $('input[name="length"]', form).val(); |
|
44 $('input[name="start"]', form).val(length * current); |
|
45 form.submit(); |
|
46 } |
|
47 }, |
|
48 |
|
49 gotoPage: function() { |
|
50 var form = $('form[id="search-results"]'); |
|
51 if (form.exists()) { |
|
52 var target = parseInt($(this).text()); |
|
53 var length = $('input[name="length"]', form).val(); |
|
54 $('input[name="start"]', form).val(length * (target - 1)); |
|
55 form.submit(); |
|
56 } |
|
57 } |
|
58 } |
8 }; |
59 }; |
9 globals.PyAMS_default = PyAMS_default; |
|
10 |
60 |
11 /** |
61 /** |
12 * Init lightbox plug-in |
62 * Init lightbox plug-in |
13 */ |
63 */ |
14 $(document).on('click', '[data-toggle="lightbox"]', function (event) { |
64 $(document).on('click', '[data-toggle="lightbox"]', function (event) { |
17 wrapping: false, |
67 wrapping: false, |
18 alwaysShowClose: true |
68 alwaysShowClose: true |
19 }); |
69 }); |
20 }); |
70 }); |
21 |
71 |
|
72 // Initialize custom click handlers |
|
73 $(document).on('click', '[data-ams-click-handler]', function(event) { |
|
74 var source = $(this); |
|
75 var handlers = source.data('ams-disabled-handlers'); |
|
76 if ((handlers === true) || (handlers === 'click') || (handlers === 'all')) { |
|
77 return; |
|
78 } |
|
79 var data = source.data(); |
|
80 if (data.amsClickHandler) { |
|
81 if ((data.amsStopPropagation === true) || (data.amsClickStopPropagation === true)) { |
|
82 event.stopPropagation(); |
|
83 } |
|
84 if (data.amsClickKeepDefault !== true) { |
|
85 event.preventDefault(); |
|
86 } |
|
87 var clickHandlers = data.amsClickHandler.split(/\s+/); |
|
88 for (var index=0; index < clickHandlers.length; index++) { |
|
89 var callback = ams.getFunctionByName(clickHandlers[index]); |
|
90 if (callback !== undefined) { |
|
91 callback.call(source, event, data.amsClickHandlerOptions); |
|
92 } |
|
93 } |
|
94 } |
|
95 }); |
|
96 |
|
97 // Initialize custom change handlers |
|
98 $(document).on('change', '[data-ams-change-handler]', function(event) { |
|
99 var source = $(this); |
|
100 // Disable change handlers for readonly inputs |
|
101 // These change handlers are activated by IE!!! |
|
102 if (source.prop('readonly')) { |
|
103 return; |
|
104 } |
|
105 var handlers = source.data('ams-disabled-handlers'); |
|
106 if ((handlers === true) || (handlers === 'change') || (handlers === 'all')) { |
|
107 return; |
|
108 } |
|
109 var data = source.data(); |
|
110 if (data.amsChangeHandler) { |
|
111 if ((data.amsStopPropagation === true) || (data.amsChangeStopPropagation === true)) { |
|
112 event.stopPropagation(); |
|
113 } |
|
114 if (data.amsChangeKeepDefault !== true) { |
|
115 event.preventDefault(); |
|
116 } |
|
117 var changeHandlers = data.amsChangeHandler.split(/\s+/); |
|
118 for (var index=0; index < changeHandlers.length; index++) { |
|
119 var callback = ams.getFunctionByName(changeHandlers[index]); |
|
120 if (callback !== undefined) { |
|
121 callback.call(source, event, data.amsChangeHandlerOptions); |
|
122 } |
|
123 } |
|
124 } |
|
125 }); |
|
126 |
|
127 /** |
|
128 * Glossary access |
|
129 */ |
|
130 var clickTerm = function() { |
|
131 var modal = $('.modal >div'); |
|
132 if (modal.exists()) { |
|
133 ams.dialog.close(modal); |
|
134 } |
|
135 ams.dialog.open('/get-glossary-term.html?term=' + $(this).text(), {}, { |
|
136 shown: function() { |
|
137 $('.thesaurus-term').off('click').on('click', clickTerm); |
|
138 } |
|
139 }); |
|
140 }; |
|
141 |
|
142 ams.require(['error', 'ajax', 'dialog'], function () { |
|
143 $('.thesaurus-term').off('click').on('click', clickTerm); |
|
144 }); |
|
145 |
22 })(jQuery, this); |
146 })(jQuery, this); |