1 dump('entering patron/search_form.js\n');
3 if (typeof patron == 'undefined') patron = {};
4 patron.search_form = function (params) {
6 JSAN.use('util.error'); this.error = new util.error();
7 JSAN.use('util.network'); this.network = new util.network();
11 patron.search_form.prototype = {
13 'init' : function( params ) {
17 JSAN.use('OpenILS.data'); this.OpenILS = {};
18 obj.OpenILS.data = new OpenILS.data(); obj.OpenILS.data.init({'via':'stash'});
20 JSAN.use('util.controller'); obj.controller = new util.controller();
26 function() { alert($("commonStrings").getString('common.unimplemented')); }
28 'cmd_patron_search_submit' : [
34 'cmd_patron_search_clear' : [
37 obj.controller.render();
38 window.xulG.clear_left_deck();
45 if (params.query&¶ms.query.family_name) {
46 e.setAttribute('value',params.query.family_name);
47 e.value = params.query.family_name;
54 'first_given_name' : [
58 if (params.query&¶ms.query.first_given_name) {
59 e.setAttribute('value',params.query.first_given_name);
60 e.value = params.query.first_given_name;
67 'second_given_name' : [
71 if (params.query&¶ms.query.second_given_name) {
72 e.setAttribute('value',params.query.second_given_name);
73 e.value = params.query.second_given_name;
84 if (params.query&¶ms.query.alias) {
85 e.setAttribute('value',params.query.alias);
86 e.value = params.query.alias;
97 if (params.query&¶ms.query.usrname) {
98 e.setAttribute('value',params.query.usrname);
99 e.value = params.query.usrname;
110 if (params.query&¶ms.query.card) {
111 e.setAttribute('value',params.query.card);
112 e.value = params.query.card;
123 if (params.query&¶ms.query.email) {
124 e.setAttribute('value',params.query.email);
125 e.value = params.query.email;
136 if (params.query&¶ms.query.phone) {
137 e.setAttribute('value',params.query.phone);
138 e.value = params.query.phone;
149 if (params.query&¶ms.query.ident) {
150 e.setAttribute('value',params.query.ident);
151 e.value = params.query.ident;
152 } else if (params.query&¶ms.query.ident_value) {
153 e.setAttribute('value',params.query.ident_value);
154 e.value = params.query.ident_value;
155 } else if (params.query&¶ms.query.ident_value2) {
156 e.setAttribute('value',params.query.ident_value2);
157 e.value = params.query.ident_value2;
168 if (params.query&¶ms.query.street1) {
169 e.setAttribute('value',params.query.street1);
170 e.value = params.query.street1;
181 if (params.query&¶ms.query.street2) {
182 e.setAttribute('value',params.query.street2);
183 e.value = params.query.street2;
194 if (params.query&¶ms.query.city) {
195 e.setAttribute('value',params.query.city);
196 e.value = params.query.city;
207 if (params.query&¶ms.query.state) {
208 e.setAttribute('value',params.query.state);
209 e.value = params.query.state;
220 if (params.query&¶ms.query.post_code) {
221 e.setAttribute('value',params.query.post_code);
222 e.value = params.query.post_code;
229 'inactive' : [ ['render'], function(e) {
230 return function() {};
233 'search_depth' : [ ['render'],function(e) {
234 return function() {};
241 obj.controller.render();
242 var nl = document.getElementsByTagName('textbox');
243 for (var i = 0; i < nl.length; i++) {
244 nl[i].addEventListener('keypress',function(ev){
245 if (ev.target.tagName != 'textbox') return;
246 if (ev.keyCode == 13 /* enter */ || ev.keyCode == 77 /* enter on a mac */) setTimeout( function() { obj.submit(); }, 0);
249 document.getElementById('family_name').focus();
251 JSAN.use('util.file'); JSAN.use('util.widgets'); JSAN.use('util.functional');
252 util.widgets.remove_children(obj.controller.view.search_depth);
253 var ml = util.widgets.make_menulist(
254 util.functional.map_list( obj.OpenILS.data.list.aout,
256 return [ el.opac_label(), el.depth() ]
260 if (a[1] < b[1]) return -1;
261 if (a[1] > b[1]) return 1;
266 ml.addEventListener('command', function() {
267 ml.parentNode.setAttribute('value',ml.value);
268 var file = new util.file('patron_search_prefs.'+obj.OpenILS.data.server_unadorned);
269 util.widgets.save_attributes(file, { 'search_depth_ml' : [ 'value' ], 'inactive' : [ 'value' ] });
272 ml.setAttribute('id','search_depth_ml');
273 obj.controller.view.search_depth.appendChild(ml);
275 var file = new util.file('patron_search_prefs.'+obj.OpenILS.data.server_unadorned);
276 util.widgets.load_attributes(file);
277 ml.value = ml.getAttribute('value');
280 ml.setAttribute('value',ml.value);
283 var cb = obj.controller.view.inactive;
284 cb.addEventListener('command',function() {
285 cb.setAttribute('value',cb.checked ? "true" : "false");
286 var file = new util.file('patron_search_prefs.'+obj.OpenILS.data.server_unadorned);
287 util.widgets.save_attributes(file, { 'search_depth_ml' : [ 'value' ], 'inactive' : [ 'value' ] });
290 cb.checked = cb.getAttribute('value') == "true" ? true : false;
294 'on_submit' : function(q) {
295 var msg = 'Query = ' + q;
296 this.error.sdump('D_PATRON', msg);
299 'submit' : function() {
300 window.xulG.clear_left_deck();
303 for (var i = 0; i < obj.controller.render_list.length; i++) {
304 var id = obj.controller.render_list[i][0];
305 var node = document.getElementById(id);
306 if (node && node.value != '') {
307 if (id == 'inactive') {
308 query[id] = node.getAttribute('value');
309 obj.error.sdump('D_DEBUG','id = ' + id + ' value = ' + node.getAttribute('value') + '\n');
311 if (id == 'search_depth') {
312 query[id] = node.firstChild.getAttribute('value');
314 var value = node.value.replace(/^\s+/,'').replace(/[\\\s]+$/,'');
315 //value = value.replace(/\d/g,'');
318 case 'first_given_name' :
319 case 'second_given_name' :
320 value = value.replace(/^\W+/g,'').replace(/\W+$/g,'');
325 obj.error.sdump('D_DEBUG','id = ' + id + ' value = ' + value + '\n');
331 if (typeof obj.on_submit == 'function') {
332 obj.on_submit(query);
334 if (typeof window.xulG == 'object'
335 && typeof window.xulG.on_submit == 'function') {
336 obj.error.sdump('D_PATRON','patron.search_form: Calling external .on_submit()\n');
337 window.xulG.on_submit(query);
339 obj.error.sdump('D_PATRON','patron.search_form: No external .on_query()\n');
345 dump('exiting patron/search_form.js\n');