diff options
author | thomascube <thomas@roundcube.net> | 2010-03-11 22:44:43 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2010-03-11 22:44:43 +0000 |
commit | bc404ffd41c3411510a022ae5b0c9f2bfe8f5db1 (patch) | |
tree | fb93534c5381332d04efe19e1d7f6f31b7558113 /program/steps/mail/compose.inc | |
parent | 56505a11743d6869f6222f6b9467158edf295a44 (diff) |
Save draft information in one header; finally fixes #1486203
Diffstat (limited to 'program/steps/mail/compose.inc')
-rw-r--r-- | program/steps/mail/compose.inc | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 36a352955..a5b0a340e 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -151,18 +151,27 @@ if (!empty($msg_uid)) if (!empty($_SESSION['compose']['param']['all'])) $MESSAGE->reply_all = 1; - + $OUTPUT->set_env('compose_mode', 'reply'); } else if ($compose_mode == RCUBE_COMPOSE_DRAFT) { - if($MESSAGE->headers->in_reply_to) + if ($MESSAGE->headers->others['x-draft-info']) { // get reply_uid/forward_uid to flag the original message when sending - $_SESSION['compose']['reply_uid'] = $MESSAGE->headers->others['x-reply-uid']; - $_SESSION['compose']['forward_uid'] = $MESSAGE->headers->others['x-forward-uid']; - $_SESSION['compose']['reply_msgid'] = '<'.$MESSAGE->headers->in_reply_to.'>'; + $info = rcmail_draftinfo_decode($MESSAGE->headers->others['x-draft-info']); + + if ($info['type'] == 'reply') + $_SESSION['compose']['reply_uid'] = $info['uid']; + else if ($info['type'] == 'forward') + $_SESSION['compose']['forward_uid'] = $info['uid']; + + $_SESSION['compose']['mailbox'] = $info['folder']; } + + if ($MESSAGE->headers->in_reply_to) + $_SESSION['compose']['reply_msgid'] = '<'.$MESSAGE->headers->in_reply_to.'>'; + $_SESSION['compose']['references'] = $MESSAGE->headers->references; } else if ($compose_mode == RCUBE_COMPOSE_FORWARD) |