summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2015-01-22 10:19:51 +0100
committerAleksander Machniak <alec@alec.pl>2015-01-22 10:19:51 +0100
commit5d42a9353b3df5e08b7dfc2ac6a92978a89cceca (patch)
treee830d774a547c1444ef52fbedc4c873a911286e0 /program
parent5beaac231eba40093cfb330510e176d517ee00a4 (diff)
Fix bug where drafts list wasn't refreshed after draft message was sent from another window (#1490238)
Diffstat (limited to 'program')
-rw-r--r--program/js/app.js18
-rw-r--r--program/steps/mail/compose.inc7
-rw-r--r--program/steps/mail/sendmail.inc2
3 files changed, 20 insertions, 7 deletions
diff --git a/program/js/app.js b/program/js/app.js
index d4169deef..5dd9272a2 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -2484,6 +2484,16 @@ function rcube_webmail()
selection.push(selected[i]);
this.message_list.selection = selection;
+
+ // reset preview frame, if currently previewed message is not selected (has been removed)
+ try {
+ var win = this.get_frame_window(this.env.contentframe),
+ id = win.rcmail.env.uid;
+
+ if (id && $.inArray(id, selection) < 0)
+ this.show_contentframe(false);
+ }
+ catch (e) {};
};
// expand all threads with unread children
@@ -3971,7 +3981,6 @@ function rcube_webmail()
this.local_storage_remove_item('compose.index');
};
-
this.change_identity = function(obj, show_sig)
{
if (!obj || !obj.options)
@@ -4340,6 +4349,7 @@ function rcube_webmail()
(this.env.search_request && (this.env.search_scope || 'base') != 'base');
};
+ // action executed after mail is sent
this.sent_successfully = function(type, msg, folders)
{
this.display_message(msg, type);
@@ -4348,11 +4358,13 @@ function rcube_webmail()
if (this.env.extwin) {
this.lock_form(this.gui_objects.messageform);
- var rc = this.opener();
+ var filter = {task: 'mail', action: ''},
+ rc = this.opener(false, filter) || this.opener(true, filter);
+
if (rc) {
rc.display_message(msg, type);
// refresh the folder where sent message was saved or replied message comes from
- if (folders && rc.env.task == 'mail' && rc.env.action == '' && $.inArray(rc.env.mailbox, folders) >= 0) {
+ if (folders && $.inArray(rc.env.mailbox, folders) >= 0) {
rc.command('checkmail');
}
}
diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index 1731a4822..db4efc7ce 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -53,13 +53,14 @@ if (!is_array($COMPOSE)) {
}
$COMPOSE_ID = uniqid(mt_rand());
+ $params = rcube_utils::request2param(rcube_utils::INPUT_GET, 'task|action', true);
+
$_SESSION['compose_data_'.$COMPOSE_ID] = array(
'id' => $COMPOSE_ID,
- 'param' => rcube_utils::request2param(rcube_utils::INPUT_GET, 'task|action', true),
- 'mailbox' => $RCMAIL->storage->get_folder(),
+ 'param' => $params,
+ 'mailbox' => $params['mbox'] ?: $RCMAIL->storage->get_folder(),
);
$COMPOSE =& $_SESSION['compose_data_'.$COMPOSE_ID];
-
rcmail_process_compose_params($COMPOSE);
// check if folder for saving sent messages exists and is subscribed (#1486802)
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 4ad43e433..76a8188c3 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -686,7 +686,7 @@ if ($savedraft) {
else {
$folders = array();
- if ($COMPOSE['mode'] == 'reply' || $COMPOSE['mode'] == 'forward') {
+ if (in_array($COMPOSE['mode'], array('reply', 'forward', 'draft'))) {
$folders[] = $COMPOSE['mailbox'];
}