From 90dc9b15125b60c000e10006a6b95ad72952ae9e Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <thomas@roundcube.net> Date: Mon, 27 Jan 2014 11:44:46 -0500 Subject: [PATCH] Compare message IDs before suggesting to restore compose messages on reply --- program/steps/mail/compose.inc | 3 +++ program/js/app.js | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletions(-) diff --git a/program/js/app.js b/program/js/app.js index f83caeb..f4a41e7 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -3141,6 +3141,10 @@ 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 @@ 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 @@ 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 db001d5..6e478c6 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -271,6 +271,9 @@ } } +if (!empty($COMPOSE['reply_msgid'])) + $OUTPUT->set_env('reply_msgid', $COMPOSE['reply_msgid']); + $MESSAGE->compose = array(); // get user's identities -- Gitblit v1.9.1