summaryrefslogtreecommitdiff
path: root/program/js
diff options
context:
space:
mode:
Diffstat (limited to 'program/js')
-rw-r--r--program/js/app.js48
1 files changed, 26 insertions, 22 deletions
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');
}
};