]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/patron/search_result.js
refactor
[Evergreen.git] / Open-ILS / xul / staff_client / server / patron / search_result.js
1 dump('entering patron/search_result.js\n');
2
3 if (typeof patron == 'undefined') patron = {};
4 patron.search_result = function (params) {
5
6         JSAN.use('util.error'); this.error = new util.error();
7         JSAN.use('util.network'); this.network = new util.network();
8         this.w = window;
9 }
10
11 patron.search_result.prototype = {
12
13         'init' : function( params ) {
14
15                 var obj = this;
16
17                 obj.session = params['session'];
18                 obj.query = params['query'];
19
20                 JSAN.use('OpenILS.data'); this.OpenILS = {}; 
21                 obj.OpenILS.data = new OpenILS.data(); obj.OpenILS.data.init({'via':'stash'});
22
23                 JSAN.use('util.list'); obj.list = new util.list('patron_list');
24                 function getString(s) { return obj.OpenILS.data.entities[s]; }
25
26                 JSAN.use('patron.util');
27                 var columns = patron.util.columns(
28                         {
29                         }
30                 );
31                 obj.list.init(
32                         {
33                                 'columns' : columns,
34                                 'map_row_to_column' : patron.util.std_map_row_to_column(),
35                                 'retrieve_row' : function(params) {
36                                         var id = params.retrieve_id;
37                                         var patron = patron.util.retrieve_au_via_id( obj.session, id );
38
39                                         var row = params.row;
40                                         if (typeof row.my == 'undefined') row.my = {};
41                                         row.my.au = patron;
42
43                                         return row;
44                                 }
45                         }
46                 );
47                 JSAN.use('util.controller'); obj.controller = new util.controller();
48                 obj.controller.init(
49                         {
50                                 control_map : {
51                                         'cmd_broken' : [
52                                                 ['command'],
53                                                 function() { alert('Not Yet Implemented'); }
54                                         ],
55                                 }
56                         }
57                 );
58
59                 if (obj.query) obj.search(obj.query);
60         },
61
62         'search' : function(query) {
63                 var search_hash = {};
64                 for (var i in query) {
65                         switch( i ) {
66                                 case 'phone': case 'ident': 
67                                 
68                                         search_hash[ i ] = {};
69                                         search_hash[ i ].value = query[i];
70                                         search_hash[i].group = 2; 
71                                 break;
72
73                                 case 'street1': case 'street2': case 'city': case 'state': case 'post_code': 
74                                 
75                                         search_hash[ i ] = {};
76                                         search_hash[ i ].value = query[i];
77                                         search_hash[i].group = 1; 
78                                 break;
79
80                                 case 'family_name': case 'first_given_name': case 'second_given_name': case 'email':
81
82                                         search_hash[ i ] = {};
83                                         search_hash[ i ].value = query[i];
84                                         search_hash[i].group = 0; 
85                                 break;
86                         }
87                 }
88                 try {
89                         var results = this.network.request(
90                                 api.fm_au_ids_retrieve_via_hash.app,
91                                 api.fm_au_ids_retrieve_via_hash.method,
92                                 [ this.session, search_hash ]
93                         );
94                         for (var i = 0; i < results.length; i++) {
95                                 this.list.append( { 'retrieve_id' : results[i], 'row' : {} } );
96                         }
97                 } catch(E) {
98                         this.error.sdump('D_ERROR','patron.search_result.search: ' + js2JSON(E));
99                 }
100         }
101
102 }
103
104 dump('exiting patron/search_result.js\n');