summaryrefslogtreecommitdiff
path: root/program/steps/mail/compose.inc
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2010-03-11 22:44:43 +0000
committerthomascube <thomas@roundcube.net>2010-03-11 22:44:43 +0000
commitbc404ffd41c3411510a022ae5b0c9f2bfe8f5db1 (patch)
treefb93534c5381332d04efe19e1d7f6f31b7558113 /program/steps/mail/compose.inc
parent56505a11743d6869f6222f6b9467158edf295a44 (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.inc19
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)