[Jifty-commit] r3933 - jifty/trunk/share/web/static/js

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Wed Aug 22 10:42:24 EDT 2007


Author: efunneko
Date: Wed Aug 22 10:42:15 2007
New Revision: 3933

Modified:
   jifty/trunk/share/web/static/js/jifty.js

Log:
Fixed a problem where some disabled elements weren't re-enabled after a submission when the disabled elements were outside of the fragment being refreshed.

Modified: jifty/trunk/share/web/static/js/jifty.js
==============================================================================
--- jifty/trunk/share/web/static/js/jifty.js	(original)
+++ jifty/trunk/share/web/static/js/jifty.js	Wed Aug 22 10:42:15 2007
@@ -311,7 +311,7 @@
         hide_wait_message();
     },
 
-    disable_input_fields: function() {
+    disable_input_fields: function(disabled_elements) {
         var disable = function() {
             var elt = arguments[0];
             // Disabling hidden elements seems to  make IE sad for some reason
@@ -319,6 +319,7 @@
                 // Triggers https://bugzilla.mozilla.org/show_bug.cgi?id=236791
                 elt.blur();
                 elt.disabled = true;
+                disabled_elements.push(elt);
             }
         };
         this.fields().each(disable);
@@ -1009,6 +1010,9 @@
     // The YAML/JSON data structure that will be sent
     var request = $H();
 
+    // Keep track of disabled elements
+    var disabled_elements = $A();
+
     // Set request base path
     request['path'] = '/__jifty/webservices/xml';
 
@@ -1044,7 +1048,7 @@
             if (a.hasUpload())
                 return true;
             if(disable) {
-                a.disable_input_fields();
+                a.disable_input_fields(disabled_elements);
             }
             request['actions'][moniker] = a.data_structure();
             ++has_request;
@@ -1154,6 +1158,11 @@
 				      }
 			      }});
 	    }});
+
+        for ( var i = 0; i < disabled_elements.length; i++ ) {
+            disabled_elements[i].disabled = false;
+        }
+
 	// empty known action. XXX: we should only need to discard actions being submitted
 
         // Loop through the result looking for it
@@ -1195,10 +1204,8 @@
 
         Jifty.failedRequest = transport;
 
-        var keys = request["actions"].keys();
-        for ( var i = 0; i < keys.length; i++ ) {
-            var a = new Action( request["actions"][ keys[i] ].moniker );
-            a.enable_input_fields();
+        for ( var i = 0; i < disabled_elements.length; i++ ) {
+            disabled_elements[i].disabled = false;
         }
     };
 


More information about the Jifty-commit mailing list