start on new patron edit.. some cat code poking
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 21 Jul 2005 22:37:38 +0000 (22:37 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 21 Jul 2005 22:37:38 +0000 (22:37 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@1354 dcc99617-32d9-48b4-a31d-7c20da2025e4

Evergreen/staff_client/chrome/content/evergreen/Open-ILS/OpenILS_scripts_overlay.xul
Evergreen/staff_client/chrome/content/evergreen/cat/marc_validate.js
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_overlay.xul
Evergreen/staff_client/chrome/content/evergreen/patron/patron_edit.js [new file with mode: 0644]
Evergreen/staff_client/chrome/content/evergreen/patron/patron_utils.js
Evergreen/staff_client/chrome/content/evergreen/util/error.js
Evergreen/staff_client/chrome/content/evergreen/util/ses.js
Evergreen/staff_client/chrome/content/evergreen/util/util.js
Evergreen/staff_client/chrome/locale/en-US/evergreen/OpenILS.properties

index 41b1660..870c137 100644 (file)
@@ -22,6 +22,7 @@
                <script src="chrome://evergreen/content/patron/patron_items.js" />
                <script src="chrome://evergreen/content/patron/patron_holds.js" />
                <script src="chrome://evergreen/content/patron/patron_bills.js" />
+               <script src="chrome://evergreen/content/patron/patron_edit.js" />
                <script src="chrome://evergreen/content/circ/circ_utils.js" />
                <script src="chrome://evergreen/content/circ/checkin.js" />
                <script src="chrome://evergreen/content/circ/checkin_items.js" />
index 43e695c..5128b00 100644 (file)
@@ -71,6 +71,7 @@ function handle_tag_change(ev) {
 
 function test_tagnumber_rule(r) {
        // rows (rows) -> row (r) -> wrapper (w) -> textbox (t)
+       try {
        var t = r.firstChild.firstChild;
        if (t.value.length > 3) { 
                t.value = t.value.substr(0,3); 
@@ -95,6 +96,9 @@ function test_tagnumber_rule(r) {
                var s = 'Tag ' + t.value + ' is unknown.\n';
                rule_warnings.push(s); mw.sdump('D_CAT',s);
        }
+       } catch(E) {
+               handle_error();
+       }
 }
 
 function test_ind1_rule(r) {
index 039ceae..f4a9784 100755 (executable)
@@ -4,7 +4,6 @@ function patron_display_init(p) {
        sdump('D_PATRON_DISPLAY',"TESTING: patron_display.js: " + mw.G['main_test_variable'] + '\n');
        sdump('D_CONSTRUCTOR',arg_dump(arguments));
 
-
        // gives: p.clamshell, p.right_panel, p.left_panel
        patron_display_clamshell_init(p);
 
@@ -20,7 +19,11 @@ function patron_display_init(p) {
        // gives: p.patron_bills, p.redraw_patron_bills
        patron_display_patron_bills_init(p);
 
+       // gives: p.patron_edit, p.redraw_patron_edit
+       patron_display_patron_edit_init(p);
+
        p.set_patron = function (au) {
+               p.patron_edit._patron = au;
                return p._patron = au;
        }
 
@@ -52,7 +55,8 @@ function patron_display_init(p) {
 
        if (p.patron) {
                if (typeof(p.patron) == 'object') {
-                       p._patron = p.patron;
+                       //p._patron = p.patron;
+                       p.set_patron( p.patron );
                        p.display_patron();
                } else
                        p.retrieve_patron_via_barcode( p.patron );
@@ -501,4 +505,22 @@ function patron_display_patron_bills_init(p) {
        }
 }
 
+function patron_display_patron_edit_init(p) {
+       p.patron_edit = patron_edit_init( { 
+               'w' : p.w, 
+               'node' : p.patron_edit_node, 
+               'debug' : p.app
+       } );
+
+       p.patron_edit.refresh = function() { p.refresh(); }
+
+       p.redraw_patron_edit = function() {
+               try {
+                       p.patron_edit.clear_patron_edit();
+                       p.patron_edit.add_rows( patron_edit_rows() );
+               } catch(E) {
+                       sdump('D_ERROR',js2JSON(E) + '\n');
+               }
+       }
+}
 
index 55dbf6f..164fc1b 100755 (executable)
@@ -15,6 +15,7 @@
                        params.patron_checkout_items_node = document.getElementById('PatronCheckoutItems_main');
                        params.patron_holds_node = document.getElementById('PatronHolds_main');
                        params.patron_bills_node = document.getElementById('PatronBills_main');
+                       params.patron_edit_node = document.getElementById('PatronEdit_main');
                        params.commandset_node = document.getElementById('universal_cmds');
                        mw.focus_widget( document, 'patron_checkout_barcode_entry_textbox' );
                        mw.OpenILS_init(params);
index 5a885f2..098d71d 100755 (executable)
                <box id="PatronBills_main" flex="1" />
                <box name="insert2" id="PatronBills_insert2" flex="0" />
        </groupbox>
-       <box id="PatronEdit_main"><label value="edit" /></box>
+       <groupbox id="cssdgb5">
+               <caption id="cssdgb5c" label="&patron_navbar.edit;"/>
+               <box name="insert1" id="PatronEdit_insert1" flex="0" />
+               <box id="PatronEdit_main" flex="1"/>
+               <box name="insert2" id="PatronEdit_insert2" flex="0" />
+       </groupbox>
        <box id="PatronInfo_main"><label value="info" /></box>
 </deck>
 
diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_edit.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_edit.js
new file mode 100644 (file)
index 0000000..2c54f20
--- /dev/null
@@ -0,0 +1,119 @@
+sdump('D_TRACE','Loading patron_edit.js\n');
+
+function patron_edit_init(p) {
+       sdump('D_PATRON_EDIT',"TESTING: patron_edit.js: " + mw.G['main_test_variable'] + '\n');
+       sdump('D_CONSTRUCTOR',arg_dump(arguments));
+
+       patron_edit_list_box_init( p );
+
+       sdump('D_TRACE_EXIT',arg_dump(arguments));
+       return p;
+}
+
+function patron_edit_list_box_init( p ) {
+       p.patron_edit_cols = [
+               {
+                       'id' : 'fieldname', 'label' : getString('patron_edit_fieldname'), 'flex' : 0,
+                       'primary' : false, 'hidden' : false, 'fm_class' : 'row',
+                       'fm_field_render' : '.label.toString()'
+               },
+               {
+                       'id' : 'current_value', 'label' : getString('patron_edit_current_value'), 'flex' : 1,
+                       'primary' : false, 'hidden' : false, 'fm_class' : 'row', 
+                       'fm_field_render' : 'evil_eval(row.fm_class,row.fm_field_render)'
+               },
+               {
+                       'id' : 'new_value', 'label' : getString('patron_edit_new_value'), 'flex' : 0, 
+                       'render_xul' : 'textbox'
+               }
+       ];
+
+       p.list_box = list_box_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.patron_edit_cols, 'debug' : p.app } );
+       p.clear_patron_edit = function () { 
+               p.list_box.clear_rows(); 
+       };
+
+       p.add_rows = function (edit) {
+               sdump('D_PATRON_EDIT','p.add_row(' + edit + ')\n');
+               return patron_edit_add_rows(p,edit);
+       }
+
+       p.add_rows( patron_edit_rows() );
+}
+
+function patron_edit_add_rows(p, edit) {
+       sdump('D_PATRON_EDIT',arg_dump(arguments,{1:true}));
+
+       var au = p._patron;
+
+       var obj_string ='au';
+
+       function evil_eval( hint, render_code ) {
+               var cmd = parse_render_string( hint, render_code );
+               var col = '';
+               sdump('D_PATRON_EDIT','evil_cmd = ' + cmd + '\n');
+               try {
+                       col = eval( cmd );
+                       sdump('D_PATRON_EDIT','evil_eval = ' + col + '\n');
+               } catch(E) {
+                       sdump('D_ERROR',E + '\n');
+               }
+               return col;
+       }
+
+       setTimeout(
+               function() {
+
+                       for (var i = 0; i < edit.length; i++) {
+
+                               var row = edit[i];
+
+                               var cols = [];
+
+                               for (var j = 0; j < p.patron_edit_cols.length; j++) {
+                                       var hash = p.patron_edit_cols[j];
+                                       sdump('D_PATRON_EDIT','Considering ' + js2JSON(hash) + '\n');
+                                       var listcell = p.w.document.createElement('listcell');
+                                       listcell.setAttribute('pack','start');
+                                       listcell.setAttribute('align','start');
+                                       listcell.setAttribute('style','border-left: black solid thin');
+                                       var col = '';
+                                       if (hash.fm_field_render) {
+
+                                               switch( hash.fm_class ) {
+                                                       case 'row' : obj_string = 'row'; break;
+                                                       case 'au' : obj_string = 'au'; break;
+                                               }
+                                               var cmd = parse_render_string( obj_string, hash.fm_field_render );
+                                               sdump('D_PATRON_EDIT','cmd = ' + cmd + '\n');
+                                               try {
+                                                       col = eval( cmd );
+                                                       sdump('D_PATRON_EDIT','eval = ' + col + '\n');
+                                               } catch(E) {
+                                                       sdump('D_ERROR',E + '\n');
+                                               }
+                                               if (typeof(col) == 'string') {
+                                                       listcell.setAttribute('label',col);
+                                               } else {
+                                                       listcell.appendChild( col );
+                                               }
+                                       }
+                                       if (hash.render_xul) {
+                                               var xul = p.w.document.createElement( hash.render_xul );
+                                               listcell.appendChild( xul );
+                                               if (hash.render_xul == 'checkbox') xul.setAttribute('checked', 'true');
+                                       }
+                                       cols.push( listcell );
+                               }
+
+                               var listitem = p.list_box.add_row(
+                                       cols, {}
+                               );
+
+                               if (p.list_box.apply_to_each_listitem) {
+                                       p.list_box.apply_to_each_listitem( i, listitem );
+                               }
+                       }
+               }, 0
+       );
+}
index e2633ed..23beee6 100755 (executable)
@@ -339,3 +339,146 @@ function save_patron( au, f ) {
                return null;
        }
 }
+
+function patron_edit_rows() {
+       var rows = [
+{
+       'id' : 'active', 'label' : getString('au_active_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.active()'
+},
+{
+       'id' : 'addresses', 'label' : getString('au_addresses_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.addresses()'
+},
+{
+       'id' : 'alert_message', 'label' : getString('au_alert_message_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.alert_message()'
+},
+{
+       'id' : 'billing_address', 'label' : getString('au_billing_address_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.billing_address()'
+},
+{
+       'id' : 'card', 'label' : getString('au_card_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.card()'
+},
+{
+       'id' : 'cards', 'label' : getString('au_cards_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.cards()'
+},
+{
+       'id' : 'create_date', 'label' : getString('au_create_date_label'), 'flex' : 1, 'readonly' : 'true',
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.create_date()'
+},
+{
+       'id' : 'day_phone', 'label' : getString('au_day_phone_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.day_phone()'
+},
+{
+       'id' : 'dob', 'label' : getString('au_dob_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.dob()'
+},
+{
+       'id' : 'email', 'label' : getString('au_email_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.email()'
+},
+{
+       'id' : 'evening_phone', 'label' : getString('au_evening_phone_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.evening_phone()'
+},
+{
+       'id' : 'expire_date', 'label' : getString('au_expire_date_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.expire_date()'
+},
+{
+       'id' : 'family_name', 'label' : getString('au_family_name_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.family_name()'
+},
+{
+       'id' : 'first_given_name', 'label' : getString('au_first_given_name_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.first_given_name()'
+},
+{
+       'id' : 'home_ou', 'label' : getString('au_home_ou_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.home_ou()'
+},
+{
+       'id' : 'ident_type', 'label' : getString('au_ident_type_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.ident_type()'
+},
+{
+       'id' : 'ident_type2', 'label' : getString('au_ident_type2_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.ident_type2()'
+},
+{
+       'id' : 'ident_value', 'label' : getString('au_ident_value_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.ident_value()'
+},
+{
+       'id' : 'ident_value2', 'label' : getString('au_ident_value2_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.ident_value2()'
+},
+{
+       'id' : 'mailing_address', 'label' : getString('au_mailing_address_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.mailing_address()'
+},
+{
+       'id' : 'master_account', 'label' : getString('au_master_account_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.master_account()'
+},
+{
+       'id' : 'net_access_level', 'label' : getString('au_net_access_level_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.net_access_level()'
+},
+{
+       'id' : 'other_phone', 'label' : getString('au_other_phone_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.other_phone()'
+},
+{
+       'id' : 'passwd', 'label' : getString('au_passwd_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.passwd()'
+},
+{
+       'id' : 'photo_url', 'label' : getString('au_photo_url_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.photo_url()'
+},
+{
+       'id' : 'prefix', 'label' : getString('au_prefix_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.prefix()'
+},
+{
+       'id' : 'profile', 'label' : getString('au_profile_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.profile()'
+},
+{
+       'id' : 'second_given_name', 'label' : getString('au_second_given_name_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.second_given_name()'
+},
+{
+       'id' : 'standing', 'label' : getString('au_standing_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.standing()'
+},
+{
+       'id' : 'stat_cat_entries', 'label' : getString('au_stat_cat_entries_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.stat_cat_entries()'
+},
+{
+       'id' : 'suffix', 'label' : getString('au_suffix_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.suffix()'
+},
+{
+       'id' : 'survey_responses', 'label' : getString('au_survey_responses_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.survey_responses()'
+},
+{
+       'id' : 'usrgroup', 'label' : getString('au_usrgroup_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.usrgroup()'
+},
+{
+       'id' : 'usrname', 'label' : getString('au_usrname_label'), 'flex' : 1,
+       'primary' : false, 'hidden' : false, 'fm_class' : 'au', 'fm_field_render' : '.usrname()'
+},
+];
+
+       return rows;
+}
index 79690f1..78b3a41 100644 (file)
@@ -40,9 +40,10 @@ var sdump_levels = {
        'D_PATRON_ITEMS' : false,
        'D_PATRON_CHECKOUT_ITEMS' : false,
        'D_PATRON_HOLDS' : false,
-       'D_PATRON_BILLS' : true,
+       'D_PATRON_BILLS' : false,
+       'D_PATRON_EDIT' : true,
 
-       'D_CHECKIN' : true,
+       'D_CHECKIN' : false,
        'D_CHECKIN_ITEMS' : false,
 
        'D_HOLD_CAPTURE' : true,
index e03bede..4dd5aef 100644 (file)
@@ -12,16 +12,23 @@ function user_request(app,name,params,f) {
                return [];
 
        } else {
-               sdump('D_SES','=-=-=-=-= user_request("'+app+'","'+name+'",'+js2JSON(params)+')\n');
-               var request = new RemoteRequest( app, name );
-               for(var index in params) {
-                       request.addParam(params[index]);
+               try {
+                       sdump('D_SES','=-=-=-=-= user_request("'+app+'","'+name+'",'+js2JSON(params)+')\n');
+                       var request = new RemoteRequest( app, name );
+                       for(var index in params) {
+                               request.addParam(params[index]);
+                       }
+                       request.send(true);
+                       var result = [];
+                       result.push( request.getResultObject() );
+                       sdump('D_SES_RESULT','=-=-= result = ' + js2JSON(result[0]) + '\n');
+                       return result;
+               } catch(E) {
+                       if (instanceOf(E,perm_ex)) {
+                               alert('permission exception: ' + js2JSON(E));
+                       }
+                       throw(E);
                }
-               request.send(true);
-               var result = [];
-               result.push( request.getResultObject() );
-               sdump('D_SES_RESULT','=-=-= result = ' + js2JSON(result[0]) + '\n');
-               return result;
        }
 }
 
index 8301b1e..c2e4c25 100644 (file)
@@ -53,7 +53,8 @@ function getString( key ) {
                        }
 
                } catch(E) {
-                       sdump('D_ERROR',E + '\n');
+                       sdump('D_ERROR','string: ' + key + ' not found\n');
+                       s = key;
                }
        }
        sdump('D_STRING',key + '=' + s + '\n');
@@ -72,7 +73,8 @@ function getFormattedString( key, strArray ) {
                                s = string;
 
                } catch(E) {
-                       sdump('D_ERROR',E + '\n');
+                       sdump('D_ERROR','string: ' + key + ' not found\n');
+                       s = key;
                }
        }
        sdump('D_STRING',key + '(' + strArray + ')=' + s + '\n');
index 8f926c9..9547cfa 100644 (file)
@@ -102,3 +102,50 @@ mbts_xact_finish_label=Finish
 mbts_xact_start_label=Start
 bills_information=Information
 
+au_active_label=Active
+au_addresses_label=Addresses
+au_alert_message_label=Alert Message
+au_billing_address_label=Billing Address
+au_card_label=Card
+au_cards_label=Cards
+au_checkouts_label=Checkouts
+au_claims_returned_count_label=Claims Returned Count
+au_create_date_label=Create Date
+au_credit_forward_balance_label=Credit Forward Balance
+au_day_phone_label=Day Phone
+au_dob_label=Dob
+au_email_label=Email
+au_evening_phone_label=Evening Phone
+au_expire_date_label=Expire Date
+au_family_name_label=Family Name
+au_first_given_name_label=First Given Name
+au_hold_requests_label=Hold Requests
+au_home_ou_label=Home Ou
+au_id_label=Id
+au_ident_type_label=Ident Type
+au_ident_type2_label=Ident Type2
+au_ident_value_label=Ident Value
+au_ident_value2_label=Ident Value2
+au_ischanged_label=Ischanged
+au_isdeleted_label=Isdeleted
+au_isnew_label=Isnew
+au_last_xact_id_label=Last Xact Id
+au_mailing_address_label=Mailing Address
+au_master_account_label=Master Account
+au_net_access_level_label=Net Access Level
+au_other_phone_label=Other Phone
+au_passwd_label=Passwd
+au_password_label=Password
+au_photo_url_label=Photo Url
+au_prefix_label=Prefix
+au_profile_label=Profile
+au_second_given_name_label=Second Given Name
+au_settings_label=Settings
+au_standing_label=Standing
+au_stat_cat_entries_label=Stat Cat Entries
+au_suffix_label=Suffix
+au_super_user_label=Super User
+au_survey_responses_label=Survey Responses
+au_usrgroup_label=Usrgroup
+au_usrname_label=Usrname
+