MDL-34859 forms: fix the checkbox in defaultcustom element
authorMarina Glancy <marina@moodle.com>
Wed, 22 Mar 2017 02:52:29 +0000 (10:52 +0800)
committerMarina Glancy <marina@moodle.com>
Wed, 22 Mar 2017 03:25:58 +0000 (11:25 +0800)
lib/form/defaultcustom.php

index a09d566..b8512aa 100644 (file)
@@ -126,7 +126,7 @@ class MoodleQuickForm_defaultcustom extends MoodleQuickForm_group {
         if (!$this->has_customize_switch()) {
             $element = $this->createFormElement('hidden', 'customize', 1);
         } else {
-            $element = $this->createFormElement('checkbox', 'customize', '', $this->_options['customlabel']);
+            $element = $this->createFormElement('advcheckbox', 'customize', '', $this->_options['customlabel']);
         }
         $this->_elements[] = $element;
 
@@ -181,12 +181,14 @@ class MoodleQuickForm_defaultcustom extends MoodleQuickForm_group {
                 break;
             case 'createElement':
                 $rv = parent::onQuickFormEvent($event, $arg, $caller);
-                if ($this->_options['type'] === 'text') {
-                    $caller->disabledIf($arg[0] . '[value]', $arg[0] . '[customize]', 'notchecked');
-                } else {
-                    $caller->disabledIf($arg[0] . '[value][day]', $arg[0] . '[customize]', 'notchecked');
-                    $caller->disabledIf($arg[0] . '[value][month]', $arg[0] . '[customize]', 'notchecked');
-                    $caller->disabledIf($arg[0] . '[value][year]', $arg[0] . '[customize]', 'notchecked');
+                if ($this->has_customize_switch()) {
+                    if ($this->_options['type'] === 'text') {
+                        $caller->disabledIf($arg[0] . '[value]', $arg[0] . '[customize]', 'notchecked');
+                    } else {
+                        $caller->disabledIf($arg[0] . '[value][day]', $arg[0] . '[customize]', 'notchecked');
+                        $caller->disabledIf($arg[0] . '[value][month]', $arg[0] . '[customize]', 'notchecked');
+                        $caller->disabledIf($arg[0] . '[value][year]', $arg[0] . '[customize]', 'notchecked');
+                    }
                 }
                 return $rv;
             case 'addElement':