From 5821ff51239b7f24d18e3097b3e85813f81768dd Mon Sep 17 00:00:00 2001 From: alecpl Date: Sat, 6 Mar 2010 18:59:25 +0000 Subject: - Don't show a warning on html2text switch when textarea is empty - Set properly select's value when html2text is aborted --- program/js/editor.js | 24 ++++++++++++++++++------ program/steps/mail/compose.inc | 2 +- program/steps/settings/edit_identity.inc | 2 +- 3 files changed, 20 insertions(+), 8 deletions(-) (limited to 'program') diff --git a/program/js/editor.js b/program/js/editor.js index 361741e3b..10511a03d 100644 --- a/program/js/editor.js +++ b/program/js/editor.js @@ -83,10 +83,15 @@ function rcmail_editor_tabindex() } // switch html/plain mode -function rcmail_toggle_editor(ishtml, textAreaId, flagElement) +function rcmail_toggle_editor(select, textAreaId, flagElement) { var composeElement = document.getElementById(textAreaId); - var flag; + var flag, ishtml; + + if (select.tagName != 'SELECT') + ishtml = select.checked; + else + ishtml = select.value == 'html'; if (ishtml) { @@ -100,12 +105,19 @@ function rcmail_toggle_editor(ishtml, textAreaId, flagElement) } else { - if (!confirm(rcmail.get_label('editorwarning'))) - return false; - var thisMCE = tinyMCE.get(textAreaId); var existingHtml = thisMCE.getContent(); - rcmail.html2plain(existingHtml, textAreaId); + + if (existingHtml) { + if (!confirm(rcmail.get_label('editorwarning'))) { + if (select.tagName == 'SELECT') + select.value = 'html'; + return false; + } + + rcmail.html2plain(existingHtml, textAreaId); + } + tinyMCE.execCommand('mceRemoveControl', true, textAreaId); rcmail.display_spellcheck_controls(true); if (flagElement && (flag = rcube_find_object(flagElement))) diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index fa1ea9533..3a63cc8fc 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -976,7 +976,7 @@ function rcmail_editor_selector($attrib) if (empty($attrib['name'])) $attrib['name'] = 'editorSelect'; - $attrib['onchange'] = "return rcmail_toggle_editor(this.value=='html', '".$attrib['editorid']."', '_is_html')"; + $attrib['onchange'] = "return rcmail_toggle_editor(this, '".$attrib['editorid']."', '_is_html')"; $select = new html_select($attrib); diff --git a/program/steps/settings/edit_identity.inc b/program/steps/settings/edit_identity.inc index bf3777f2d..d0f3581d4 100644 --- a/program/steps/settings/edit_identity.inc +++ b/program/steps/settings/edit_identity.inc @@ -70,7 +70,7 @@ function rcube_identity_form($attrib) 'reply-to' => array('type' => 'text', 'label' => 'reply-to', 'size' => $i_size), 'bcc' => array('type' => 'text', 'size' => $i_size), 'signature' => array('type' => 'textarea', 'size' => $t_cols, 'rows' => $t_rows), - 'html_signature'=>array('type' => 'checkbox', 'label' => 'htmlsignature', 'onclick' => 'return rcmail_toggle_editor(this.checked, \'rcmfd_signature\');'), + 'html_signature'=>array('type' => 'checkbox', 'label' => 'htmlsignature', 'onclick' => 'return rcmail_toggle_editor(this, \'rcmfd_signature\');'), 'standard' => array('type' => 'checkbox', 'label' => 'setdefault')); // disable some field according to access level -- cgit v1.2.3