From 4b72a1f49843aa64cdf90301ae71035c3e6cf30a Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Fri, 31 Jul 2015 12:48:17 -0400 Subject: [PATCH] Fix error when using back button after sending an email (#1490009) --- program/steps/mail/sendmail.inc | 42 +++++++++++++++++++++++++++++------------- 1 files changed, 29 insertions(+), 13 deletions(-) diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc index b3034f5..d83f26e 100644 --- a/program/steps/mail/sendmail.inc +++ b/program/steps/mail/sendmail.inc @@ -1,6 +1,6 @@ <?php -/* +/** +-----------------------------------------------------------------------+ | program/steps/mail/sendmail.inc | | | @@ -640,24 +640,24 @@ $OUTPUT->send('iframe'); } } - - // delete previous saved draft - if ($saved && ($old_id = rcube_utils::get_input_value('_draft_saveid', rcube_utils::INPUT_POST))) { - $deleted = $RCMAIL->storage->delete_message($old_id, $drafts_mbox); - - // raise error if deletion of old draft failed - if (!$deleted) { - rcube::raise_error(array('code' => 800, 'type' => 'imap', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Could not delete message from $drafts_mbox"), true, false); - } - } } // remove temp file else if ($mailbody_file) { unlink($mailbody_file); } +// delete previous saved draft +$old_id = rcube_utils::get_input_value('_draft_saveid', rcube_utils::INPUT_POST); +if ($old_id && ($sent || $saved)) { + $deleted = $RCMAIL->storage->delete_message($old_id, $drafts_mbox); + + // raise error if deletion of old draft failed + if (!$deleted) { + rcube::raise_error(array('code' => 800, 'type' => 'imap', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => "Could not delete message from $drafts_mbox"), true, false); + } +} if ($savedraft) { // remember new draft-uid ($saved could be an UID or true/false here) @@ -958,3 +958,19 @@ return false; } + +/** + * clear message composing settings + */ +function rcmail_compose_cleanup($id) +{ + if (!isset($_SESSION['compose_data_'.$id])) { + return; + } + + $rcmail = rcmail::get_instance(); + $rcmail->plugins->exec_hook('attachments_cleanup', array('group' => $id)); + $rcmail->session->remove('compose_data_'.$id); + + $_SESSION['last_compose_session'] = $id; +} -- Gitblit v1.9.1