[open-ils-commits] r17107 - in trunk/Open-ILS/web/js: dojo/openils/actor/nls ui/default/actor/user (phasefx)

svn at svn.open-ils.org svn at svn.open-ils.org
Thu Aug 5 17:16:06 EDT 2010


Author: phasefx
Date: 2010-08-05 17:16:01 -0400 (Thu, 05 Aug 2010)
New Revision: 17107

Modified:
   trunk/Open-ILS/web/js/dojo/openils/actor/nls/register.js
   trunk/Open-ILS/web/js/ui/default/actor/user/register.js
Log:
Fixed form validation with surveys (the filteringSelect dijits were treating themselves as invalid if not set)
Some I18N for form validation
Removed some lingering (and annoying) scrollOnFocus behavior with the non-autoField widgets

Modified: trunk/Open-ILS/web/js/dojo/openils/actor/nls/register.js
===================================================================
--- trunk/Open-ILS/web/js/dojo/openils/actor/nls/register.js	2010-08-05 20:19:48 UTC (rev 17106)
+++ trunk/Open-ILS/web/js/dojo/openils/actor/nls/register.js	2010-08-05 21:16:01 UTC (rev 17107)
@@ -4,5 +4,6 @@
     "DUPE_PATRON_IDENT" : "Found ${0} patron(s) with the same identification",
     "DUPE_PATRON_PHONE" : "Found ${0} patron(s) with the same phone number",
     "DUPE_PATRON_ADDR" : "Found ${0} patron(s) with the same address",
-    "REPLACED_ADDRESS" : "<div>Replaces address <b>${0}</b><br/> ${1} ${2}<br/> ${3}, ${4} ${5}</div>"
+    "REPLACED_ADDRESS" : "<div>Replaces address <b>${0}</b><br/> ${1} ${2}<br/> ${3}, ${4} ${5}</div>",
+    "INVALID_FORM" : "Form is invalid.  Please edit and try again."
 }

Modified: trunk/Open-ILS/web/js/ui/default/actor/user/register.js
===================================================================
--- trunk/Open-ILS/web/js/ui/default/actor/user/register.js	2010-08-05 20:19:48 UTC (rev 17106)
+++ trunk/Open-ILS/web/js/ui/default/actor/user/register.js	2010-08-05 21:16:01 UTC (rev 17107)
@@ -186,7 +186,10 @@
     newc.isnew(1);
     newc.active('t');
     patron.card(newc);
-    patron.cards().push(newc);
+    var t = patron.cards();
+        if (!t) { t = []; }
+        t.push(newc);
+        patron.cards(t);
 }
 
 
@@ -223,7 +226,10 @@
         mail_addr.usr(-1);
         mail_addr.isnew(1);
         patron.mailing_address(mail_addr);
-        patron.addresses().push(mail_addr);
+        var t = patron.addresses();
+            if (!t) { t = []; }
+            t.push(mail_addr);
+            patron.addresses(t);
 
         for(var key in fieldmapper.IDL.fmclasses.stgma.field_map) {
             if(fieldmapper.IDL.fmclasses.aua.field_map[key] && !fieldmapper.IDL.fmclasses.stgma.field_map[key].virtual) {
@@ -242,7 +248,10 @@
         bill_addr.usr(-1);
         bill_addr.isnew(1);
         patron.billing_address(bill_addr);
-        patron.addresses().push(bill_addr);
+        var t = patron.addresses();
+            if (!t) { t = []; }
+            t.push(bill_addr);
+            patron.addresses(t);
 
         for(var key in fieldmapper.IDL.fmclasses.stgba.field_map) {
             if(fieldmapper.IDL.fmclasses.aua.field_map[key] && !fieldmapper.IDL.fmclasses.stgba.field_map[key].virtual) {
@@ -282,13 +291,21 @@
     );
 
     // don't grab all addresses().  the only ones we can link to are billing/mailing
-    if(patron.billing_address())
-        patron.addresses().push(patron.billing_address());
+    if(patron.billing_address()) {
+        var t = patron.addresses();
+            if (!t) { t = []; }
+            t.push(patron.billing_address());
+            patron.addresses(t);
+    }
 
     if(patron.mailing_address() && (
             patron.addresses().length == 0 || 
-            patron.mailing_address().id() != patron.billing_address().id()) )
-        patron.addresses().push(patron.mailing_address());
+            patron.mailing_address().id() != patron.billing_address().id()) ) {
+        var t = patron.addresses();
+            if (!t) { t = []; }
+            t.push(patron.mailing_address());
+            patron.addresses(t);
+    }
 }
 
 
