From 9c63f5e6a84c59e6ad86804dec500aa56c923524 Mon Sep 17 00:00:00 2001 From: phasefx Date: Tue, 19 Jul 2005 17:41:29 +0000 Subject: [PATCH] listbox and firefox bug, bill interface incomplete git-svn-id: svn://svn.open-ils.org/ILS/trunk@1279 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Evergreen/staff_client/Makefile | 2 +- Evergreen/staff_client/application.ini | 2 +- .../content/evergreen/patron/patron_bills.js | 114 +++++++++++++----- .../evergreen/patron/patron_display.js | 4 +- .../evergreen/patron/patron_display.xul | 2 +- .../patron/patron_display_overlay.xul | 3 +- .../chrome/content/evergreen/util/error.js | 3 +- .../chrome/locale/en-US/evergreen/auth.dtd | 2 +- 8 files changed, 96 insertions(+), 36 deletions(-) diff --git a/Evergreen/staff_client/Makefile b/Evergreen/staff_client/Makefile index bf05ed1a2f..c9648ee838 100644 --- a/Evergreen/staff_client/Makefile +++ b/Evergreen/staff_client/Makefile @@ -1,7 +1,7 @@ VERSION=0.0.9 PACKAGE=Evergreen DESCRIPTION=Evergreen Staff Client Pre-Alpha -BUILD=2005071519 +BUILD=2005071911 ILS_DIR=${PWD}/../.. diff --git a/Evergreen/staff_client/application.ini b/Evergreen/staff_client/application.ini index a037ae6c75..e9744af36f 100644 --- a/Evergreen/staff_client/application.ini +++ b/Evergreen/staff_client/application.ini @@ -14,7 +14,7 @@ Version=0.0.9 ; ; This field specifies your application's build ID (timestamp). This field is ; required. -BuildID=2005071519 +BuildID=2005071911 ; ; This field specifies a compact copyright notice for your application. This ; field is optional. diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_bills.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_bills.js index 9be3962843..070ae86596 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_bills.js +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_bills.js @@ -5,9 +5,11 @@ function patron_bills_init(p) { sdump('D_CONSTRUCTOR',arg_dump(arguments)); p.patron_bills_cols = [ + /* { 'id' : 'checkbox', 'label' : ' ', 'flex' : 0, 'render_xul' : 'checkbox' }, + */ { 'id' : 'id', 'label' : getString('mbts_id_label'), 'flex' : 1, 'primary' : false, 'hidden' : false, 'fm_class' : 'mbts', 'fm_field_render' : '.id()' @@ -37,43 +39,75 @@ function patron_bills_init(p) { } ]; - p.grid_list = grid_list_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.patron_bills_cols, 'debug' : p.app } ); + p.list_box = list_box_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.patron_bills_cols, 'debug' : p.app } ); + + p.add_patron_bills = function (bills) { sdump('D_PATRON_BILLS','p.add_patron_bills(' + bills + ')\n'); return patron_bills_add_patron_bills(p,bills); } - p.clear_patron_bills = p.grid_list.clear_grid; - - p.register_bill_context_builder = function (f) { - sdump('D_PATRON_BILLS','p.register_context_builder(' + f + ')\n'); - p.grid_list.register_context_builder( f ); - } + p.clear_patron_bills = p.list_box.clear_rows; sdump('D_TRACE_EXIT',arg_dump(arguments)); return p; } -function cols() { - sdump('D_PATRON_BILLS',arg_dump(arguments,{1:true})); - for (var i = 0; i < p.mbts_cols.length; i++) { - var hash = p.mbts_cols[i]; - var obj_string = 'mbts'; - var cmd = parse_render_string( obj_string, hash.fm_field_render ); - var col = ''; - try { - col = eval( cmd ); - } catch(E) { - sdump('D_ERROR',js2JSON(E) + '\n'); - } - var label = p.w.document.createElement('label'); - row.appendChild( label ); - label.setAttribute('value',col); - } +function list_box_init( p ) { + var listbox = p.w.document.createElement('listbox'); + p.node.appendChild( listbox ); + listbox.setAttribute('flex','1'); + + var listhead = p.w.document.createElement('listhead'); + listbox.appendChild( listhead ); + + var listcols = p.w.document.createElement('listcols'); + listbox.appendChild( listcols ); + + for (var i = 0; i < p.cols.length; i++ ) { + + var listheader = p.w.document.createElement('listheader'); + listhead.appendChild( listheader ); + listheader.setAttribute('label', p.cols[i].label); + + var listcol = p.w.document.createElement('listcol'); + listcols.appendChild( listcol ); + listcol.setAttribute('flex', p.cols[i].flex); + } + + p.add_row = function (cols) { + + var listitem = p.w.document.createElement('listitem'); + listbox.appendChild( listitem ); + listitem.setAttribute('allowevents','true'); + var idx = 0; + if (typeof(cols[0]) == 'string') { + + listitem.setAttribute('label',cols[0]); + idx = 1; + } + for (var i = idx; i < cols.length; i++) { + + try { + listitem.appendChild( cols[i] ); + } catch(E) { + sdump('D_ERROR', cols[i] + '\n' + E + '\n'); + } + } + } + + p.clear_rows = function () { + var nl = listbox.getElementsByTagName('listitem'); + for (var i = 0; i < nl.length; i++) { + listbox.removeChild(nl[i]); + } + + } + + return p; } function patron_bills_add_patron_bills(p, bills) { sdump('D_PATRON_BILLS',arg_dump(arguments,{1:true})); - // grid_columns: checkbox, line item, bill amount, payment var obj_string ='mbts'; @@ -81,13 +115,39 @@ function patron_bills_add_patron_bills(p, bills) { var mbts = bills[i]; - var row = p.w.document.createElement('row'); - p.grid_list.add_rows( [ row ] ); + var cols = []; - for (var j = 0; j < p.patron_bills_cols.length; i++) { + for (var j = 0; j < p.patron_bills_cols.length; j++) { var hash = p.patron_bills_cols[j]; + sdump('D_PATRON_BILLS','Considering ' + js2JSON(hash) + '\n'); + var listcell = p.w.document.createElement('listcell'); + var col = ''; if (hash.fm_field_render) { + + var obj = 'mbts'; + switch( hash.fm_class ) { + case 'mvr' : obj_string = 'mvr'; break; + } + var cmd = parse_render_string( obj_string, hash.fm_field_render ); + sdump('D_PATRON_BILLS','cmd = ' + cmd + '\n'); + try { + col = eval( cmd ); + sdump('D_PATRON_BILLS','eval = ' + col + '\n'); + } catch(E) { + sdump('D_ERROR',js2JSON(E) + '\n'); + } + listcell.setAttribute('label',col); + } + if (hash.render_xul) { + var xul = p.w.document.createElement( hash.render_xul ); + listcell.appendChild( xul ); + } + if ( (j == 0) && (window.navigator.userAgent.match( /Firefox/ )) ) { + cols.push( col ); + } else { + cols.push( listcell ); } } + p.list_box.add_row( cols ); } } diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js index 760918f614..efb1bee732 100755 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js @@ -18,7 +18,7 @@ function patron_display_init(p) { patron_display_patron_holds_init(p); // gives: p.patron_bills, p.redraw_patron_bills - //patron_display_patron_bills_init(p); + patron_display_patron_bills_init(p); p.set_patron = function (au) { return p._patron = au; @@ -29,7 +29,7 @@ function patron_display_init(p) { p.redraw_patron_checkout_items(); p.redraw_patron_items(); p.redraw_patron_holds(); - //p.redraw_patron_bills(); + p.redraw_patron_bills(); return render_fm(p.w.document, { 'au' : p._patron }); } diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul index e81df12093..55dbf6fd6c 100755 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul @@ -14,7 +14,7 @@ params.patron_items_node = document.getElementById('PatronItems_main'); params.patron_checkout_items_node = document.getElementById('PatronCheckoutItems_main'); params.patron_holds_node = document.getElementById('PatronHolds_main'); - params.patron_bills_node = document.getElementById('GridList_main'); + params.patron_bills_node = document.getElementById('PatronBills_main'); params.commandset_node = document.getElementById('universal_cmds'); mw.focus_widget( document, 'patron_checkout_barcode_entry_textbox' ); mw.OpenILS_init(params); diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_overlay.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_overlay.xul index 0a7669d0ec..2c3a1e6cec 100755 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_overlay.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_overlay.xul @@ -6,7 +6,6 @@ - @@ -58,7 +57,7 @@ - + diff --git a/Evergreen/staff_client/chrome/content/evergreen/util/error.js b/Evergreen/staff_client/chrome/content/evergreen/util/error.js index 19588b263d..b5c7b998e7 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/util/error.js +++ b/Evergreen/staff_client/chrome/content/evergreen/util/error.js @@ -21,6 +21,7 @@ var sdump_levels = { 'D_CLAM' : false, 'D_PAGED_TREE' : false, 'D_GRID_LIST' : false, + 'D_HTML_TABLE' : true, 'D_TAB' : false, 'D_AUTH' : false, @@ -45,7 +46,7 @@ var sdump_levels = { 'D_CAT' : false, - 'D_PATRON_UTILS' : true, + 'D_PATRON_UTILS' : false, 'D_CIRC_UTILS' : false, 'D_EXPLODE' : false, diff --git a/Evergreen/staff_client/chrome/locale/en-US/evergreen/auth.dtd b/Evergreen/staff_client/chrome/locale/en-US/evergreen/auth.dtd index 85801fb04f..7402b97b93 100644 --- a/Evergreen/staff_client/chrome/locale/en-US/evergreen/auth.dtd +++ b/Evergreen/staff_client/chrome/locale/en-US/evergreen/auth.dtd @@ -1,5 +1,5 @@ - + -- 2.43.2