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