1 sdump('D_TRACE','Loading patron_bills.js\n');
3 function patron_bills_init(p) {
4 sdump('D_PATRON_BILLS',"TESTING: patron_bills.js: " + mw.G['main_test_variable'] + '\n');
5 sdump('D_CONSTRUCTOR',arg_dump(arguments));
7 p.patron_bills_cols = [
10 'id' : 'id', 'label' : getString('mbts_id_label'), 'flex' : 1,
11 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts', 'fm_field_render' : '.id()'
15 'id' : 'xact_dates', 'label' : getString('bills_xact_dates_label'), 'flex' : 1,
16 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts',
17 'fm_field_render' : 'xact_dates_box($$)'
20 'id' : 'money', 'label' : getString('bills_money_label'), 'flex' : 1,
21 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts',
22 'fm_field_render' : 'money_box($$)'
26 'id' : 'total_owed', 'label' : getString('mbts_total_owed_label'), 'flex' : 1,
27 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts', 'fm_field_render' : '.total_owed()'
30 'id' : 'total_paid', 'label' : getString('mbts_total_paid_label'), 'flex' : 1,
31 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts', 'fm_field_render' : '.total_paid()'
34 'id' : 'balance_owed', 'label' : getString('mbts_balance_owed_label'), 'flex' : 1,
35 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts', 'fm_field_render' : '.balance_owed()'
39 'id' : 'current_pay', 'label' : getString('bills_current_payment_label'), 'flex' : 1, 'render_xul' : 'textbox'
43 p.list_box = list_box_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.patron_bills_cols, 'debug' : p.app } );
46 p.add_patron_bills = function (bills) {
47 sdump('D_PATRON_BILLS','p.add_patron_bills(' + bills + ')\n');
48 return patron_bills_add_patron_bills(p,bills);
50 p.clear_patron_bills = p.list_box.clear_rows;
52 sdump('D_TRACE_EXIT',arg_dump(arguments));
56 function list_box_init( p ) {
57 var listbox = p.w.document.createElement('listbox');
58 p.node.appendChild( listbox );
59 listbox.setAttribute('flex','1');
60 listbox.setAttribute('seltype','multiple');
62 var listhead = p.w.document.createElement('listhead');
63 listbox.appendChild( listhead );
65 var listcols = p.w.document.createElement('listcols');
66 listbox.appendChild( listcols );
68 if (window.navigator.userAgent.match( /Firefox/ )) {
69 var listheader = p.w.document.createElement('listheader');
70 listhead.appendChild( listheader );
71 listheader.setAttribute('label', '');
72 var listcol = p.w.document.createElement('listcol');
73 listcols.appendChild( listcol );
76 for (var i = 0; i < p.cols.length; i++ ) {
78 var listheader = p.w.document.createElement('listheader');
79 listhead.appendChild( listheader );
80 listheader.setAttribute('label', p.cols[i].label);
82 var listcol = p.w.document.createElement('listcol');
83 listcols.appendChild( listcol );
84 listcol.setAttribute('flex', p.cols[i].flex);
87 p.add_row = function (cols) {
89 var listitem = p.w.document.createElement('listitem');
90 listbox.appendChild( listitem );
91 listitem.setAttribute('allowevents','true');
93 if (window.navigator.userAgent.match( /Firefox/ )) {
94 listitem.setAttribute('label','');
97 for (var i = 0; i < cols.length; i++) {
100 listitem.appendChild( cols[i] );
102 sdump('D_ERROR', cols[i] + '\n' + E + '\n');
107 p.clear_rows = function () {
108 var nl = listbox.getElementsByTagName('listitem');
109 for (var i = 0; i < nl.length; i++) {
110 listbox.removeChild(nl[i]);
118 function patron_bills_add_patron_bills(p, bills) {
119 sdump('D_PATRON_BILLS',arg_dump(arguments,{1:true}));
121 function xact_dates_box( mbts ) {
122 var grid = p.w.document.createElement('grid');
123 var cols = p.w.document.createElement('columns');
124 grid.appendChild( cols );
125 cols.appendChild( p.w.document.createElement('column') );
126 cols.appendChild( p.w.document.createElement('column') );
127 var rows = p.w.document.createElement('rows');
128 grid.appendChild( rows );
129 var row0 = p.w.document.createElement('row');
130 rows.appendChild( row0 );
131 var label_r0_1 = p.w.document.createElement('label');
132 row0.appendChild( label_r0_1 );
133 label_r0_1.setAttribute('value',getString('mbts_id_label'));
134 var label_r0_2 = p.w.document.createElement('label');
135 row0.appendChild( label_r0_2 );
136 label_r0_2.setAttribute('value',mbts.id());
137 var row1 = p.w.document.createElement('row');
138 rows.appendChild( row1 );
139 var label_r1_1 = p.w.document.createElement('label');
140 row1.appendChild( label_r1_1 );
141 label_r1_1.setAttribute('value',getString('mbts_xact_start_label'));
142 var label_r1_2 = p.w.document.createElement('label');
143 row1.appendChild( label_r1_2 );
144 label_r1_2.setAttribute('value',mbts.xact_start().toString().substr(0,10));
145 var row2 = p.w.document.createElement('row');
146 rows.appendChild( row2 );
147 var label_r2_1 = p.w.document.createElement('label');
148 row2.appendChild( label_r2_1 );
149 label_r2_1.setAttribute('value',getString('mbts_xact_finish_label'));
150 var label_r2_2 = p.w.document.createElement('label');
151 row2.appendChild( label_r2_2 );
152 try { label_r2_2.setAttribute('value',mbts.xact_finish().toString().substr(0,10));
158 function money_box( mbts ) {
159 var grid = p.w.document.createElement('grid');
160 var cols = p.w.document.createElement('columns');
161 grid.appendChild( cols );
162 cols.appendChild( p.w.document.createElement('column') );
163 cols.appendChild( p.w.document.createElement('column') );
164 var rows = p.w.document.createElement('rows');
165 grid.appendChild( rows );
166 var row1 = p.w.document.createElement('row');
167 rows.appendChild( row1 );
168 var label_r1_1 = p.w.document.createElement('label');
169 row1.appendChild( label_r1_1 );
170 label_r1_1.setAttribute('value',getString('mbts_total_owed_label'));
171 var label_r1_2 = p.w.document.createElement('label');
172 row1.appendChild( label_r1_2 );
173 label_r1_2.setAttribute('value',mbts.total_owed());
174 var row2 = p.w.document.createElement('row');
175 rows.appendChild( row2 );
176 var label_r2_1 = p.w.document.createElement('label');
177 row2.appendChild( label_r2_1 );
178 label_r2_1.setAttribute('value',getString('mbts_total_paid_label'));
179 var label_r2_2 = p.w.document.createElement('label');
180 row2.appendChild( label_r2_2 );
181 label_r2_2.setAttribute('value',mbts.total_paid());
182 var row3 = p.w.document.createElement('row');
183 rows.appendChild( row3 );
184 var label_r3_1 = p.w.document.createElement('label');
185 row3.appendChild( label_r3_1 );
186 label_r3_1.setAttribute('value',getString('mbts_balance_owed_label'));
187 label_r3_1.setAttribute('style','font-weight: bold');
188 var label_r3_2 = p.w.document.createElement('label');
189 row3.appendChild( label_r3_2 );
190 label_r3_2.setAttribute('value',mbts.balance_owed());
191 label_r3_2.setAttribute('style','font-weight: bold');
196 var obj_string ='mbts';
198 for (var i = 0; i < bills.length; i++) {
204 for (var j = 0; j < p.patron_bills_cols.length; j++) {
205 var hash = p.patron_bills_cols[j];
206 sdump('D_PATRON_BILLS','Considering ' + js2JSON(hash) + '\n');
207 var listcell = p.w.document.createElement('listcell');
208 listcell.setAttribute('pack','start');
209 listcell.setAttribute('align','start');
210 listcell.setAttribute('style','border-bottom: black solid thin');
212 if (hash.fm_field_render) {
215 switch( hash.fm_class ) {
216 case 'mvr' : obj_string = 'mvr'; break;
218 var cmd = parse_render_string( obj_string, hash.fm_field_render );
219 sdump('D_PATRON_BILLS','cmd = ' + cmd + '\n');
222 sdump('D_PATRON_BILLS','eval = ' + col + '\n');
224 sdump('D_ERROR',E + '\n');
226 if (typeof(col) == 'string') {
227 listcell.setAttribute('label',col);
229 listcell.appendChild( col );
232 if (hash.render_xul) {
233 var xul = p.w.document.createElement( hash.render_xul );
234 listcell.appendChild( xul );
236 cols.push( listcell );
238 p.list_box.add_row( cols );