MDL-28987: Affix [text] to editor element in JS validation and add blur event

This commit is contained in:
Adam Olley
2011-09-05 12:21:43 +08:00
committed by Rajesh Taneja
parent ddf322586e
commit a010bfe63d
2 changed files with 16 additions and 1 deletions
+6 -1
View File
@@ -204,7 +204,12 @@ class MoodleQuickForm_editor extends HTML_QuickForm_element {
$rows = empty($this->_attributes['rows']) ? 15 : $this->_attributes['rows'];
$cols = empty($this->_attributes['cols']) ? 80 : $this->_attributes['cols'];
$str .= '<div><textarea id="'.$id.'" name="'.$elname.'[text]" rows="'.$rows.'" cols="'.$cols.'">';
//Apply editor rules is required
$editorrules = '';
if (!is_null($this->getAttribute('onblur')) && !is_null($this->getAttribute('onchange'))) {
$editorrules = 'onblur="'.$this->getAttribute('onblur').'" onchange="'.$this->getAttribute('onchange').'"';
}
$str .= '<div><textarea id="'.$id.'" name="'.$elname.'[text]" rows="'.$rows.'" cols="'.$cols.'"'.$editorrules.'>';
$str .= s($text);
$str .= '</textarea></div>';
+10
View File
@@ -1705,6 +1705,9 @@ class MoodleQuickForm extends HTML_QuickForm_DHTMLRulesTableless {
}
// Fix for bug displaying errors for elements in a group
//$test[$elementName][] = $registry->getValidationScript($element, $elementName, $rule);
if ($element->_type == 'editor') {
$elementName .= '[text]';
}
$test[$elementName][0][] = $registry->getValidationScript($element, $elementName, $rule);
$test[$elementName][1]=$element;
//end of fix
@@ -1777,6 +1780,13 @@ function qf_errorHandler(element, _qfMsg) {
'/[_\[\]]/',
create_function('$matches', 'return sprintf("_%2x",ord($matches[0]));'),
$elementName);
if ($element->_type == 'editor') {
$tinyjs = "
if (tinyMCE.get('id_{$element->getName()}')) {
tinyMCE.get('id_{$element->getName()}').save();
}";
array_unshift($jsArr, $tinyjs);
}
$js .= '
function validate_' . $this->_formName . '_' . $escapedElementName . '(element) {
if (undefined == element) {