]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_results.js
going back to heavy overlay use instead of nested iframes (and timeouts). windows...
[working/Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / patron / patron_search_results.js
1 sdump('D_TRACE','Loading patron_search_results.js\n');
2
3 function patron_search_results_init(p) {
4         sdump('D_PATRON_SEARCH_RESULTS',"TESTING: patron_search_results.js: " + mw.G['main_test_variable'] + '\n');
5         sdump('D_TRACE_ENTER',arg_dump(arguments));
6
7         p.w.patron_cols = [
8                 { 
9                         'id' : 'id_col', 'label' : getString('au_label_id'), 'flex' : 1, 
10                         'primary' : true, 'hidden' : false, 'fm_field_render' : '.id()'
11                 },
12                 { 
13                         'id' : 'prefix_col', 'label' : getString('au_label_prefix'), 'flex' : 1, 
14                         'primary' : false, 'hidden' : false, 'fm_field_render' : '.prefix()'
15                 },
16                 { 
17                         'id' : 'family_name_col', 'label' : getString('au_label_family_name'), 'flex' : 1, 
18                         'primary' : false, 'hidden' : false, 'fm_field_render' : '.family_name()'
19                 },
20                 { 
21                         'id' : 'first_given_name_col', 'label' : getString('au_label_first_given_name'), 'flex' : 1, 
22                         'primary' : false, 'hidden' : false, 'fm_field_render' : '.first_given_name()'
23                 },
24                 { 
25                         'id' : 'second_given_name_col', 'label' : getString('au_label_second_given_name'), 'flex' : 1, 
26                         'primary' : false, 'hidden' : false, 'fm_field_render' : '.second_given_name()'
27                 },
28                 { 
29                         'id' : 'suffix_col', 'label' : getString('au_label_suffix'), 'flex' : 1, 
30                         'primary' : false, 'hidden' : false, 'fm_field_render' : '.suffix()'
31                 }
32         ];
33
34         p.w.tree_win = spawn_paged_tree(
35                 p.w.document, 'new_iframe', p.paged_tree, { 
36                         'cols' : p.w.patron_cols,
37                         'onload' : patron_search_results_init_after_paged_tree(p) 
38                 }
39         );
40
41         p.w.register_patron_select_callback = function (f) {
42                 p.w._patron_select_callback = f;
43         }
44
45         p.w.register_flesh_patron_function = function (f) {
46                 p.w._flesh_patron_function = f;
47         }
48
49         p.w.register_context_builder = function (f) {
50                 p.w._context_function = f;
51         }
52
53         p.w.map_patron_to_cols = function (patron, treeitem) {
54                 patron_search_results_map_patron_to_cols(p, patron, treeitem);  
55         }
56
57         consider_Timeout(
58                 function() {
59                         sdump('D_TIMEOUT','******** timeout occurred in patron_search_results.js\n');
60                         if (p.onload) {
61                                 try {
62                                         sdump('D_TRACE','trying psuedo-onload: ' + p.onload + '\n');
63                                         p.onload(p.w);
64                                 } catch(E) {
65                                         sdump('D_ERROR', js2JSON(E) + '\n' );
66                                 }
67                         }
68                 }, 0
69         );
70         sdump('D_TRACE_EXIT',arg_dump(arguments));
71         return;
72 }
73
74 function patron_search_results_init_after_paged_tree(p) {
75         sdump('D_PATRON_SEARCH_RESULTS',arg_dump(arguments));
76         sdump('D_TRACE_ENTER',arg_dump(arguments));
77         var result = function (tree_win) {
78                 sdump('D_TRACE_ENTER',arg_dump(arguments));
79                 sdump('D_PATRON_SEARCH_RESULTS',arg_dump(arguments));
80                 tree_win.register_select_callback( p.w._patron_select_callback );
81                 tree_win.register_flesh_row_function( p.w._flesh_patron_function );
82                 tree_win.register_context_builder( p.w._context_function );
83                 p.w.add_patrons = tree_win.add_rows;
84                 p.w.clear_patrons = tree_win.clear_tree;
85                 sdump('D_TRACE_EXIT',arg_dump(arguments));
86                 return;
87         };
88         sdump('D_TRACE_EXIT',arg_dump(arguments));
89         return result;
90 }
91
92 function patron_search_results_map_patron_to_cols(p, patron, treeitem) {
93         sdump('D_PATRON_SEARCH_RESULTS',arg_dump(arguments));
94         sdump('D_TRACE_ENTER',arg_dump(arguments));
95         var cols = new Array();
96         for (var i = 0; i < p.w.patron_cols.length; i++) {
97                 var hash = p.w.patron_cols[i];
98                 sdump('D_PATRON_SEARCH_RESULTS','Considering ' + js2JSON(hash) + '\n');
99                 var cmd = 'patron'+hash.fm_field_render;
100                 sdump('D_PATRON_SEARCH_RESULTS','cmd = ' + cmd + '\n');
101                 var col = '';
102                 try {
103                         col = eval( cmd );
104                         sdump('D_PATRON_SEARCH_RESULTS','eval = ' + col + '\n');
105                 } catch(E) {
106                         sdump('D_ERROR',js2JSON(E) + '\n');
107                 }
108                 cols.push( col );
109         }
110         sdump('D_PATRON_SEARCH_RESULTS','cols = ' + js2JSON(cols) + '\n');
111         p.w.tree_win.map_cols_to_treeitem( cols, treeitem );
112         sdump('D_TRACE_EXIT',arg_dump(arguments));
113 }