summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2010-08-28 12:37:56 +0000
committeralecpl <alec@alec.pl>2010-08-28 12:37:56 +0000
commit736790f62593fda97879946296be2f85f97e3d28 (patch)
tree3b9668ed51f83f27673017f0b899ecf81c8ee2a5
parent882b0f5e7f3514d56649923b02583149d80af56b (diff)
- Fix JS error on IE when trying to send HTML message with enabled spellchecker (#1486940)
-rw-r--r--CHANGELOG1
-rw-r--r--program/js/app.js48
2 files changed, 27 insertions, 22 deletions
diff --git a/CHANGELOG b/CHANGELOG
index fd9253a68..a92b3f5b2 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -12,6 +12,7 @@ CHANGELOG RoundCube Webmail
- Fix Tab key doesn't work in HTML editor in Google Chrome (#1486925)
- Fix TinyMCE uses zh_CN when zh_TW locale is set (#1486929)
- Fix TinyMCE buttons are hidden in Opera (#1486922)
+- Fix JS error on IE when trying to send HTML message with enabled spellchecker (#1486940)
RELEASE 0.4
-----------
diff --git a/program/js/app.js b/program/js/app.js
index b129e9881..425e71b42 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -2752,12 +2752,12 @@ function rcube_webmail()
this.check_compose_input = function()
{
// check input fields
- var input_to = $("[name='_to']");
- var input_cc = $("[name='_cc']");
- var input_bcc = $("[name='_bcc']");
- var input_from = $("[name='_from']");
- var input_subject = $("[name='_subject']");
- var input_message = $("[name='_message']");
+ var ed, input_to = $("[name='_to']"),
+ input_cc = $("[name='_cc']"),
+ input_bcc = $("[name='_bcc']"),
+ input_from = $("[name='_from']"),
+ input_subject = $("[name='_subject']"),
+ input_message = $("[name='_message']");
// check sender (if have no identities)
if (input_from.attr('type') == 'text' && !rcube_check_email(input_from.val(), true)) {
@@ -2795,25 +2795,25 @@ function rcube_webmail()
input_subject.val((subject ? subject : this.get_label('nosubject')));
}
+ // Apply spellcheck changes if spell checker is active
+ this.stop_spellchecking();
+
+ if (window.tinyMCE)
+ ed = tinyMCE.get(this.env.composebody);
+
// check for empty body
- if ((!window.tinyMCE || !tinyMCE.get(this.env.composebody))
- && input_message.val() == '' && !confirm(this.get_label('nobodywarning'))) {
+ if (!ed && input_message.val() == '' && !confirm(this.get_label('nobodywarning'))) {
input_message.focus();
return false;
}
- else if (window.tinyMCE && tinyMCE.get(this.env.composebody)
- && !tinyMCE.get(this.env.composebody).getContent()
- && !confirm(this.get_label('nobodywarning'))) {
- tinyMCE.get(this.env.composebody).focus();
- return false;
- }
-
- // Apply spellcheck changes if spell checker is active
- this.stop_spellchecking();
-
- // move body from html editor to textarea (just to be sure, #1485860)
- if (window.tinyMCE && tinyMCE.get(this.env.composebody))
+ else if (ed) {
+ if (!ed.getContent() && !confirm(this.get_label('nobodywarning'))) {
+ ed.focus();
+ return false;
+ }
+ // move body from html editor to textarea (just to be sure, #1485860)
tinyMCE.triggerSave();
+ }
return true;
};
@@ -2845,8 +2845,12 @@ function rcube_webmail()
this.stop_spellchecking = function()
{
- if (this.env.spellcheck && !this.spellcheck_ready) {
- $(this.env.spellcheck.spell_span).trigger('click');
+ var ed;
+ if (window.tinyMCE && (ed = tinyMCE.get(this.env.composebody))) {
+ ed.execCommand('mceSpellCheck');
+ }
+ else if ((ed = this.env.spellcheck) && !this.spellcheck_ready) {
+ $(ed.spell_span).trigger('click');
this.set_spellcheck_state('ready');
}
};