]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_results.js
context menu
[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         if (p.onload) {
58                 try {
59                         sdump('D_TRACE','trying psuedo-onload: ' + p.onload + '\n');
60                         p.onload(p.w);
61                 } catch(E) {
62                         sdump('D_ERROR', js2JSON(E) + '\n' );
63                 }
64         }
65         sdump('D_TRACE_EXIT',arg_dump(arguments));
66         return;
67 }
68
69 function patron_search_results_init_after_paged_tree(p) {
70         sdump('D_PATRON_SEARCH_RESULTS',arg_dump(arguments));
71         sdump('D_TRACE_ENTER',arg_dump(arguments));
72         var result = function (tree_win) {
73                 sdump('D_TRACE_ENTER',arg_dump(arguments));
74                 sdump('D_PATRON_SEARCH_RESULTS',arg_dump(arguments));
75                 tree_win.register_select_callback( p.w._patron_select_callback );
76                 tree_win.register_flesh_row_function( p.w._flesh_patron_function );
77                 tree_win.register_context_builder( p.w._context_function );
78                 p.w.add_patrons = tree_win.add_rows;
79                 p.w.clear_patrons = tree_win.clear_tree;
80                 sdump('D_TRACE_EXIT',arg_dump(arguments));
81                 return;
82         };
83         sdump('D_TRACE_EXIT',arg_dump(arguments));
84         return result;
85 }
86
87 function patron_search_results_map_patron_to_cols(p, patron, treeitem) {
88         sdump('D_PATRON_SEARCH_RESULTS',arg_dump(arguments));
89         sdump('D_TRACE_ENTER',arg_dump(arguments));
90         var cols = new Array();
91         for (var i = 0; i < p.w.patron_cols.length; i++) {
92                 var hash = p.w.patron_cols[i];
93                 sdump('D_PATRON_SEARCH_RESULTS','Considering ' + js2JSON(hash) + '\n');
94                 var cmd = 'patron'+hash.fm_field_render;
95                 sdump('D_PATRON_SEARCH_RESULTS','cmd = ' + cmd + '\n');
96                 var col = '';
97                 try {
98                         col = eval( cmd );
99                         sdump('D_PATRON_SEARCH_RESULTS','eval = ' + col + '\n');
100                 } catch(E) {
101                         sdump('D_ERROR',js2JSON(E) + '\n');
102                 }
103                 cols.push( col );
104         }
105         sdump('D_PATRON_SEARCH_RESULTS','cols = ' + js2JSON(cols) + '\n');
106         p.w.tree_win.map_cols_to_treeitem( cols, treeitem );
107         sdump('D_TRACE_EXIT',arg_dump(arguments));
108 }