From e019dcccdf5d5d75ffc41e775c4932a364ad1da7 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Thu, 2 May 2013 13:44:09 +0800 Subject: [PATCH] MDL-39463 forms: use the date selectors 'optional' parameter rather than creating additional logic --- lib/form/dateselector.php | 10 ++++++++- lib/form/datetimeselector.php | 12 ++++++++++- mod/feedback/lib.php | 14 ------------ mod/feedback/mod_form.php | 40 ++++------------------------------- mod/scorm/mod_form.php | 20 ------------------ user/filters/date.php | 29 +++++-------------------- 6 files changed, 29 insertions(+), 96 deletions(-) diff --git a/lib/form/dateselector.php b/lib/form/dateselector.php index 0dda8dfcf2a..1a0e43229bc 100644 --- a/lib/form/dateselector.php +++ b/lib/form/dateselector.php @@ -182,7 +182,15 @@ class MoodleQuickForm_date_selector extends MoodleQuickForm_group // Optional is an optional param, if its set we need to add a disabledIf rule. // If its empty or not specified then its not an optional dateselector. if (!empty($arg[2]['optional']) && !empty($arg[0])) { - $caller->disabledIf($arg[0], $arg[0].'[enabled]'); + // When using the function addElement, rather than createElement, we still + // enter this case, making this check necessary. + if ($this->_usedcreateelement) { + $caller->disabledIf($arg[0] . '[day]', $arg[0] . '[enabled]'); + $caller->disabledIf($arg[0] . '[month]', $arg[0] . '[enabled]'); + $caller->disabledIf($arg[0] . '[year]', $arg[0] . '[enabled]'); + } else { + $caller->disabledIf($arg[0], $arg[0] . '[enabled]'); + } } return parent::onQuickFormEvent($event, $arg, $caller); break; diff --git a/lib/form/datetimeselector.php b/lib/form/datetimeselector.php index 0361422f539..0bc6a7730c5 100644 --- a/lib/form/datetimeselector.php +++ b/lib/form/datetimeselector.php @@ -201,7 +201,17 @@ class MoodleQuickForm_date_time_selector extends MoodleQuickForm_group{ break; case 'createElement': if($arg[2]['optional']) { - $caller->disabledIf($arg[0], $arg[0].'[enabled]'); + // When using the function addElement, rather than createElement, we still + // enter this case, making this check necessary. + if ($this->_usedcreateelement) { + $caller->disabledIf($arg[0] . '[day]', $arg[0] . '[enabled]'); + $caller->disabledIf($arg[0] . '[month]', $arg[0] . '[enabled]'); + $caller->disabledIf($arg[0] . '[year]', $arg[0] . '[enabled]'); + $caller->disabledIf($arg[0] . '[hour]', $arg[0] . '[enabled]'); + $caller->disabledIf($arg[0] . '[minute]', $arg[0] . '[enabled]'); + } else { + $caller->disabledIf($arg[0], $arg[0] . '[enabled]'); + } } return parent::onQuickFormEvent($event, $arg, $caller); break; diff --git a/mod/feedback/lib.php b/mod/feedback/lib.php index bc896a460eb..9f0b2684ba8 100644 --- a/mod/feedback/lib.php +++ b/mod/feedback/lib.php @@ -80,13 +80,6 @@ function feedback_add_instance($feedback) { $feedback->timemodified = time(); $feedback->id = ''; - //check if openenable and/or closeenable is set and set correctly to save in db - if (empty($feedback->openenable)) { - $feedback->timeopen = 0; - } - if (empty($feedback->closeenable)) { - $feedback->timeclose = 0; - } if (empty($feedback->site_after_submit)) { $feedback->site_after_submit = ''; } @@ -133,13 +126,6 @@ function feedback_update_instance($feedback) { $feedback->timemodified = time(); $feedback->id = $feedback->instance; - //check if openenable and/or closeenable is set and set correctly to save in db - if (empty($feedback->openenable)) { - $feedback->timeopen = 0; - } - if (empty($feedback->closeenable)) { - $feedback->timeclose = 0; - } if (empty($feedback->site_after_submit)) { $feedback->site_after_submit = ''; } diff --git a/mod/feedback/mod_form.php b/mod/feedback/mod_form.php index f1329c5ee94..355229aa093 100644 --- a/mod/feedback/mod_form.php +++ b/mod/feedback/mod_form.php @@ -51,33 +51,11 @@ class mod_feedback_mod_form extends moodleform_mod { //------------------------------------------------------------------------------- $mform->addElement('header', 'timinghdr', get_string('availability')); - $enableopengroup = array(); - $enableopengroup[] =& $mform->createElement('checkbox', - 'openenable', - get_string('feedbackopen', 'feedback')); + $mform->addElement('date_time_selector', 'timeopen', get_string('feedbackopen', 'feedback'), + array('optional' => true)); - $enableopengroup[] =& $mform->createElement('date_time_selector', 'timeopen', ''); - $mform->addGroup($enableopengroup, - 'enableopengroup', - get_string('feedbackopen', 'feedback'), - ' ', - false); - - $mform->disabledIf('enableopengroup', 'openenable', 'notchecked'); - - $enableclosegroup = array(); - $enableclosegroup[] =& $mform->createElement('checkbox', - 'closeenable', - get_string('feedbackclose', 'feedback')); - - $enableclosegroup[] =& $mform->createElement('date_time_selector', 'timeclose', ''); - $mform->addGroup($enableclosegroup, - 'enableclosegroup', - get_string('feedbackclose', 'feedback'), - ' ', - false); - - $mform->disabledIf('enableclosegroup', 'closeenable', 'notchecked'); + $mform->addElement('date_time_selector', 'timeclose', get_string('feedbackclose', 'feedback'), + array('optional' => true)); //------------------------------------------------------------------------------- $mform->addElement('header', 'feedbackhdr', get_string('questionandsubmission', 'feedback')); @@ -155,16 +133,6 @@ class mod_feedback_mod_form extends moodleform_mod { } public function data_preprocessing(&$default_values) { - if (empty($default_values['timeopen'])) { - $default_values['openenable'] = 0; - } else { - $default_values['openenable'] = 1; - } - if (empty($default_values['timeclose'])) { - $default_values['closeenable'] = 0; - } else { - $default_values['closeenable'] = 1; - } $editoroptions = feedback_get_editor_options(); diff --git a/mod/scorm/mod_form.php b/mod/scorm/mod_form.php index a26bcd0b04e..311479f5746 100644 --- a/mod/scorm/mod_form.php +++ b/mod/scorm/mod_form.php @@ -215,26 +215,6 @@ class mod_scorm_mod_form extends moodleform_mod { $mform->setDefault('lastattemptlock', $cfg_scorm->lastattemptlock); $mform->setAdvanced('lastattemptlock', $cfg_scorm->lastattemptlock_adv); - // Activation period -/* $mform->addElement('static', '', '' ,'
'); - $mform->addElement('static', 'activation', get_string('activation','scorm')); - $datestartgrp = array(); - $datestartgrp[] = &$mform->createElement('date_time_selector', 'startdate'); - $datestartgrp[] = &$mform->createElement('checkbox', 'startdisabled', null, get_string('disable')); - $mform->addGroup($datestartgrp, 'startdategrp', get_string('from'), ' ', false); - $mform->setDefault('startdate', 0); - $mform->setDefault('startdisabled', 1); - $mform->disabledIf('startdategrp', 'startdisabled', 'checked'); - - $dateendgrp = array(); - $dateendgrp[] = &$mform->createElement('date_time_selector', 'enddate'); - $dateendgrp[] = &$mform->createElement('checkbox', 'enddisabled', null, get_string('disable')); - $mform->addGroup($dateendgrp, 'dateendgrp', get_string('to'), ' ', false); - $mform->setDefault('enddate', 0); - $mform->setDefault('enddisabled', 1); - $mform->disabledIf('dateendgrp', 'enddisabled', 'checked'); -*/ - // Autocontinue $mform->addElement('selectyesno', 'auto', get_string('autocontinue', 'scorm')); $mform->addHelpButton('auto', 'autocontinue', 'scorm'); diff --git a/user/filters/date.php b/user/filters/date.php index a39c199efc9..7bff85b55eb 100644 --- a/user/filters/date.php +++ b/user/filters/date.php @@ -30,24 +30,15 @@ class user_filter_date extends user_filter_type { function setupForm(&$mform) { $objs = array(); - $objs[] =& $mform->createElement('checkbox', $this->_name.'_sck', null, get_string('isafter', 'filters')); - $objs[] =& $mform->createElement('date_selector', $this->_name.'_sdt', null); + $objs[] =& $mform->createElement('date_selector', $this->_name.'_sdt', null, array('optional' => true)); $objs[] =& $mform->createElement('static', $this->_name.'_break', null, '
'); - $objs[] =& $mform->createElement('checkbox', $this->_name.'_eck', null, get_string('isbefore', 'filters')); - $objs[] =& $mform->createElement('date_selector', $this->_name.'_edt', null); + $objs[] =& $mform->createElement('date_selector', $this->_name.'_edt', null, array('optional' => true)); $grp =& $mform->addElement('group', $this->_name.'_grp', $this->_label, $objs, '', false); if ($this->_advanced) { $mform->setAdvanced($this->_name.'_grp'); } - - $mform->disabledIf($this->_name.'_sdt[day]', $this->_name.'_sck', 'notchecked'); - $mform->disabledIf($this->_name.'_sdt[month]', $this->_name.'_sck', 'notchecked'); - $mform->disabledIf($this->_name.'_sdt[year]', $this->_name.'_sck', 'notchecked'); - $mform->disabledIf($this->_name.'_edt[day]', $this->_name.'_eck', 'notchecked'); - $mform->disabledIf($this->_name.'_edt[month]', $this->_name.'_eck', 'notchecked'); - $mform->disabledIf($this->_name.'_edt[year]', $this->_name.'_eck', 'notchecked'); } /** @@ -56,26 +47,16 @@ class user_filter_date extends user_filter_type { * @return mixed array filter data or false when filter not set */ function check_data($formdata) { - $sck = $this->_name.'_sck'; $sdt = $this->_name.'_sdt'; - $eck = $this->_name.'_eck'; $edt = $this->_name.'_edt'; - if (!array_key_exists($sck, $formdata) and !array_key_exists($eck, $formdata)) { + if (!$formdata->$sdt and !$formdata->$edt) { return false; } $data = array(); - if (array_key_exists($sck, $formdata)) { - $data['after'] = $formdata->$sdt; - } else { - $data['after'] = 0; - } - if (array_key_exists($eck, $formdata)) { - $data['before'] = $formdata->$edt; - } else { - $data['before'] = 0; - } + $data['after'] = $formdata->$sdt; + $data['before'] = $formdata->$edt; return $data; }