]> git.evergreen-ils.org Git - Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/util/populate.js
first cut and bill details
[Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / util / populate.js
1 sdump('D_TRACE','Loading populate.js\n');
2
3 function populate_listbox_with_local_stat_cats_myself(local_stat_cats,local_cat_entries,listbox,libs,app,method,editable) {
4         sdump('D_TRACE','populate_local_stat_cats: pertinent libs = ' + js2JSON(libs) + '\n');
5
6         local_stat_cats = user_request(
7                 app,
8                 method,
9                 [ mw.G.auth_ses[0], libs ]
10         )[0];
11         //sdump('D_POPULATE','local_stat_cats = ' + pretty_print( js2JSON( local_stat_cats ) ) + '\n');
12
13         var list = listbox;
14         if (typeof list != 'object') list = document.getElementById(list);
15
16         for (var i in local_stat_cats) {
17
18                 var stat_cat = local_stat_cats[i];
19
20                 var listitem = document.createElement('listitem'); 
21                 list.appendChild(listitem);
22                 listitem.setAttribute('allowevents','true');
23                 sdump('D_POPULATE','listitem = ' + listitem + '\n');
24
25                         var label = document.createElement('listcell'); 
26                         listitem.appendChild(label);
27                         label.setAttribute('label',stat_cat.name() );
28                         sdump('D_POPULATE','\tlistcell = ' + label + '\n');
29
30                         var menucell = document.createElement('listcell'); 
31                         listitem.appendChild(menucell);
32                         sdump('D_POPULATE','\tlistcell = ' + menucell + '\n');
33
34                                 var menulist = document.createElement('menulist');
35                                 menucell.appendChild(menulist);
36                                 if (editable) { menulist.setAttribute('editable','true'); }
37                                 menulist.setAttribute('id','menulist_stat_cat_'+stat_cat.id());
38                                 sdump('D_POPULATE','\tmenulist = ' + menulist + '\n');
39
40                                         var menupopup = document.createElement('menupopup');
41                                         menulist.appendChild(menupopup);
42                                         menupopup.setAttribute('stat_cat',stat_cat.id());
43                                         menupopup.setAttribute('oncommand','apply_attribute(event);');
44                                         sdump('D_POPULATE','\t\tmenupopup = ' + menupopup + '\n');
45
46                 for (var j in stat_cat.entries() ) {
47
48                         var stat_entry = stat_cat.entries()[j];
49                         local_stat_cat_entries[stat_entry.id()] = stat_entry;
50
51                         var menuitem = document.createElement('menuitem');
52                         menupopup.appendChild(menuitem);
53                         menuitem.setAttribute('label',stat_entry.value());
54                         if (editable) {
55                                 menuitem.setAttribute('value',stat_entry.value());
56                         } else {
57                                 menuitem.setAttribute('value',stat_entry.id());
58                         }
59                         menuitem.setAttribute('stat_cat',stat_cat.id());
60                         menuitem.setAttribute('id','menuitem_stat_cat_entry_' + stat_entry.id());
61                         sdump('D_POPULATE','\t\t\tmenuitem = ' + menuitem + '\n');
62
63                 }
64
65         }
66
67         //sdump('D_POPULATE','local_stat_cat_entries = ' + pretty_print( js2JSON( local_stat_cat_entries ) ) + '\n');
68
69 }
70
71 function populate_rows_with_local_stat_cats(local_stat_cats,local_stat_cat_entries,rows,editable) {
72         //sdump('D_TRACE','populate_local_stat_cats: pertinent libs = ' + js2JSON(libs) + '\n');
73
74         /*local_stat_cats = user_request(
75                 app,
76                 method,
77                 [ mw.G.auth_ses[0], libs ]
78         )[0];*/
79         //sdump('D_POPULATE','local_stat_cats = ' + pretty_print( js2JSON( local_stat_cats ) ) + '\n');
80
81         if (typeof rows != 'object') rows = document.getElementById(rows);
82
83         for (var i in local_stat_cats) {
84
85                 var stat_cat = local_stat_cats[i];
86
87                 //alert('local stat_cat = ' + js2JSON(stat_cat) );
88
89                 var row = document.createElement('row');
90                 rows.appendChild(row);
91
92                 var label = document.createElement('label');
93                 label.setAttribute('value',stat_cat.name());
94                 row.appendChild(label);
95
96                 var menulist = document.createElement('menulist');
97                 row.appendChild(menulist);
98                 if (editable) { menulist.setAttribute('editable','true'); }
99                 menulist.setAttribute('id','menulist_stat_cat_'+stat_cat.id());
100                 //alert('menulist_stat_cat_'+stat_cat.id());
101                 menulist.setAttribute('stat_cat_id',stat_cat.id());
102                 sdump('D_POPULATE','\tmenulist = ' + menulist + '\n');
103
104                         var menupopup = document.createElement('menupopup');
105                         menulist.appendChild(menupopup);
106                         menupopup.setAttribute('stat_cat',stat_cat.id());
107                         menupopup.setAttribute('command','cmd_apply');
108                         sdump('D_POPULATE','\t\tmenupopup = ' + menupopup + '\n');
109
110                 for (var j in stat_cat.entries() ) {
111
112                         var stat_entry = stat_cat.entries()[j];
113                         local_stat_cat_entries[stat_entry.id()] = stat_entry;
114
115                         var menuitem = document.createElement('menuitem');
116                         menupopup.appendChild(menuitem);
117                         menuitem.setAttribute('label',stat_entry.value());
118                         if (editable) {
119                                 menuitem.setAttribute('value',stat_entry.value());
120                         } else {
121                                 menuitem.setAttribute('value',stat_entry.id());
122                         }
123                         menuitem.setAttribute('stat_cat',stat_cat.id());
124                         menuitem.setAttribute('id','menuitem_stat_cat_entry_' + stat_entry.id());
125                         sdump('D_POPULATE','\t\t\tmenuitem = ' + menuitem + '\n');
126
127                 }
128
129         }
130
131         sdump('D_POPULATE','local_stat_cat_entries = ' + pretty_print( js2JSON( local_stat_cat_entries ) ) + '\n');
132
133 }
134
135 function populate_copy_status_list(menulist,menupopup,defaultccs) {
136         sdump('D_TRACE','populate_copy_status_list\n');
137         var popup = document.getElementById(menupopup);
138
139         if (popup) {
140                 empty_widget(popup);
141                 for (var i in mw.G.ccs_list) {
142                         var menuitem = document.createElement('menuitem');
143                         menuitem.setAttribute('label', mw.G.ccs_list[i].name()); 
144                         menuitem.setAttribute('value', mw.G.ccs_list[i].id()); 
145                         menuitem.setAttribute('id', 'ccsitem' + mw.G.ccs_list[i].id()); 
146                         //sdump('D_POPULATE','pop_ccs_list: i = ' + i + ' ccs = ' + mw.G.ccs_list[i] + ' = ' + js2JSON(mw.G.ccs_list[i]) + '\n');
147                         popup.appendChild(menuitem);
148                 }
149                 var list = document.getElementById(menulist);
150                 if (list && defaultccs) {
151                         if (typeof defaultccs == 'object') {
152                                 defaultccs = defaultccs.id();   
153                         }
154                         var menuitem_id = 'ccsitem' + defaultccs;
155                         var menuitem = document.getElementById(
156                                 menuitem_id
157                         );
158                         var  menulist_e = document.getElementById(menulist);
159                         if (menulist_e && menuitem) { 
160                                 sdump('D_POPULATE','Setting default ccs\n');
161                                 menulist_e.selectedItem = menuitem; 
162                         } else {
163                                 sdump('D_POPULATE','Not Setting default ccs\n');
164                         }
165                 }
166         } else {
167                         sdump('D_POPULATE','populate_copy_status_list: Could not find menupopup: ' + menupopup + '\n');
168                         throw('populate_copy_status_list: Could not find menupopup: ' + menupopup + '\n');
169         }
170
171 }
172
173 function populate_copy_location_list(menulist,menupopup,defaultacpl) {
174         sdump('D_TRACE','populate_copy_location_list\n');
175         var popup = document.getElementById(menupopup);
176
177         if (popup) {
178                 empty_widget(popup);
179                 for (var i in mw.G.acpl_my_orgs) {
180                         var menuitem = document.createElement('menuitem');
181                         menuitem.setAttribute('label', mw.G.acpl_my_orgs[i].name()); 
182                         menuitem.setAttribute('value', mw.G.acpl_my_orgs[i].id()); 
183                         menuitem.setAttribute('id', 'acplitem' + mw.G.acpl_my_orgs[i].id()); 
184                         //sdump('D_POPULATE','populate_copy_location_list: i = ' + i + ' acpl_my_orgs = ' + mw.G.acpl_my_orgs[i] + ' = ' + js2JSON(mw.G.acpl_my_orgs[i]) + '\n');
185                         popup.appendChild(menuitem);
186                 }
187                 var list = document.getElementById(menulist);
188                 if (list && defaultacpl) {
189                         if (typeof defaultacpl == 'object') {
190                                 defaultacpl = defaultacpl.id(); 
191                         }
192                         var menuitem_id = 'acplitem' + defaultacpl;
193                         var menuitem = document.getElementById(
194                                 menuitem_id
195                         );
196                         var menulist_e = document.getElementById(menulist);
197                         if (menulist_e && menuitem) { menulist_e.selectedItem = menuitem; }
198                 }
199         } else {
200                         sdump('D_POPULATE','populate_copy_location_list: Could not find menupopup: ' + menupopup + '\n');
201                         throw('populate_copy_location_list: Could not find menupopup: ' + menupopup + '\n');
202         }
203
204 }
205
206 function populate_lib_list(menulist,menupopup,defaultlib,id_flag) {
207         sdump('D_TRACE','populate_lib_list\n');
208         var default_menuitem;
209         if (typeof defaultlib == 'object') {
210                 defaultlib = defaultlib.id();   
211         }
212         var popup = menupopup;
213         if (typeof(popup)!='object') { popup = document.getElementById(menupopup); }
214         if (popup) {
215                 //sdump('D_POPULATE','found popup\n');
216                 empty_widget(popup);
217                 var padding_flag = false;
218                 for (var ou in mw.G.my_orgs) {
219                         //sdump('D_POPULATE','\tlooping on my_orgs:  ' + js2JSON(mw.G.my_orgs[ou]) + '\n');
220                         //sdump('D_POPULATE','\tlooping on my_orgs:  ou = ' + ou + '\n');
221                         var menuitem = document.createElement('menuitem');
222                         popup.appendChild(menuitem);
223                         //sdump('D_POPULATE','\t\tmenuitem = ' + menuitem + '\n');
224                         var padding = '';
225                         //var depth = find_id_object_in_list( mw.G.aout_list, mw.G.my_orgs[ou].ou_type() ).depth();
226                         var depth = mw.G.aout_hash[ mw.G.my_orgs[ou].ou_type() ].depth();
227                         if (depth == '0') { padding_flag = true; }
228                         if (padding_flag) {
229                                 for (var i = 0; i < depth; i++) { 
230                                         padding = padding + '  '; 
231                                 }
232                         }
233                         menuitem.setAttribute('label', padding + mw.G.my_orgs[ou].name() );
234                         menuitem.setAttribute('value', mw.G.my_orgs[ou].id() );
235                         if (id_flag) menuitem.setAttribute('id', 'libitem' + mw.G.my_orgs[ou].id() );
236                         //sdump('D_POPULATE','\tname = ' + mw.G.my_orgs[ou].name() + '  id = ' + mw.G.my_orgs[ou].id() + '\n');
237                         if (defaultlib == mw.G.my_orgs[ou].id()) {
238                                 default_menuitem = menuitem;
239                                 sdump('D_POPULATE','Setting defaultlib = ' + defaultlib + '\n');
240                         }
241                 }
242                 var list = menulist;
243                 if (typeof(list)!='object') { list = document.getElementById(menulist); }
244                 if (list && defaultlib && default_menuitem) {
245                         //sdump('D_POPULATE','default_menuitem = ' + default_menuitem + '\n');
246                         if (list) { list.selectedItem = default_menuitem; }
247                 }
248         } else {
249                         sdump('D_POPULATE','populate_lib_list: Could not find ' + menupopup + '\n');
250                         throw('populate_lib_list: Could not find ' + menupopup + '\n');
251         }
252 }
253
254 function populate_lib_list_with_branch(menulist,menupopup,defaultlib,branch,id_flag) {
255         sdump('D_TRACE','populate_lib_list_with_branch\n');
256         var default_menuitem;
257         if (typeof defaultlib == 'object') {
258                 defaultlib = defaultlib.id();   
259         }
260         var popup = menupopup;
261         if (typeof(popup)!='object') popup = document.getElementById(menupopup);
262         if (popup) {
263                 empty_widget(popup);
264                 var padding_flag = true;
265                 var flat_branch = flatten_ou_branch( branch );
266                 //sdump('D_POPULATE','\n\nflat_branch = ' + js2JSON(flat_branch) + '\n');
267                 for (var i in flat_branch) {
268                         //sdump('D_POPULATE','i = ' + js2JSON(i) + ' flat_branch[i] = ' + js2JSON(flat_branch[i]) + '\n');
269                         var menuitem = document.createElement('menuitem');
270                         var padding = '';
271                         //if (flat_branch[i].ou_type().depth() == '0') { padding_flag = true; }
272                         var depth = mw.G.aout_hash[ flat_branch[i].ou_type() ].depth();
273                         if (padding_flag) {
274                                 for (var j = 0; j < depth; j++) { 
275                                         padding = padding + '  '; 
276                                 }
277                         }
278                         menuitem.setAttribute('label', padding + flat_branch[i].name() );
279                         menuitem.setAttribute('value', flat_branch[i].id() );
280                         if (id_flag) menuitem.setAttribute('id', 'libitem' + flat_branch[i].id() );
281                         if (defaultlib == flat_branch[i].id()) {
282                                 default_menuitem = menuitem;
283                                 sdump('D_POPULATE','i = ' + i + ' Setting defaultlib = ' + defaultlib + '   menuitem = ' + default_menuitem + '  value = ' + default_menuitem.getAttribute('value') + '\n');
284                         }
285                         popup.appendChild(menuitem);
286                 }
287                 var list = menulist;
288                 if (typeof(list)!='object') { list = document.getElementById(menulist); }
289                 if (list && defaultlib && default_menuitem) {
290                         //sdump('D_POPULATE','default_menuitem = ' + default_menuitem + ' value = ' + default_menuitem.getAttribute('value') + '\n');
291                         if (list) { list.selectedItem = default_menuitem; }
292                 }
293         } else {
294                         sdump('D_POPULATE','populate_lib_list_with_branch: Could not find ' + menupopup + '\n');
295                         throw('populate_lib_list_with_branch: Could not find ' + menupopup + '\n');
296         }
297         sdump('D_POPULATE','\tleaving populate_lib_list_with_branch\n');
298 }
299
300 function populate_user_profile(menulist,menupopup,defaultap) {
301         sdump('D_TRACE','Entering populate_user_profile\n');
302         var popup = document.getElementById(menupopup);
303         if (popup) {
304                 empty_widget(popup);
305                 for (var i in mw.G.ap_list) {
306                         var menuitem = document.createElement('menuitem');
307                         menuitem.setAttribute('label', mw.G.ap_list[i].name()); 
308                         menuitem.setAttribute('value', mw.G.ap_list[i].id()); 
309                         menuitem.setAttribute('id', 'apitem' + mw.G.ap_list[i].id()); 
310                         //sdump('D_POPULATE','pop_ap_list: i = ' + i + ' ap = ' + mw.G.ap_list[i] + ' = ' + js2JSON(mw.G.ap_list[i]) + '\n');
311                         popup.appendChild(menuitem);
312                 }
313                 var list = document.getElementById(menulist);
314                 if (list && defaultap) {
315                         if (typeof defaultap == 'object') {
316                                 defaultap = defaultap.id();     
317                         }
318                         var menuitem_id = 'apitem' + defaultap;
319                         var menuitem = document.getElementById(
320                                 menuitem_id
321                         );
322                         var  menulist_e = document.getElementById(menulist);
323                         if (menulist_e) { menulist_e.selectedItem = menuitem; }
324                 }
325         } else {
326                         sdump('D_POPULATE','populate_user_profile: Could not find menupopup: ' + menupopup + '\n');
327                         throw('populate_user_profile: Could not find menupopup: ' + menupopup + '\n');
328         }
329 }
330
331 function populate_ident_types(menulist,menupopup,repeatid,defaultcit) {
332         sdump('D_TRACE','Entering populate_ident_types\n');
333         var popup = document.getElementById(menupopup);
334         if (popup) {
335                 empty_widget(popup);
336                 for (var i in mw.G.cit_list) {
337                         var menuitem = document.createElement('menuitem');
338                         menuitem.setAttribute('label', mw.G.cit_list[i].name()); 
339                         menuitem.setAttribute('value', mw.G.cit_list[i].id()); 
340                         menuitem.setAttribute('id', 'cit' + repeatid + 'item' + mw.G.cit_list[i].id()); 
341                         //sdump('D_POPULATE','pop_cit_list: i = ' + i + ' cit = ' + mw.G.cit_list[i] + ' = ' + js2JSON(mw.G.cit_list[i]) + '\n');
342                         popup.appendChild(menuitem);
343                 }
344                 if (menulist && defaultcit) {
345                         if (typeof defaultcit == 'object') {
346                                 defaultcit = defaultcit.id();   
347                         }
348                         var menuitem_id = 'cit' + repeatid + 'item' + defaultcit;
349                         var menuitem = document.getElementById(
350                                 menuitem_id
351                         );
352                         var  menulist_e = document.getElementById(menulist);
353                         if (menulist_e) { menulist_e.selectedItem = menuitem; }
354                 }
355         } else {
356                         sdump('D_POPULATE','populate_ident_types: Could not find menupopup: ' + menupopup + '\n');
357                         throw('populate_ident_types: Could not find menupopup: ' + menupopup + '\n');
358         }
359 }
360
361
362
363 function populate_name_prefix(menulist,menupopup,defaultvalue) {
364         var popup = document.getElementById(menupopup);
365         if (popup) {
366                 empty_widget(popup);
367                 var prefix_list = [
368                         'Mr','Mrs','Ms','Miss', 'Dr',
369                         '',
370                         'Advisor',
371                         'Airman',
372                         'Admiral',
373                         'Agent',
374                         'Ambassador',
375                         'Baron',
376                         'Baroness',
377                         'Bishop',
378                         'Brother',
379                         'Cadet',
380                         'Captain',
381                         'Cardinal',
382                         'Chairperson',
383                         'Chancellor',
384                         'Chief',
385                         'Colonel', 
386                         'Commander',
387                         'Commodore',
388                         'Congressman',
389                         'Congresswoman',
390                         'Constable',
391                         'Consul',
392                         'Corporal',
393                         'Councilperson',
394                         'Counselor',
395                         'Dean',
396                         'Duchess',
397                         'Duke',
398                         'Elder',
399                         'Ensign',
400                         'Father',
401                         'General',
402                         'Governor',
403                         'Judge',
404                         'Justice',
405                         'King',
406                         'Lady',
407                         'Lieutenant',
408                         'Lord',
409                         'Major',
410                         'Marshal',
411                         'Mayor',
412                         'Midshipman',
413                         'Minister',
414                         'Monsignor',
415                         'Officer',
416                         'Pastor',
417                         'Petty Officer',
418                         'Pope',
419                         'Prince',
420                         'Princess',
421                         'President',
422                         'Private',
423                         'Prof',
424                         'Queen',
425                         'Rabbi',
426                         'Representative',
427                         'Reverend',
428                         'Seaman',
429                         'Secretary',
430                         'Senator',
431                         'Sergeant',
432                         'Sheriff',
433                         'Sir',
434                         'Sister',
435                         'Speaker',
436                         'Specialist',
437                         'Treasurer',
438                         'Vice President',
439                         'Warrant Officer'
440                 ];
441                 for (var i in prefix_list) {
442                         var menuitem = document.createElement('menuitem');
443                         menuitem.setAttribute('label', prefix_list[i]); 
444                         menuitem.setAttribute('value', prefix_list[i]); 
445                         popup.appendChild(menuitem);
446                 }
447                 var list = document.getElementById(menulist);
448                 if (list) {
449                         if (defaultvalue) { 
450                                 list.value = defaultvalue;
451                         }
452                 } else {
453                         sdump('D_POPULATE','populate_name_prefix: Could not find menulist: ' + menulist + '\n');
454                         throw('populate_name_prefix: Could not find menulist: ' + menulist + '\n');
455                 }
456         } else {
457                         sdump('D_POPULATE','populate_name_prefix: Could not find menupopup: ' + menupopup + '\n');
458                         throw('populate_name_prefix: Could not find menupopup: ' + menupopup + '\n');
459         }
460
461 }
462
463 function populate_name_suffix(menulist,menupopup,defaultvalue) {
464         var popup = document.getElementById(menupopup);
465         if (popup) {
466                 empty_widget(popup);
467                 var suffix_list = [
468                         'Jr','Sr','II','III',
469                         '',
470                         'AA',
471                         'AS',
472                         'AAS',
473                         'BA',
474                         'BS',
475                         'CFPIM',
476                         'CPA',
477                         'CPIM',
478                         'CPM',
479                         'CXE',
480                         'DC',
481                         'DDS',
482                         'DO', 
483                         'DPM',
484                         'DVM',
485                         'Esq',
486                         'FACAAI',
487                         'FACP',
488                         'FACS',
489                         'FACEP',
490                         'FCP',
491                         'FICS',
492                         'GYN',
493                         'JD',
494                         'LPN',
495                         'MA',
496                         'MCSE',
497                         'MD', 
498                         'MS',
499                         'NMD',
500                         'OB',
501                         'PhD',
502                         'RN'
503                 ];
504                 for (var i in suffix_list) {
505                         var menuitem = document.createElement('menuitem');
506                         menuitem.setAttribute('label', suffix_list[i]); 
507                         menuitem.setAttribute('value', suffix_list[i]); 
508                         popup.appendChild(menuitem);
509                 }
510                 var list = document.getElementById(menulist);
511                 if (list) { 
512                         if (defaultvalue) { 
513                                 list.value = defaultvalue;
514                         }
515                 } else {
516                         sdump('D_POPULATE','populate_name_suffix: Could not find ' + menulist + '\n');
517                         throw('populate_name_suffix: Could not find ' + menulist + '\n');
518                 }
519         } else {
520                         sdump('D_POPULATE','populate_name_suffix: Could not find ' + menupopup + '\n');
521                         throw('populate_name_suffix: Could not find ' + menupopup + '\n');
522         }
523
524 }
525