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.session = params['session'];
18 obj.query = params['query'];
20 JSAN.use('OpenILS.data'); this.OpenILS = {};
21 obj.OpenILS.data = new OpenILS.data(); obj.OpenILS.data.init({'via':'stash'});
23 JSAN.use('util.list'); obj.list = new util.list('patron_list');
24 function getString(s) { return obj.OpenILS.data.entities[s]; }
26 JSAN.use('patron.util');
27 var columns = patron.util.columns(
29 'standing' : { 'hidden' : 'false' },
30 'active' : { 'hidden' : 'false' },
31 'family_name' : { 'hidden' : 'false' },
32 'first_given_name' : { 'hidden' : 'false' },
33 'second_given_name' : { 'hidden' : 'false' },
34 'dob' : { 'hidden' : 'false' },
40 'map_row_to_column' : patron.util.std_map_row_to_column(),
41 'retrieve_row' : function(params) {
42 var id = params.retrieve_id;
43 var au_obj = patron.util.retrieve_au_via_id( obj.session, id );
46 if (typeof row.my == 'undefined') row.my = {};
51 'on_select' : function(ev) {
52 JSAN.use('util.functional');
53 var sel = obj.list.retrieve_selection();
54 var list = util.functional.map_list(
56 function(o) { return o.getAttribute('retrieve_id'); }
58 if (typeof obj.on_select == 'function') {
61 if (typeof window.xulG == 'object' && typeof window.xulG.on_select == 'function') {
62 obj.error.sdump('D_PATRON','patron.search_result: Calling external .on_select()\n');
63 window.xulG.on_select(list);
65 obj.error.sdump('D_PATRON','patron.search_result: No external .on_select()\n');
70 JSAN.use('util.controller'); obj.controller = new util.controller();
76 function() { alert('Not Yet Implemented'); }
82 if (obj.query) obj.search(obj.query);
85 'search' : function(query) {
87 for (var i in query) {
89 case 'phone': case 'ident':
91 search_hash[ i ] = {};
92 search_hash[ i ].value = query[i];
93 search_hash[i].group = 2;
96 case 'street1': case 'street2': case 'city': case 'state': case 'post_code':
98 search_hash[ i ] = {};
99 search_hash[ i ].value = query[i];
100 search_hash[i].group = 1;
103 case 'family_name': case 'first_given_name': case 'second_given_name': case 'email':
105 search_hash[ i ] = {};
106 search_hash[ i ].value = query[i];
107 search_hash[i].group = 0;
112 var results = this.network.request(
113 api.fm_au_ids_retrieve_via_hash.app,
114 api.fm_au_ids_retrieve_via_hash.method,
115 [ this.session, search_hash ]
117 for (var i = 0; i < results.length; i++) {
118 this.list.append( { 'retrieve_id' : results[i], 'row' : {} } );
121 this.error.sdump('D_ERROR','patron.search_result.search: ' + js2JSON(E));
127 dump('exiting patron/search_result.js\n');