@@ -357,7 +374,7 @@
     var row = template.cloneNode(true);
     row.setAttribute('user_setting', stype.name());
     getByName(row, 'label').innerHTML = stype.label();
-    var cb = new dijit.form.CheckBox({}, getByName(row, 'widget'));
+    var cb = new dijit.form.CheckBox({scrollOnFocus:false}, getByName(row, 'widget'));
     cb.attr('value', userSettings[stype.name()]);
     dojo.connect(cb, 'onChange', function(newVal) { userSettingsToUpdate[stype.name()] = newVal; });
     tbody.insertBefore(row, dividerRow.nextSibling);
@@ -396,7 +413,7 @@
         var span = valtd.appendChild(document.createElement('span'));
         var store = new dojo.data.ItemFileReadStore(
                 {data:fieldmapper.actsc.toStoreData(stat.entries())});
-        var comboBox = new dijit.form.ComboBox({store:store}, span);
+        var comboBox = new dijit.form.ComboBox({store:store,scrollOnFocus:false}, span);
         comboBox.labelAttr = 'value';
         comboBox.searchAttr = 'value';
 
@@ -435,7 +452,10 @@
             var span = getByName(qrow, 'answers').appendChild(document.createElement('span'));
             var store = new dojo.data.ItemFileReadStore(
                 {data:fieldmapper.asva.toStoreData(quest.answers())});
-            var select = new dijit.form.FilteringSelect({store:store}, span);
+            var select = new dijit.form.FilteringSelect({store:store,scrollOnFocus:false}, span);
+            if (! openils.Util.isTrue(survey.required())) {
+                select.isValid = function() { return true; };
+            }
             select.labelAttr = 'answer';
             select.searchAttr = 'answer';
 
@@ -963,7 +983,7 @@
 function _uEditSave(doClone) {
 
     if ( (! myForm.isValid()) || dupeUsrname || dupeBarcode ) {
-        alert('Form is invalid.  Please edit and try again.');
+        alert(localeStrings.INVALID_FORM);
         return;
     }
 
@@ -988,7 +1008,10 @@
                     addr.id(w._addr);
                     addr.isnew(1);
                     addr.usr(patron.id());
-                    patron.addresses().push(addr);
+                    var t = patron.addresses();
+                        if (!t) { t = []; }
+                        t.push(addr);
+                        patron.addresses(t);
                 } else {
                     if(addr[w._fmfield]() != val)
                         addr.ischanged(1);
@@ -1011,7 +1034,10 @@
                 resp.usr(patron.id());
                 resp.question(w._question)
                 resp.answer(val);
-                patron.survey_responses().push(resp);
+                var t = patron.survey_responses();
+                    if (!t) { t = []; }
+                    t.push(resp);
+                    patron.survey_responses(t);
                 break;
 
             case 'statcat':
@@ -1033,7 +1059,10 @@
                 map.stat_cat(w._statcat);
                 map.stat_cat_entry(val);
                 map.target_usr(patron.id());
-                patron.stat_cat_entries().push(map);
+                var t = patron.stat_cat_entries();
+                    if (!t) { t = []; }
+                    t.push(map);
+                    patron.stat_cat_entries(t);
                 break;
         }
     }



More information about the open-ils-commits mailing list