$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);
$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'));
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;
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;
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;
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);
}
$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;
}
}
$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'),
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);
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);
}
$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(
}
}
- /**
- * 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
$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) {
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());
}
}
}
echo $OUTPUT->footer();
-?>
\ No newline at end of file
return $textlib->convert($text, $enc);
}
}
-?>
\ No newline at end of file
echo $OUTPUT->footer();
-?>
\ No newline at end of file
echo $OUTPUT->footer();
-?>
\ No newline at end of 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').' </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
// 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