diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-09-11 09:45:20 +0200 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-09-11 09:45:20 +0200 |
commit | 66a549e1331fb85a04d34294b1197e6848a76954 (patch) | |
tree | 71aab41dcac97b781716ded96a164c0f3e7a3110 /program | |
parent | 6128ad7e962a8f9bf82a1ef87e4efbe36d719d92 (diff) |
After message is sent refresh messages list of replied message folder (#1489249)
Diffstat (limited to 'program')
-rw-r--r-- | program/js/app.js | 10 | ||||
-rw-r--r-- | program/steps/mail/compose.inc | 2 | ||||
-rw-r--r-- | program/steps/mail/sendmail.inc | 21 |
3 files changed, 23 insertions, 10 deletions
diff --git a/program/js/app.js b/program/js/app.js index dedad37d2..166b082bf 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -3783,7 +3783,7 @@ function rcube_webmail() this.env.search_id = null; }; - this.sent_successfully = function(type, msg, target) + this.sent_successfully = function(type, msg, folders) { this.display_message(msg, type); @@ -3792,9 +3792,11 @@ function rcube_webmail() this.lock_form(this.gui_objects.messageform); if (rc) { rc.display_message(msg, type); - // refresh the folder where sent message was saved - if (target && rc.env.task == 'mail' && rc.env.action == '' && rc.env.mailbox == target) - rc.command('checkmail'); + // refresh the folder where sent message was saved or replied message comes from + if (folders && rc.env.task == 'mail' && rc.env.action == '' && $.inArray(rc.env.mailbox, folders) >= 0) { + // @TODO: try with 'checkmail' here when #1485186 is fixed. See also #1489249. + rc.command('list', rc.env.mailbox); + } } setTimeout(function(){ window.close() }, 1000); } diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 4a0e52b2b..e9f638cb1 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -165,6 +165,8 @@ else if ($msg_uid = $COMPOSE['param']['forward_uid']) { else if ($msg_uid = $COMPOSE['param']['uid']) { $compose_mode = RCUBE_COMPOSE_EDIT; } + +$COMPOSE['mode'] = $compose_mode; $OUTPUT->set_env('compose_mode', $compose_mode); $config_show_sig = $RCMAIL->config->get('show_sig', 1); diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc index 1a92844c0..779fb87cd 100644 --- a/program/steps/mail/sendmail.inc +++ b/program/steps/mail/sendmail.inc @@ -823,15 +823,24 @@ if ($savedraft) { // start the auto-save timer again $OUTPUT->command('auto_save_start'); - - $OUTPUT->send('iframe'); } else { + $folders = array(); + + if ($COMPOSE['mode'] == 'reply' || $COMPOSE['mode'] == 'forward') + $folders[] = $COMPOSE['mailbox']; + rcmail_compose_cleanup($COMPOSE_ID); if ($store_folder && !$saved) - $OUTPUT->command('sent_successfully', 'error', rcube_label('errorsavingsent')); - else - $OUTPUT->command('sent_successfully', 'confirmation', rcube_label('messagesent'), $store_target); - $OUTPUT->send('iframe'); + $OUTPUT->command('sent_successfully', 'error', rcube_label('errorsavingsent'), $folders); + else { + if ($store_folder) { + $folders[] = $store_target; + } + + $OUTPUT->command('sent_successfully', 'confirmation', rcube_label('messagesent'), $folders); + } } + +$OUTPUT->send('iframe'); |