Merge branch 'MDL-29478' of git://github.com/stronk7/moodle
authorSam Hemelryk <sam@moodle.com>
Sun, 25 Sep 2011 21:52:48 +0000 (10:52 +1300)
committerSam Hemelryk <sam@moodle.com>
Sun, 25 Sep 2011 21:52:48 +0000 (10:52 +1300)
13 files changed:
grade/import/xml/grade_import_form.php
lib/form/filemanager.js
lib/form/filemanager.php
lib/form/filepicker.js
lib/form/filepicker.php
lib/form/recaptcha.php
lib/formslib.php
mod/feedback/delete_template.php
mod/feedback/import.php
mod/feedback/show_entries.php
mod/feedback/show_entries_anonym.php
mod/feedback/show_nonrespondents.php
version.php

index 1984916..70e69f8 100644 (file)
@@ -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'));
index bedf3a4..cf6837b 100644 (file)
@@ -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;
index 7bb93c7..89922a0 100644 (file)
@@ -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);
     }
 
@@ -147,12 +146,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 .= '<input id="id_'.$elname.'" value="'.$draftitemid.'" name="'.$elname.'" type="hidden" class="filemanagerhidden"/>';
+        $html .= '<input value="'.$draftitemid.'" name="'.$elname.'" type="hidden" />';
+        // label element needs 'for' attribute work
+        $html .= '<input value="" id="id_'.$elname.'" type="hidden" />';
+
         return $html;
     }
 }
@@ -302,7 +303,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-base', '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'),
index 186dc0b..2a84f03 100644 (file)
@@ -5,21 +5,12 @@ M.form_filepicker = {};
 M.form_filepicker.callback = function(params) {
     var html = '<a href="'+params['url']+'">'+params['file']+'</a>';
     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); 
index 31a5329..039ab76 100644 (file)
@@ -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);
     }
 
@@ -79,17 +78,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 .= '<input type="hidden" name="'.$elname.'" id="'.$id.'" value="'.$draftitemid.'" class="filepickerhidden"/>';
 
-        $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(
index d4f467e..79b2cb1 100644 (file)
@@ -1,4 +1,6 @@
 <?php
+require_once('HTML/QuickForm/input.php');
+
 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
 
 /**
index 45e01a2..d579b87 100644 (file)
@@ -339,43 +339,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
-     */
-    protected 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
@@ -476,16 +439,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) {
@@ -2347,7 +2300,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());
             }
         }
     }
index ae76782..e866a62 100644 (file)
@@ -138,4 +138,3 @@ if($shoulddelete == 1) {
 
 echo $OUTPUT->footer();
 
-?>
\ No newline at end of file
index f065bda..73cd145 100644 (file)
             return $textlib->convert($text, $enc);
         }
     }
-?>
\ No newline at end of file
index 3a4edd7..8916ca7 100644 (file)
@@ -305,4 +305,3 @@ if($do_show == 'showoneentry') {
 
 echo $OUTPUT->footer();
 
-?>
\ No newline at end of file
index 70d4251..63688b0 100644 (file)
@@ -226,4 +226,3 @@ if($showcompleted) {
 
 echo $OUTPUT->footer();
 
-?>
\ No newline at end of file
index 92a3d82..4fb3ff8 100644 (file)
         }
         if(has_capability('moodle/course:bulkmessaging', $coursecontext)) {
             $usehtmleditor = can_use_html_editor();
-            echo '<br /><div class="buttons">';
+            echo '<div class="buttons"><br />';
             echo '<input type="button" id="checkall" value="'.get_string('selectall').'" /> ';
             echo '<input type="button" id="checknone" value="'.get_string('deselectall').'" /> ';
-            echo '</div';
+            echo '</div>';
             echo '<fieldset class="clearfix">';
             echo '<legend class="ftoggler">'.get_string('send_message', 'feedback').'</legend>';
             echo '<div><label for="feedback_subject">'.get_string('subject', 'feedback').'&nbsp;</label><input type="text" id="feedback_subject" size="50" maxlength="255" name="subject" value="'.$subject.'" /></div>';
             echo '<br /><div class="buttons">';
             echo '<input type="submit" name="send_message" value="'.get_string('send', 'feedback').'" />';
             echo '</div>';
-            echo '</fieldset>';
             echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
             echo '<input type="hidden" name="action" value="sendmessage" />';
             echo '<input type="hidden" name="id" value="'.$id.'" />';
+            echo '</fieldset>';
             echo '</form>';
             //include the needed js
             $module = array('name'=>'mod_feedback', 'fullpath'=>'/mod/feedback/feedback.js');
 
     echo $OUTPUT->footer();
 
-?>
\ No newline at end of file
index 97a4fb6..78a0051 100644 (file)
@@ -35,6 +35,6 @@ $version  = 2011092100.00;              // YYYYMMDD      = weekly release date o
                                         //         RR    = release increments - 00 in DEV branches
                                         //           .XX = incremental changes
 
-$release  = '2.2dev (Build: 20110921)'; // Human-friendly version name
+$release  = '2.2dev (Build: 20110925)'; // Human-friendly version name
 
 $maturity = MATURITY_ALPHA;             // this version's maturity level