summaryrefslogtreecommitdiff
path: root/program/steps
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2011-05-30 16:19:51 +0000
committeralecpl <alec@alec.pl>2011-05-30 16:19:51 +0000
commit1d5779b2577453a1000f38fa987bb0eafd3c554f (patch)
tree0d2f239b2c2c9c39f73d866603c2cac35808bbba /program/steps
parentb4edf78e4b75bc40a829147941ba0cf6379fbc39 (diff)
- Add option to force spellchecking before sending a message (#1485458)
Diffstat (limited to 'program/steps')
-rw-r--r--program/steps/mail/sendmail.inc17
-rw-r--r--program/steps/settings/func.inc10
-rw-r--r--program/steps/settings/save_prefs.inc1
3 files changed, 28 insertions, 0 deletions
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index a492e937c..de971a25a 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -409,6 +409,22 @@ if (!$savedraft) {
"\r\n<html><body>\r\n" . $message_body;
}
+ // Check spelling before send
+ if ($CONFIG['spellcheck_before_send'] && $CONFIG['enable_spellcheck']
+ && empty($_SESSION['compose']['spell_checked'])
+ ) {
+ $spellchecker = new rcube_spellchecker();
+ $spell_result = $spellchecker->check($message_body, $isHtml);
+
+ $_SESSION['compose']['spell_checked'] = true;
+
+ if (!$spell_result) {
+ $OUTPUT->show_message('mispellingsfound', 'error');
+ $OUTPUT->command('command', 'spellcheck');
+ $OUTPUT->send('iframe');
+ }
+ }
+
// generic footer for all messages
if ($isHtml && !empty($CONFIG['generic_message_footer_html'])) {
$footer = file_get_contents(realpath($CONFIG['generic_message_footer_html']));
@@ -420,6 +436,7 @@ if (!$savedraft) {
if ($isHtml)
$footer = '<pre>'.$footer.'</pre>';
}
+
if ($footer)
$message_body .= "\r\n" . $footer;
if ($isHtml)
diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc
index 280185e76..cf2d59199 100644
--- a/program/steps/settings/func.inc
+++ b/program/steps/settings/func.inc
@@ -545,6 +545,16 @@ function rcmail_user_prefs($current=null)
);
}
+ if (!isset($no_override['spellcheck_before_send']) && $config['enable_spellcheck']) {
+ $field_id = 'rcmfd_spellcheck_before_send';
+ $input_spellcheck = new html_checkbox(array('name' => '_spellcheck_before_send', 'id' => $field_id, 'value' => 1));
+
+ $blocks['main']['options']['spellcheck_before_send'] = array(
+ 'title' => html::label($field_id, Q(rcube_label('spellcheckbeforesend'))),
+ 'content' => $input_spellcheck->show($config['spellcheck_before_send']?1:0),
+ );
+ }
+
if (!isset($no_override['show_sig'])) {
$field_id = 'rcmfd_show_sig';
$select_show_sig = new html_select(array('name' => '_show_sig', 'id' => $field_id));
diff --git a/program/steps/settings/save_prefs.inc b/program/steps/settings/save_prefs.inc
index a5ec2346a..ac1cfb3d0 100644
--- a/program/steps/settings/save_prefs.inc
+++ b/program/steps/settings/save_prefs.inc
@@ -70,6 +70,7 @@ switch ($CURR_SECTION)
'mdn_default' => isset($_POST['_mdn_default']) ? TRUE : FALSE,
'dsn_default' => isset($_POST['_dsn_default']) ? TRUE : FALSE,
'reply_same_folder' => isset($_POST['_reply_same_folder']) ? TRUE : FALSE,
+ 'spellcheck_before_send' => isset($_POST['_spellcheck_before_send']) ? TRUE : FALSE,
'show_sig' => isset($_POST['_show_sig']) ? intval($_POST['_show_sig']) : 1,
'top_posting' => !empty($_POST['_top_posting']),
'strip_existing_sig' => isset($_POST['_strip_existing_sig']),