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 = {
13 'init' : function( params ) {
17 obj.query = params['query'];
19 JSAN.use('OpenILS.data'); this.OpenILS = {};
20 obj.OpenILS.data = new OpenILS.data(); obj.OpenILS.data.init({'via':'stash'});
22 JSAN.use('util.list'); obj.list = new util.list('patron_list');
23 function getString(s) { return obj.OpenILS.data.entities[s]; }
25 JSAN.use('patron.util');
26 var columns = patron.util.columns(
28 'active' : { 'hidden' : 'false' },
29 'barred' : { 'hidden' : 'false' },
30 'family_name' : { 'hidden' : 'false' },
31 'first_given_name' : { 'hidden' : 'false' },
32 'second_given_name' : { 'hidden' : 'false' },
33 'dob' : { 'hidden' : 'false' },
39 'map_row_to_column' : patron.util.std_map_row_to_column(),
40 'retrieve_row' : function(params) {
41 var id = params.retrieve_id;
42 var au_obj = patron.util.retrieve_au_via_id( ses(), id,
46 if (typeof row.my == 'undefined') row.my = {};
47 row.my.au = req.getResultObject();
48 if (typeof params.on_retrieve == 'function') {
49 params.on_retrieve(row);
51 alert('typeof params.on_retrieve == ' + typeof params.on_retrieve);
59 'on_select' : function(ev) {
60 JSAN.use('util.functional');
61 var sel = obj.list.retrieve_selection();
62 var list = util.functional.map_list(
64 function(o) { return o.getAttribute('retrieve_id'); }
66 if (typeof obj.on_select == 'function') {
69 if (typeof window.xulG == 'object' && typeof window.xulG.on_select == 'function') {
70 obj.error.sdump('D_PATRON','patron.search_result: Calling external .on_select()\n');
71 window.xulG.on_select(list);
73 obj.error.sdump('D_PATRON','patron.search_result: No external .on_select()\n');
78 JSAN.use('util.controller'); obj.controller = new util.controller();
84 function() { alert('Not Yet Implemented'); }
86 'cmd_search_print' : [
89 dump( js2JSON( obj.list.dump() ) );
90 alert( js2JSON( obj.list.dump() ) );
97 if (obj.query) obj.search(obj.query);
100 'search' : function(query) {
102 var search_hash = {};
103 obj.search_term_count = 0;
104 for (var i in query) {
106 case 'phone': case 'ident':
108 search_hash[ i ] = {};
109 search_hash[ i ].value = query[i];
110 search_hash[i].group = 2;
111 obj.search_term_count++;
114 case 'street1': case 'street2': case 'city': case 'state': case 'post_code':
116 search_hash[ i ] = {};
117 search_hash[ i ].value = query[i];
118 search_hash[i].group = 1;
119 obj.search_term_count++;
122 case 'family_name': case 'first_given_name': case 'second_given_name': case 'email':
124 search_hash[ i ] = {};
125 search_hash[ i ].value = query[i];
126 search_hash[i].group = 0;
127 obj.search_term_count++;
134 if (obj.search_term_count > 0) {
135 results = this.network.request(
136 api.FM_AU_IDS_RETRIEVE_VIA_HASH.app,
137 api.FM_AU_IDS_RETRIEVE_VIA_HASH.method,
138 [ ses(), search_hash, 1000, [ 'family_name ASC', 'first_given_name ASC', 'second_given_name ASC', 'dob DESC' ] ]
140 if ( (results == null) || (typeof results.ilsevent != 'undefined') ) throw(results);
143 if (results.length == 0) {
144 alert('No hits found.');
148 //this.list.append( { 'retrieve_id' : results[i], 'row' : {} } );
151 function gen_func(r) {
153 obj.list.append( { 'retrieve_id' : r, 'row' : {} } );
157 for (var i = 0; i < results.length; i++) {
158 funcs.push( gen_func(results[i]) );
160 JSAN.use('util.exec'); var exec = new util.exec(4);
164 this.error.standard_unexpected_error_alert('patron.search_result.search',E);
170 dump('exiting patron/search_result.js\n');