From 2dbd6409323a023123e70f5abe1b987aec8c0373 Mon Sep 17 00:00:00 2001 From: jamiesensei <jamiesensei> Date: Tue, 28 Nov 2006 08:04:00 +0000 Subject: [PATCH] some fixes for disabledIf and using disabledIf in course/edit_form.php --- course/edit_form.php | 30 ++++++++++-------------------- lib/form/submit.php | 2 +- lib/formslib.php | 2 ++ lib/javascript-static.js | 7 +++---- 4 files changed, 16 insertions(+), 25 deletions(-) diff --git a/course/edit_form.php b/course/edit_form.php index 9817d46e9ec..464bcea17c2 100644 --- a/course/edit_form.php +++ b/course/edit_form.php @@ -214,9 +214,10 @@ class course_edit_form extends moodleform { $enroldatestartgrp = array(); $enroldatestartgrp[] = &MoodleQuickForm::createElement('date_selector', 'enrolstartdate'); $enroldatestartgrp[] = &MoodleQuickForm::createElement('checkbox', 'enrolstartdisabled', null, get_string('disable')); - $mform->addGroup($enroldatestartgrp, '', get_string('enrolstartdate'), ' ', false); + $mform->addGroup($enroldatestartgrp, 'enrolstartdategrp', get_string('enrolstartdate'), ' ', false); $mform->setDefault('enrolstartdate', 0); $mform->setDefault('enrolstartdisabled', 1); + $mform->disabledIf('enrolstartdategrp', 'enrolstartdisabled', 'checked'); $enroldateendgrp = array(); $enroldateendgrp[] = &MoodleQuickForm::createElement('date_selector', 'enrolenddate'); @@ -224,6 +225,7 @@ class course_edit_form extends moodleform { $mform->addGroup($enroldateendgrp, 'enroldateendgrp', get_string('enrolenddate'), ' ', false); $mform->setDefault('enrolenddate', 0); $mform->setDefault('enrolenddisabled', 1); + $mform->disabledIf('enroldateendgrp', 'enrolenddisabled', 'checked'); $periodmenu=array(); $periodmenu[0] = get_string('unlimited'); @@ -331,16 +333,15 @@ class course_edit_form extends moodleform { $options = array(); $options['0'] = get_string('no'); $options['1'] = get_string('yes'); - $mform->addElement('select', 'restrictmodules', get_string('restrictmodules'), $options, - array('onChange'=>"document.getElementById('id_allowedmods').disabled=". - "((this.selectedIndex==0)?true:false);")); + $mform->addElement('select', 'restrictmodules', get_string('restrictmodules'), $options); $mods = array(0=>get_string('allownone')); $mods += get_records_menu('modules', '','','','id, name'); - $mform->addElement('select', 'allowedmods', get_string('to'),$mods, - array('multiple'=>'multiple', 'size'=>'10', 'id'=>'allowedmods')); - }else { + $mform->addElement('select', 'allowedmods', get_string('to'), $mods, + array('multiple'=>'multiple', 'size'=>'10')); + $mform->disabledIf('allowedmods', 'restrictmodules', 'eq', 0); + } else { $mform->addElement('hidden', 'restrictmodules', null); } if ($CFG->restrictmodulesfor == 'all') { @@ -352,8 +353,7 @@ class course_edit_form extends moodleform { $mform->setType('restrictmodules', PARAM_INT); //-------------------------------------------------------------------------------- - $mform->addElement('submit', 'submit', get_string('savechanges')); - + $mform->addElement('submit', 'submitbutton', get_string('savechanges')); //-------------------------------------------------------------------------------- $mform->addElement('hidden', 'id', null); $mform->setType('id', PARAM_INT); @@ -377,17 +377,7 @@ class course_edit_form extends moodleform { } - function definition_after_data(){ - $mform=&$this->_form; - if ($mform->elementExists('allowedmods')){ - if ($mform->exportValue('restrictmodules')!=1){ - $allowedmods=&$mform->getElement('allowedmods'); - $allowedmods-> - updateAttributes(array('disabled' - => 'disabled')) ; - } - } - } + /// perform some extra moodle validation function validation($data){ diff --git a/lib/form/submit.php b/lib/form/submit.php index 05669f26236..fe23a83309c 100644 --- a/lib/form/submit.php +++ b/lib/form/submit.php @@ -27,7 +27,7 @@ class MoodleQuickForm_submit extends HTML_QuickForm_submit HTML_QuickForm_submit::HTML_QuickForm_submit($elementName, $value, $attributes); if ('cancel'==$elementName){ //bypass form validation js : - $this->updateAttributes(array('onclick'=>'this.form.submit();')); + $this->updateAttributes(array('onclick'=>'return this.form.submit();')); } } //end constructor diff --git a/lib/formslib.php b/lib/formslib.php index fa8b072df02..def85ae584c 100644 --- a/lib/formslib.php +++ b/lib/formslib.php @@ -850,6 +850,8 @@ function validate_' . $this->_attributes['id'] . '(frm) { $elNames = array($group->getElementName($el->getName())); } elseif (is_a($el, 'HTML_QuickForm_header')) { return null; + } elseif (method_exists($el, 'getPrivateName')) { + return array($el->getPrivateName()); } else { $elNames = array($el->getName()); } diff --git a/lib/javascript-static.js b/lib/javascript-static.js index d0ede00718d..2e5f03db7bd 100644 --- a/lib/javascript-static.js +++ b/lib/javascript-static.js @@ -98,10 +98,9 @@ function lockoptionsallsetup(formid) { form.elements[master].oldonclick = ((form.elements[master].onclick) ? form.elements[master].onclick : function () {}); form.elements[master].oldonblur = ((form.elements[master].onblur) ? form.elements[master].onblur : function () {}); form.elements[master].oldonchange = ((form.elements[master].onchange) ? form.elements[master].onchange : function () {}); - form.elements[master].oldonkeypress = ((form.elements[master].onkeypress) ? form.elements[master].onkeypress : function () {}); - form.elements[master].onclick = function(){this.oldonclick(); return lockoptionsall(this.form.id);}; - form.elements[master].onblur = function(){this.oldonblur(); return lockoptionsall(this.form.id);}; - form.elements[master].onchange = function(){this.oldonchange(); return lockoptionsall(this.form.id);}; + form.elements[master].onclick = function(){this.oldonclick(); return lockoptionsall(this.form.getAttribute('id'));}; + form.elements[master].onblur = function(){this.oldonblur(); return lockoptionsall(this.form.getAttribute('id'));}; + form.elements[master].onchange = function(){this.oldonchange(); return lockoptionsall(this.form.getAttribute('id'));}; } return lockoptionsall(formid); }