From 90dc9b15125b60c000e10006a6b95ad72952ae9e Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Mon, 27 Jan 2014 17:44:46 +0100 Subject: Compare message IDs before suggesting to restore compose messages on reply --- program/js/app.js | 11 ++++++++++- program/steps/mail/compose.inc | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'program') 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 -- cgit v1.2.3