From b0d46b1ab63e5f771a0dbb7400ca674194f456df Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Mon, 30 Aug 2010 03:19:35 -0400
Subject: [PATCH] - lock_form(): fix hidden fields were disabled because of wrong type check - lock_form(): fix initially disabled fields shouldn't be enabled on unlock

---
 program/js/app.js |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index 97c5791..5385c49 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -5145,19 +5145,28 @@
     }
   };
 
-  // set all fields of a form disabled
+  // disable/enable all fields of a form
   this.lock_form = function(form, lock)
   {
     if (!form || !form.elements)
       return;
 
-    var type;
-    for (var n=0, len=form.elements.length; n<len; n++) {
-      type = form.elements[n];
-      if (type == 'hidden')
+    var n, len, elm;
+
+    if (lock)
+      this.disabled_form_elements = [];
+
+    for (n=0, len=form.elements.length; n<len; n++) {
+      elm = form.elements[n];
+
+      if (elm.type == 'hidden')
         continue;
 
-      form.elements[n].disabled = lock;
+      // remember which elem was disabled before lock
+      if (lock && elm.disabled)
+        this.disabled_form_elements.push(elm);
+      else if (lock || $.inArray(elm, this.disabled_form_elements)<0)
+        elm.disabled = lock;
     }
   };
 

--
Gitblit v1.9.1