]> git.evergreen-ils.org Git - Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/main/grid_list.js
hookup menu for billing type
[Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / main / grid_list.js
1 sdump('D_TRACE','Loading grid_list.js\n');
2
3 function grid_list_init(p) {
4         sdump('D_GRID_LIST',"TESTING: grid_list.js: " + mw.G['main_test_variable'] + '\n');
5         sdump('D_CONSTRUCTOR',arg_dump(arguments));
6
7         p.grid = p.node.getElementsByAttribute('name','grid')[0];
8         //p.popup = p.node.getElementsByTagName('popup')[0];
9         p.grid_columns = p.grid.firstChild;
10         p.grid_rows = p.grid.lastChild;
11
12         p._context_function = function (ev) { alert('default _context_function'); };
13         //p.popup.addEventListener('popupshowing',function (ev) { return p._context_function(ev); },false);
14
15         grid_list_make_columns( p, p.cols )
16
17         p.clear_grid = function () {
18                 sdump('D_GRID_LIST','p.clear_grid()\n');
19                 while( p.grid_rows.childNodes.length > 1 ) {
20                         p.grid_rows.removeChild( p.grid_rows.lastChild );
21                 }
22         }
23
24         p.add_rows = function (new_rows) { 
25                 sdump('D_GRID_LIST','p.add_rows()\n');
26                 return grid_list_add_rows(p,new_rows); 
27         }
28
29         p.remove_row_by_id = function (id) {
30                 sdump('D_GRID_LIST','p.remove_row_by_id()\n');
31                 return grid_list_remove_row_by_id(p,id); 
32         }
33
34         p.register_context_builder = function (f) {
35                 sdump('D_GRID_LIST','p.register_context_builder(' + f + ')\n');
36                 return p._context_function = f;
37         }
38
39         sdump('D_TRACE_EXIT',arg_dump(arguments));
40         return p;
41 }
42
43 function grid_list_make_columns( p, cols ) {
44         sdump('D_GRID_LIST',arg_dump(arguments,{2:'.length'}));
45         sdump('D_TRACE_ENTER',arg_dump(arguments));
46         var d = p.w.document;
47         // cols[ idx ] = { 'id':???, 'label':???, 'primary':???, 'flex':??? }
48         var header = p.w.document.createElement('row');
49         p.grid_rows.appendChild( header );
50         for (var i = 0; i < cols.length; i++) {
51                 var col = cols[i];
52                 sdump('D_GRID_LIST','Col ' + i + ' : ' + js2JSON( col ) + '\n');
53                 var gridcol = d.createElement( 'column' );
54                 p.grid_columns.appendChild( gridcol );
55                 for (var j in col) {
56                         gridcol.setAttribute( j, col[j] );
57                 }
58                 var th = p.w.document.createElement('label');
59                 header.appendChild( th );
60                 th.setAttribute('value', col.label);
61                 th.setAttribute('style','font-weight: bold;');
62         }
63         sdump('D_TRACE_EXIT',arg_dump(arguments));
64 }
65
66 function grid_list_add_rows( p, new_rows ) {
67         sdump('D_GRID_LIST',arg_dump(arguments,{2:'.length'}));
68         sdump('D_TRACE_ENTER',arg_dump(arguments));
69         for (var i = 0; i < new_rows.length; i++) {
70                 var new_row = new_rows[i];
71
72                 p.grid_rows.appendChild( new_row );
73
74         }
75         sdump('D_TRACE_EXIT',arg_dump(arguments));
76 }
77
78 function grid_list_remove_row_by_id( p, id ) {
79         sdump('D_GRID_LIST',arg_dump(arguments));
80         var row = p.grid_rows.getElementsByAttribute('id',id)[0];
81         p.grid_rows.removeChild( row );
82 }