1 dump('entering patron/search_result.js\n');
3 if (typeof patron == 'undefined') patron = {};
4 patron.search_result = 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_result.prototype = {
15 'init' : function( params ) {
19 obj.query = params['query'];
21 JSAN.use('OpenILS.data'); this.OpenILS = {};
22 obj.OpenILS.data = new OpenILS.data(); obj.OpenILS.data.init({'via':'stash'});
24 JSAN.use('util.list'); obj.list = new util.list('patron_list');
26 JSAN.use('patron.util');
27 var columns = patron.util.columns(
29 /* 'active' : { 'hidden' : 'false' }, */
30 'barred' : { 'hidden' : 'false' },
31 'family_name' : { 'hidden' : 'false' },
32 'first_given_name' : { 'hidden' : 'false' },
33 'second_given_name' : { 'hidden' : 'false' },
34 'dob' : { 'hidden' : 'false' },
45 'map_row_to_columns' : patron.util.std_map_row_to_columns(),
46 'retrieve_row' : function(params) {
47 var id = params.retrieve_id;
48 var au_obj = patron.util.retrieve_au_via_id( ses(), id,
52 if (typeof row.my == 'undefined') row.my = {};
53 row.my.au = req.getResultObject();
54 if (typeof params.on_retrieve == 'function') {
55 params.on_retrieve(row);
57 alert('typeof params.on_retrieve == ' + typeof params.on_retrieve);
65 'on_select' : function(ev) {
66 JSAN.use('util.functional');
67 var sel = obj.list.retrieve_selection();
68 var list = util.functional.map_list(
70 function(o) { return o.getAttribute('retrieve_id'); }
72 obj.controller.view.cmd_sel_clip.setAttribute('disabled', list.length < 1 );
73 if (typeof obj.on_select == 'function') {
76 if (typeof window.xulG == 'object' && typeof window.xulG.on_select == 'function') {
77 obj.error.sdump('D_PATRON','patron.search_result: Calling external .on_select()\n');
78 window.xulG.on_select(list);
80 obj.error.sdump('D_PATRON','patron.search_result: No external .on_select()\n');
85 JSAN.use('util.controller'); obj.controller = new util.controller();
91 function() { alert('Not Yet Implemented'); }
93 'cmd_search_print' : [
102 obj.error.standard_unexpected_error_alert('patron search print',E);
110 obj.list.clipboard();
112 obj.error.standard_unexpected_error_alert('patron search clipboard',E);
120 obj.list.save_columns();
122 obj.error.standard_unexpected_error_alert('patron search saving columns',E);
130 if (obj.query) obj.search(obj.query);
133 'search' : function(query) {
135 var search_hash = {};
136 obj.search_term_count = 0;
137 var inactive = false;
138 var search_depth = 0;
139 for (var i in query) {
141 case 'phone': case 'ident':
143 search_hash[ i ] = {};
144 search_hash[ i ].value = query[i];
145 search_hash[i].group = 2;
146 obj.search_term_count++;
149 case 'street1': case 'street2': case 'city': case 'state': case 'post_code':
151 search_hash[ i ] = {};
152 search_hash[ i ].value = query[i];
153 search_hash[i].group = 1;
154 obj.search_term_count++;
157 case 'family_name': case 'first_given_name': case 'second_given_name': case 'email':
159 search_hash[ i ] = {};
160 search_hash[ i ].value = query[i];
161 search_hash[i].group = 0;
162 obj.search_term_count++;
166 if (query[i] == 'checked' || query[i] == 'true') inactive = true;
170 search_depth = function(a){return a;}(query[i]);
177 var params = [ ses(), search_hash, obj.result_cap + 1, [ 'family_name ASC', 'first_given_name ASC', 'second_given_name ASC', 'dob DESC' ] ];
180 if (document.getElementById('active')) {
181 document.getElementById('active').setAttribute('hidden','false');
182 document.getElementById('active').hidden = false;
187 params.push(search_depth);
188 if (obj.search_term_count > 0) {
189 //alert('search params = ' + obj.error.pretty_print( js2JSON( params ) ) );
190 results = this.network.simple_request( 'FM_AU_IDS_RETRIEVE_VIA_HASH', params );
191 if ( (results == null) || (typeof results.ilsevent != 'undefined') ) throw(results);
192 if (results.length == 0) {
193 alert('No patrons found matching search criteria.');
196 if (results.length == obj.result_cap+1) {
198 alert('Results capped at ' + obj.result_cap + ' patrons.');
201 alert('Please enter some search terms.');
205 //this.list.append( { 'retrieve_id' : results[i], 'row' : {} } );
208 function gen_func(r) {
210 obj.list.append( { 'retrieve_id' : r, 'row' : {}, 'to_bottom' : true, 'no_auto_select' : true } );
214 for (var i = 0; i < results.length; i++) {
215 funcs.push( gen_func(results[i]) );
217 JSAN.use('util.exec'); var exec = new util.exec(4);
221 this.error.standard_unexpected_error_alert('patron.search_result.search',E);
227 dump('exiting patron/search_result.js\n');