fixed issue where deleting all addresses makes it impossible to create a new one
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 19 Jul 2006 15:49:23 +0000 (15:49 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 19 Jul 2006 15:49:23 +0000 (15:49 +0000)
fixed issue where deleting an address caused required/regex errors

git-svn-id: svn://svn.open-ils.org/ILS/trunk@5084 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/server/patron/ue.js
Open-ILS/xul/staff_client/server/patron/ue_config.js

index 0cccd28..c3233ad 100644 (file)
@@ -171,6 +171,8 @@ function uEditCreateNewAddr() {
        addr.isnew(1);
        addr.usr(patron.id());
        addr.country(defaultCountry);
+       if(!patron.addresses()) 
+               patron.addresses([]);
        if(patron.addresses().length == 0) {
                patron.mailing_address(addr);
                patron.billing_address(addr);
@@ -329,9 +331,8 @@ function uEditFindFieldByWId(id) {
 
 
 function uEditIterateFields(callback) {
-       for( var f in dataFields ) {
+       for( var f in dataFields ) 
                callback(dataFields[f]);
-       }
 }
 
 
@@ -545,3 +546,11 @@ function uEditMarkCardLost() {
 }
 
 
+function compactArray(arr) {
+       var a = [];
+       for( var i = 0; arr && i < arr.length; i++ ) {
+               if( arr[i] != null )
+                       a.push(arr[i]);
+       }
+       return a;
+}
index 3b9208c..9b713f4 100644 (file)
@@ -459,6 +459,16 @@ function uEditDeleteAddr( tbody, row, address, detach ) {
                                }
                        )
                );
+
+               /* XXX */
+               for( var f in dataFields ) {
+                       if( dataFields[f].object == address ) {
+                               dataFields[f] = null;
+                       }
+               }
+
+               dataFields = compactArray(dataFields);
+
        } else {
 
                if( detach ) { /* remove the offending address from the list */