]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/xul/staff_client/server/patron/search_form.js
assumed the wrong entry point for patron search
[working/Evergreen.git] / Open-ILS / xul / staff_client / server / patron / search_form.js
1 dump('entering patron/search_form.js\n');
2
3 if (typeof patron == 'undefined') patron = {};
4 patron.search_form = 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_form.prototype = {
12
13         'init' : function( params ) {
14
15                 var obj = this;
16
17                 obj.session = params['session'];
18
19                 JSAN.use('OpenILS.data'); this.OpenILS = {}; 
20                 obj.OpenILS.data = new OpenILS.data(); obj.OpenILS.data.init({'via':'stash'});
21
22                 JSAN.use('util.controller'); obj.controller = new util.controller();
23                 obj.controller.init(
24                         {
25                                 control_map : {
26                                         'cmd_broken' : [
27                                                 ['command'],
28                                                 function() { alert('Not Yet Implemented'); }
29                                         ],
30                                         'cmd_patron_search_submit' : [
31                                                 ['command'],
32                                                 function() {
33                                                         obj.submit();
34                                                 }
35                                         ],
36                                         'cmd_patron_search_clear' : [
37                                                 ['command'],
38                                                 function() { obj.controller.render(); }
39                                         ],
40                                         'family_name' : [
41                                                 ['render'],
42                                                 function(e) {
43                                                         return function() {
44                                                                 if (params.query&&params.query.family_name) {
45                                                                         e.setAttribute('value',params.query.family_name);
46                                                                         e.value = params.query.family_name;
47                                                                 } else {
48                                                                         e.value = '';
49                                                                 }
50                                                         };
51                                                 }
52                                         ],
53                                         'first_given_name' : [
54                                                 ['render'],
55                                                 function(e) {
56                                                         return function() {
57                                                                 if (params.query&&params.query.first_given_name) {
58                                                                         e.setAttribute('value',params.query.first_given_name);
59                                                                         e.value = params.query.first_given_name;
60                                                                 } else {
61                                                                         e.value = '';
62                                                                 }
63                                                         };
64                                                 }
65                                         ],
66                                         'second_given_name' : [
67                                                 ['render'],
68                                                 function(e) {
69                                                         return function() {
70                                                                 if (params.query&&params.query.second_given_name) {
71                                                                         e.setAttribute('value',params.query.second_given_name);
72                                                                         e.value = params.query.second_given_name;
73                                                                 } else {
74                                                                         e.value = '';
75                                                                 }
76                                                         };
77                                                 }
78                                         ],
79                                         'email' : [
80                                                 ['render'],
81                                                 function(e) {
82                                                         return function() {
83                                                                 if (params.query&&params.query.email) {
84                                                                         e.setAttribute('value',params.query.email);
85                                                                         e.value = params.query.email;
86                                                                 } else {
87                                                                         e.value = '';
88                                                                 }
89                                                         };
90                                                 }
91                                         ],
92                                         'phone' : [
93                                                 ['render'],
94                                                 function(e) {
95                                                         return function() {
96                                                                 if (params.query&&params.query.phone) {
97                                                                         e.setAttribute('value',params.query.phone);
98                                                                         e.value = params.query.phone;
99                                                                 } else {
100                                                                         e.value = '';
101                                                                 }
102                                                         };
103                                                 }
104                                         ],
105                                         'ident' : [
106                                                 ['render'],
107                                                 function(e) {
108                                                         return function() {
109                                                                 if (params.query&&params.query.ident) {
110                                                                         e.setAttribute('value',params.query.ident);
111                                                                         e.value = params.query.ident;
112                                                                 } else if (params.query&&params.query.ident_value) {
113                                                                         e.setAttribute('value',params.query.ident_value);
114                                                                         e.value = params.query.ident_value;
115                                                                 } else if (params.query&&params.query.ident_value2) {
116                                                                         e.setAttribute('value',params.query.ident_value2);
117                                                                         e.value = params.query.ident_value2;
118                                                                 } else {
119                                                                         e.value = '';
120                                                                 }
121                                                         };
122                                                 }
123                                         ],
124                                         'street1' : [
125                                                 ['render'],
126                                                 function(e) {
127                                                         return function() {
128                                                                 if (params.query&&params.query.street1) {
129                                                                         e.setAttribute('value',params.query.street1);
130                                                                         e.value = params.query.street1;
131                                                                 } else {
132                                                                         e.value = '';
133                                                                 }
134                                                         };
135                                                 }
136                                         ],
137                                         'street2' : [
138                                                 ['render'],
139                                                 function(e) {
140                                                         return function() {
141                                                                 if (params.query&&params.query.street2) {
142                                                                         e.setAttribute('value',params.query.street2);
143                                                                         e.value = params.query.street2;
144                                                                 } else {
145                                                                         e.value = '';
146                                                                 }
147                                                         };
148                                                 }
149                                         ],
150                                         'city' : [
151                                                 ['render'],
152                                                 function(e) {
153                                                         return function() {
154                                                                 if (params.query&&params.query.city) {
155                                                                         e.setAttribute('value',params.query.city);
156                                                                         e.value = params.query.city;
157                                                                 } else {
158                                                                         e.value = '';
159                                                                 }
160                                                         };
161                                                 }
162                                         ],
163                                         'state' : [
164                                                 ['render'],
165                                                 function(e) {
166                                                         return function() {
167                                                                 if (params.query&&params.query.state) {
168                                                                         e.setAttribute('value',params.query.state);
169                                                                         e.value = params.query.state;
170                                                                 } else {
171                                                                         e.value = '';
172                                                                 }
173                                                         };
174                                                 }
175                                         ],
176                                         'post_code' : [
177                                                 ['render'],
178                                                 function(e) {
179                                                         return function() {
180                                                                 if (params.query&&params.query.post_code) {
181                                                                         e.setAttribute('value',params.query.post_code);
182                                                                         e.value = params.query.post_code;
183                                                                 } else {
184                                                                         e.value = '';
185                                                                 }
186                                                         };
187                                                 }
188                                         ],
189                                 }
190                         }
191                 );
192
193                 obj.controller.render();
194                 document.getElementById('family_name').focus();
195
196         },
197
198         'on_submit' : function(q) {
199                 var msg = 'Query = ' + q;
200                 this.error.sdump('D_PATRON', msg);
201         },
202
203         'submit' : function() {
204                 var obj = this;
205                 var query = '';
206                 for (var i = 0; i < obj.controller.render_list.length; i++) {
207                 var id = obj.controller.render_list[i][0];
208                 var node = document.getElementById(id);
209                         if (node && node.value != '') {
210                                 if (query == '') {
211                                         // Responsible for own ? or &
212                                 } else {
213                                         query += '&';
214                                 }
215                                 query += id + '=' + window.escape(node.value);
216                                 dump('id = ' + id + '  value = ' + node.value + '\n');
217                         }
218                 }
219                 if (typeof obj.on_submit == 'function') {
220                         obj.on_submit(query);
221                 }
222                 if (typeof window.xulG == 'object' 
223                         && typeof window.xulG.on_submit == 'function') {
224                         obj.error.sdump('D_PATRON','patron.search_form: Calling external .on_submit()\n');
225                         window.xulG.on_submit(query);
226                 } else {
227                         obj.error.sdump('D_PATRON','patron.search_form: No external .on_query()\n');
228                 }
229         },
230
231 }
232
233 dump('exiting patron/search_form.js\n');