diff --git a/program/js/app.js b/program/js/app.js index f83caeb36..f4a41e7f4 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -3141,6 +3141,10 @@ function rcube_webmail() if (this.env.draft_id && formdata.draft_id && formdata.draft_id != this.env.draft_id) { continue; } + // skip records on reply + if (this.env.reply_msgid && formdata.reply_msgid != this.env.reply_msgid) { + continue; + } // show dialog asking to restore the message if (formdata.changed && formdata.session != this.env.session_id) { this.show_popup_dialog( @@ -3616,8 +3620,10 @@ function rcube_webmail() this.env.draft_id = id; $("input[name='_draft_saveid']").val(id); - this.remove_compose_data(this.env.compose_id); } + + // always remove local copy upon saving as draft + this.remove_compose_data(this.env.compose_id); }; this.auto_save_start = function() @@ -3681,6 +3687,9 @@ function rcube_webmail() if (this.env.draft_id) { formdata.draft_id = this.env.draft_id; } + if (this.env.reply_msgid) { + formdata.reply_msgid = this.env.reply_msgid; + } $('input, select, textarea', this.gui_objects.messageform).each(function(i, elem) { switch (elem.tagName.toLowerCase()) { diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index db001d54e..6e478c656 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -271,6 +271,9 @@ else { } } +if (!empty($COMPOSE['reply_msgid'])) + $OUTPUT->set_env('reply_msgid', $COMPOSE['reply_msgid']); + $MESSAGE->compose = array(); // get user's identities