snapshot of listbox before blowing it away with something else
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 20 Jul 2005 12:53:08 +0000 (12:53 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 20 Jul 2005 12:53:08 +0000 (12:53 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@1298 dcc99617-32d9-48b4-a31d-7c20da2025e4

Evergreen/staff_client/chrome/content/evergreen/patron/patron_bills.js
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js

index ed37e0c..2a605f7 100644 (file)
@@ -40,18 +40,19 @@ function patron_bills_init(p) {
 }
 
 function list_box_init( p ) {
-       var listbox = p.w.document.createElement('listbox');
-       p.node.appendChild( listbox );
-       listbox.setAttribute('flex','1');
-       listbox.setAttribute('seltype','multiple');
+       p.listbox = p.w.document.createElement('listbox');
+       p.node.appendChild( p.listbox );
+       p.listbox.setAttribute('flex','1');
+       p.listbox.setAttribute('seltype','multiple');
 
                var listhead = p.w.document.createElement('listhead');
-               listbox.appendChild( listhead );
+               p.listbox.appendChild( listhead );
 
                var listcols = p.w.document.createElement('listcols');
-               listbox.appendChild( listcols );
+               p.listbox.appendChild( listcols );
 
-                       if (window.navigator.userAgent.match( /Firefox/ ))  {
+                       /*if (window.navigator.userAgent.match( /Firefox/ ))*/  {
+                               sdump('D_FIREFOX','Kludge: Adding extra listheader and listcol\n');
                                var listheader = p.w.document.createElement('listheader');
                                listhead.appendChild( listheader );
                                listheader.setAttribute('label', '');
@@ -73,20 +74,22 @@ function list_box_init( p ) {
        p.add_row = function (cols, params) {
 
                var listitem = p.w.document.createElement('listitem');
-               listbox.appendChild( listitem );
+               p.listbox.appendChild( listitem );
                listitem.setAttribute('allowevents','true');
                listitem.setAttribute('style','border-bottom: black solid thin');
                for (var i in params) {
                        listitem.setAttribute( i, params[i] );
                }
 
-               if (window.navigator.userAgent.match( /Firefox/ ))  {
-                       listitem.setAttribute('label','');
+               /* if (window.navigator.userAgent.match( /Firefox/ )) */ {
+                       sdump('D_FIREFOX','Kludge: Setting label on listitem\n');
+                       listitem.setAttribute('label',' ');
                }
 
                for (var i = 0; i < cols.length; i++) {
 
                        try {
+                               dump('listitem.append.  i = ' + i + '  cols[i] = ' + cols[i] + '\n');
                                listitem.appendChild( cols[i] );
                        } catch(E) {
                                sdump('D_ERROR', cols[i] + '\n' + E + '\n');
@@ -95,11 +98,7 @@ function list_box_init( p ) {
        }
 
        p.clear_rows = function () {
-               var nl = listbox.getElementsByTagName('listitem');
-               for (var i = 0; i < nl.length; i++) {
-                       listbox.removeChild(nl[i]);
-               }
-
+               while( p.listbox.getRowCount() > 0 ) { p.listbox.removeItemAt(0); }
        }
 
        return p;
@@ -183,8 +182,14 @@ function patron_bills_add_patron_bills(p, bills) {
                return grid;
        }
 
+       function gen_timeout_add_row( cols, mbts ) {
+               return function() { p.list_box.add_row( cols, { 'record_id' : mbts.id() } ) };
+       }
+
        var obj_string ='mbts';
 
+       setTimeout( function(){p.list_box.clear_rows();}, 0 );
+
        for (var i = 0; i < bills.length; i++) {
 
                var mbts = bills[i];
@@ -225,6 +230,6 @@ function patron_bills_add_patron_bills(p, bills) {
                        }
                        cols.push( listcell );
                }
-               p.list_box.add_row( cols, { 'record_id' : mbts.id() } );
+               setTimeout( gen_timeout_add_row( cols, mbts), 0);
        }
 }
index 1cded76..cab9f0a 100755 (executable)
@@ -477,9 +477,13 @@ function patron_display_patron_bills_init(p) {
        p.patron_bills = patron_bills_init( { 'w' : p.w, 'node' : p.patron_bills_node, 'debug' : p.app } );
 
        p.redraw_patron_bills = function() {
-               p.patron_bills.clear_patron_bills();
-               if (!p._patron.bills) patron_get_bills( p._patron );
-               p.patron_bills.add_patron_bills( p._patron.bills );
+               try {
+                       p.patron_bills.clear_patron_bills();
+                       if (!p._patron.bills) patron_get_bills( p._patron );
+                       p.patron_bills.add_patron_bills( p._patron.bills );
+               } catch(E) {
+                       sdump('D_ERROR',js2JSON(E) + '\n');
+               }
        }
 
 }