From 22e4bd42559d9dd35d0d475416aeb34fd16fbb0f Mon Sep 17 00:00:00 2001 From: Rajesh Taneja Date: Thu, 22 Mar 2012 10:09:39 +0800 Subject: [PATCH 1/2] MDL-32150 Libraries: checkall and uncheckall will not select disabled or readonly checkboxes --- lib/javascript-static.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/javascript-static.js b/lib/javascript-static.js index 13547d42e21..c90e1062232 100644 --- a/lib/javascript-static.js +++ b/lib/javascript-static.js @@ -796,6 +796,9 @@ function checkall() { var inputs = document.getElementsByTagName('input'); for (var i = 0; i < inputs.length; i++) { if (inputs[i].type == 'checkbox') { + if (inputs[i].disabled || inputs[i].readOnly) { + continue; + } inputs[i].checked = true; } } @@ -805,6 +808,9 @@ function checknone() { var inputs = document.getElementsByTagName('input'); for (var i = 0; i < inputs.length; i++) { if (inputs[i].type == 'checkbox') { + if (inputs[i].disabled || inputs[i].readOnly) { + continue; + } inputs[i].checked = false; } } From 1180f2d49e475c3884f1961dcfb5bd349552c6dc Mon Sep 17 00:00:00 2001 From: Rajesh Taneja Date: Thu, 22 Mar 2012 10:28:39 +0800 Subject: [PATCH 2/2] MDL-32150 Libraries: checkbox controller will not check or uncheck freezed checkboxes --- lib/form/yui/checkboxcontroller/checkboxcontroller.js | 6 +++++- lib/formslib.php | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/form/yui/checkboxcontroller/checkboxcontroller.js b/lib/form/yui/checkboxcontroller/checkboxcontroller.js index abcbbbd8476..7543eb57eb1 100644 --- a/lib/form/yui/checkboxcontroller/checkboxcontroller.js +++ b/lib/form/yui/checkboxcontroller/checkboxcontroller.js @@ -100,7 +100,11 @@ YUI.add('moodle-form-checkboxcontroller', function(Y) { controllervaluenode.set('value', '1'); newvalue = 'checked'; } - checkboxes.set('checked', newvalue); + checkboxes.each(function(checkbox){ + if (!checkbox.get('disabled')) { + checkbox.set('checked', newvalue); + } + }); } } }); diff --git a/lib/formslib.php b/lib/formslib.php index 6d3298556cf..0f68d26e8a4 100644 --- a/lib/formslib.php +++ b/lib/formslib.php @@ -1066,7 +1066,8 @@ abstract class moodleform { if (!is_null($contollerbutton) || is_null($select_value)) { foreach ($mform->_elements as $element) { if (($element instanceof MoodleQuickForm_advcheckbox) && - $element->getAttribute('class') == $checkboxgroupclass) { + $element->getAttribute('class') == $checkboxgroupclass && + !$element->isFrozen()) { $mform->setConstants(array($element->getName() => $new_select_value)); } }