From bdf1df70586774194b8b0a78c1eda5a19bfdee01 Mon Sep 17 00:00:00 2001 From: "Eloy Lafuente (stronk7)" Date: Sun, 25 Sep 2011 17:15:47 +0200 Subject: [PATCH 1/3] MDL-29512 Revert "MDL-25937 Forms Library: Added Javascript validation for filepicker and filemanager. Also fixed disbledif rule check for both" This reverts commit 312a8e04362a56249d75037c3c1ac559cb000b75. --- lib/form/filemanager.js | 10 ---------- lib/form/filemanager.php | 8 +++++--- lib/form/filepicker.js | 9 --------- lib/form/filepicker.php | 4 +--- lib/formslib.php | 6 +++--- 5 files changed, 9 insertions(+), 28 deletions(-) diff --git a/lib/form/filemanager.js b/lib/form/filemanager.js index bedf3a477cd..cf6837b0e1c 100644 --- a/lib/form/filemanager.js +++ b/lib/form/filemanager.js @@ -53,9 +53,6 @@ M.form_filemanager.init = function(Y, options) { api: M.cfg.wwwroot+'/repository/draftfiles_ajax.php', menus: {}, initializer: function(options) { - //For client side validation, remove hidden draft_id - Y.one('#id_'+options.elementname).set('value', ''); - this.options = options; if (options.mainfile) { this.enablemainfile = options.mainfile; @@ -72,7 +69,6 @@ M.form_filemanager.init = function(Y, options) { this.filepicker_options.maxbytes = this.maxbytes; this.filepicker_options.env = 'filemanager'; this.filepicker_options.itemid = options.itemid; - this.filepicker_options.elementname = options.elementname; if (options.filecount) { this.filecount = options.filecount; @@ -154,12 +150,6 @@ M.form_filemanager.init = function(Y, options) { button_addfile.setStyle('display', 'none'); } this.refresh(this.currentpath); - //When file is added then set draftid for validation - var elementname = M.core_filepicker.instances[this.client_id].options.elementname; - var itemid = M.core_filepicker.instances[this.client_id].options.itemid; - Y.one('#id_'+elementname).set('value', itemid); - //generate event to indicate changes which will be used by disable if code. - Y.one('#id_'+elementname).simulate('change'); }, refresh: function(filepath) { var scope = this; diff --git a/lib/form/filemanager.php b/lib/form/filemanager.php index 7bb93c71b52..f0619a90bf5 100644 --- a/lib/form/filemanager.php +++ b/lib/form/filemanager.php @@ -147,12 +147,14 @@ class MoodleQuickForm_filemanager extends HTML_QuickForm_element { $options->accepted_types = $accepted_types; $options->return_types = FILE_INTERNAL; $options->context = $PAGE->context; - $options->elementname = $elname; $html = $this->_getTabs(); $html .= form_filemanager_render($options); - $html .= ''; + $html .= ''; + // label element needs 'for' attribute work + $html .= ''; + return $html; } } @@ -302,7 +304,7 @@ FMHTML; $module = array( 'name'=>'form_filemanager', 'fullpath'=>'/lib/form/filemanager.js', - 'requires' => array('core_filepicker', 'base', 'io-base', 'node', 'node-event-simulate', 'json', 'yui2-button', 'yui2-container', 'yui2-layout', 'yui2-menu', 'yui2-treeview'), + 'requires' => array('core_filepicker', 'base', 'io', 'node', 'json', 'yui2-button', 'yui2-container', 'yui2-layout', 'yui2-menu', 'yui2-treeview'), 'strings' => array(array('loading', 'repository'), array('nomorefiles', 'repository'), array('confirmdeletefile', 'repository'), array('add', 'repository'), array('accessiblefilepicker', 'repository'), array('move', 'moodle'), array('cancel', 'moodle'), array('download', 'moodle'), array('ok', 'moodle'), diff --git a/lib/form/filepicker.js b/lib/form/filepicker.js index 186dc0b4d18..2a84f0329e1 100644 --- a/lib/form/filepicker.js +++ b/lib/form/filepicker.js @@ -5,21 +5,12 @@ M.form_filepicker = {}; M.form_filepicker.callback = function(params) { var html = ''+params['file']+''; document.getElementById('file_info_'+params['client_id']).innerHTML = html; - //When file is added then set draftid for validation - var elementname = M.core_filepicker.instances[params['client_id']].options.elementname; - var itemid = M.core_filepicker.instances[params['client_id']].options.itemid; - M.form_filepicker.YUI.one('#id_'+elementname).set('value', itemid); - //generate event to indicate changes which will be used by disable if code. - M.form_filepicker.YUI.one('#id_'+elementname).simulate('change'); }; /** * This fucntion is called for each file picker on page. */ M.form_filepicker.init = function(Y, options) { - //For client side validation, remove hidden draft_id - M.form_filepicker.YUI = Y; - Y.one('#id_'+options.elementname).set('value', ''); options.formcallback = M.form_filepicker.callback; if (!M.core_filepicker.instances[options.client_id]) { M.core_filepicker.init(Y, options); diff --git a/lib/form/filepicker.php b/lib/form/filepicker.php index bbae49b9d13..26f57fc53b1 100644 --- a/lib/form/filepicker.php +++ b/lib/form/filepicker.php @@ -79,17 +79,15 @@ class MoodleQuickForm_filepicker extends HTML_QuickForm_input { $args->maxbytes = $this->_options['maxbytes']; $args->context = $PAGE->context; $args->buttonname = $elname.'choose'; - $args->elementname = $elname; $html = $this->_getTabs(); $fp = new file_picker($args); $options = $fp->options; $options->context = $PAGE->context; - $fp->options->elementname = $elname; $html .= $OUTPUT->render($fp); $html .= ''; - $module = array('name'=>'form_filepicker', 'fullpath'=>'/lib/form/filepicker.js', 'requires'=>array('core_filepicker', 'node', 'node-event-simulate')); + $module = array('name'=>'form_filepicker', 'fullpath'=>'/lib/form/filepicker.js', 'requires'=>array('core_filepicker')); $PAGE->requires->js_init_call('M.form_filepicker.init', array($fp->options), true, $module); $nonjsfilepicker = new moodle_url('/repository/draftfiles_manager.php', array( diff --git a/lib/formslib.php b/lib/formslib.php index cee1aafaeda..87bda582bb7 100644 --- a/lib/formslib.php +++ b/lib/formslib.php @@ -332,7 +332,7 @@ abstract class moodleform { * * @return bool/array with errors */ - protected function validate_draft_files() { + function _validate_draft_files() { global $USER; $mform =& $this->_form; @@ -465,7 +465,7 @@ abstract class moodleform { $file_val = $this->_validate_files($files); //check draft files for validation and flag them if required files //are not in draft area. - $draftfilevalue = $this->validate_draft_files(); + $draftfilevalue = $this->_validate_draft_files(); if ($file_val !== true && $draftfilevalue !== true) { $file_val = array_merge($file_val, $draftfilevalue); @@ -2327,7 +2327,7 @@ class MoodleQuickForm_Renderer extends HTML_QuickForm_Renderer_Tableless{ if (!$form->isFrozen()) { $args = $form->getLockOptionObject(); if (count($args[1]) > 0) { - $PAGE->requires->js_init_call('M.form.initFormDependencies', $args, true, moodleform::get_js_module()); + $PAGE->requires->js_init_call('M.form.initFormDependencies', $args, false, moodleform::get_js_module()); } } } From 78d1df7fd50f2815767fd144052f2dd6b145e2a4 Mon Sep 17 00:00:00 2001 From: "Eloy Lafuente (stronk7)" Date: Sun, 25 Sep 2011 17:16:01 +0200 Subject: [PATCH 2/3] MDL-29512 Revert "MDL-25937 Froms Library: Added server side validation for filepicker and filemanager" This reverts commit 59bc05c4a269d01dbd680048f9835a70492fab4d. --- grade/import/xml/grade_import_form.php | 2 +- lib/form/filemanager.php | 1 - lib/form/filepicker.php | 1 - lib/formslib.php | 47 -------------------------- 4 files changed, 1 insertion(+), 50 deletions(-) diff --git a/grade/import/xml/grade_import_form.php b/grade/import/xml/grade_import_form.php index 1984916d03a..70e69f87549 100644 --- a/grade/import/xml/grade_import_form.php +++ b/grade/import/xml/grade_import_form.php @@ -32,6 +32,7 @@ class grade_import_form extends moodleform { $mform->setType('id', PARAM_INT); $mform->addElement('header', 'general', get_string('importfile', 'grades')); + $mform->disabledIf('url', 'userfile', 'noteq', ''); $mform->addElement('advcheckbox', 'feedback', get_string('importfeedback', 'grades')); $mform->setDefault('feedback', 0); @@ -41,7 +42,6 @@ class grade_import_form extends moodleform { $mform->disabledIf('userfile', 'url', 'noteq', ''); $mform->addElement('text', 'url', get_string('fileurl', 'gradeimport_xml'), 'size="80"'); - $mform->disabledIf('url', 'userfile', 'noteq', ''); if (!empty($CFG->gradepublishing)) { $mform->addElement('header', 'publishing', get_string('publishing', 'grades')); diff --git a/lib/form/filemanager.php b/lib/form/filemanager.php index f0619a90bf5..b6c4782d2b3 100644 --- a/lib/form/filemanager.php +++ b/lib/form/filemanager.php @@ -45,7 +45,6 @@ class MoodleQuickForm_filemanager extends HTML_QuickForm_element { if (!empty($options['maxbytes'])) { $this->_options['maxbytes'] = get_max_upload_file_size($CFG->maxbytes, $options['maxbytes']); } - $this->_type = 'filemanager'; parent::HTML_QuickForm_element($elementName, $elementLabel, $attributes); } diff --git a/lib/form/filepicker.php b/lib/form/filepicker.php index 26f57fc53b1..c5af6e18866 100644 --- a/lib/form/filepicker.php +++ b/lib/form/filepicker.php @@ -29,7 +29,6 @@ class MoodleQuickForm_filepicker extends HTML_QuickForm_input { if (!empty($options['maxbytes'])) { $this->_options['maxbytes'] = get_max_upload_file_size($CFG->maxbytes, $options['maxbytes']); } - $this->_type = 'filepicker'; parent::HTML_QuickForm_input($elementName, $elementLabel, $attributes); } diff --git a/lib/formslib.php b/lib/formslib.php index 87bda582bb7..5e85404842b 100644 --- a/lib/formslib.php +++ b/lib/formslib.php @@ -326,43 +326,6 @@ abstract class moodleform { } } - /** - * Internal method. Validates filepicker and filemanager files if they are - * set as required fields. Also, sets the error message if encountered one. - * - * @return bool/array with errors - */ - function _validate_draft_files() { - global $USER; - $mform =& $this->_form; - - $errors = array(); - //Go through all the required elements and make sure you hit filepicker or - //filemanager element. - foreach ($mform->_rules as $elementname => $rules) { - $elementtype = $mform->getElementType($elementname); - //If element is of type filepicker then do validation - if (($elementtype == 'filepicker') || ($elementtype == 'filemanager')){ - //Check if rule defined is required rule - foreach ($rules as $rule) { - if ($rule['type'] == 'required') { - $draftid = (int)$mform->getSubmitValue($elementname); - $fs = get_file_storage(); - $context = get_context_instance(CONTEXT_USER, $USER->id); - if (!$files = $fs->get_area_files($context->id, 'user', 'draft', $draftid, 'id DESC', false)) { - $errors[$elementname] = $rule['message']; - } - } - } - } - } - if (empty($errors)) { - return true; - } else { - return $errors; - } - } - /** * Load in existing data as form defaults. Usually new entry defaults are stored directly in * form definition (new entry form); this function is used to load in data where values @@ -463,16 +426,6 @@ abstract class moodleform { $files = array(); $file_val = $this->_validate_files($files); - //check draft files for validation and flag them if required files - //are not in draft area. - $draftfilevalue = $this->_validate_draft_files(); - - if ($file_val !== true && $draftfilevalue !== true) { - $file_val = array_merge($file_val, $draftfilevalue); - } else if ($draftfilevalue !== true) { - $file_val = $draftfilevalue; - } //default is file_val, so no need to assign. - if ($file_val !== true) { if (!empty($file_val)) { foreach ($file_val as $element=>$msg) { From 7608f458e3150889927ff10a857baf3bd2ee2559 Mon Sep 17 00:00:00 2001 From: "Eloy Lafuente (stronk7)" Date: Sun, 25 Sep 2011 17:27:31 +0200 Subject: [PATCH 3/3] weekly release 2.0.4+ (emergency) --- version.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.php b/version.php index 60ee6ea74ee..692cd8be501 100644 --- a/version.php +++ b/version.php @@ -34,6 +34,6 @@ $version = 2011033004.11; // 20110330 = branching date YYYYMM // RR = release version - do not change in weeklies // .XX = incremental changes -$release = '2.0.4+ (Build: 20110921)'; // Human-friendly version name +$release = '2.0.4+ (Build: 20110925)'; // Human-friendly version name $maturity = MATURITY_STABLE; // this version's maturity level