Merge branch 'MDL-34728_23' of git://github.com/timhunt/moodle into MOODLE_23_STABLE
authorDan Poltawski <dan@moodle.com>
Tue, 14 Aug 2012 05:33:08 +0000 (13:33 +0800)
committerDan Poltawski <dan@moodle.com>
Tue, 14 Aug 2012 05:33:08 +0000 (13:33 +0800)
lib/form/form.js

index b49d76a..1f7856b 100644 (file)
@@ -58,6 +58,11 @@ M.form.initShowAdvanced = function(Y, config) {
     return M.form.showAdvanced;
 };
 
+/**
+ * Stores a list of the dependencyManager for each form on the page.
+ */
+M.form.dependencyManagers = {};
+
 /**
  * Initialises a manager for a forms dependencies.
  * This should happen once per form.
@@ -128,7 +133,7 @@ M.form.initFormDependencies = function(Y, formid, dependencies) {
                 return this.checkDependencies(null);
             },
             /**
-             * Gets all elements in the form by thier name and returns
+             * Gets all elements in the form by their name and returns
              * a YUI NodeList
              * @return Y.NodeList
              */
@@ -352,5 +357,17 @@ M.form.initFormDependencies = function(Y, formid, dependencies) {
         return dependencyManager;
     })();
 
-    return new M.form.dependencyManager();
-};
\ No newline at end of file
+    M.form.dependencyManagers[formid] = new M.form.dependencyManager();
+    return M.form.dependencyManagers[formid];
+};
+
+/**
+ * Update the state of a form. You need to call this after, for example, changing
+ * the state of some of the form input elements in your own code, in order that
+ * things like the disableIf state of elements can be updated.
+ */
+M.form.updateFormState = function(formid) {
+    if (formid in M.form.dependencyManagers) {
+        M.form.dependencyManagers[formid].checkDependencies(null);
+    }
+};