summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-03-26 19:16:03 +0100
committerAleksander Machniak <alec@alec.pl>2013-03-26 19:17:13 +0100
commit321d8b06fb32d6fa6bc991f7fbb95d63bdb70390 (patch)
tree5d96080e6b3e5b0a4ec3e08f879ff2307a67458b
parentaa30cf8f3c05ab4fd69f7ab2dea39e56d8bf1976 (diff)
Refresh current folder in opener window after draft save or message sent (#1488997)
-rw-r--r--CHANGELOG1
-rw-r--r--program/js/app.js20
-rw-r--r--program/steps/mail/sendmail.inc2
3 files changed, 18 insertions, 5 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 747bff0a9..e3665a8c2 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Refresh current folder in opener window after draft save or message sent (#1488997)
- Fix saving draft just after entering compose window (#1489012)
- Fix javascript error in IE9 when loading form with placeholders into an iframe (#1489008)
- Fix handling of some conditional comment tags in HTML message (#1489004)
diff --git a/program/js/app.js b/program/js/app.js
index eb8644a5b..8bb4142ee 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -3345,6 +3345,14 @@ function rcube_webmail()
this.set_draft_id = function(id)
{
+ var rc;
+
+ if (!this.env.draft_id && id && (rc = this.opener())) {
+ // refresh the drafts folder in opener window
+ if (rc.env.task == 'mail' && rc.env.action == '' && rc.env.mailbox == this.env.drafts_mailbox)
+ rc.command('checkmail');
+ }
+
this.env.draft_id = id;
$("input[name='_draft_saveid']").val(id);
};
@@ -3721,15 +3729,19 @@ function rcube_webmail()
this.env.search_id = null;
};
- this.sent_successfully = function(type, msg)
+ this.sent_successfully = function(type, msg, target)
{
this.display_message(msg, type);
if (this.env.extwin) {
- var opener_rc = this.opener();
+ var rc = this.opener();
this.lock_form(this.gui_objects.messageform);
- if (opener_rc)
- opener_rc.display_message(msg, type);
+ if (rc) {
+ rc.display_message(msg, type);
+ // refresh the folder where sent message was saved
+ if (target && rc.env.task == 'mail' && rc.env.action == '' && rc.env.mailbox == target)
+ rc.command('checkmail');
+ }
setTimeout(function(){ window.close() }, 1000);
}
else {
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index eb0ba89c6..eca0b507d 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -820,6 +820,6 @@ else {
if ($store_folder && !$saved)
$OUTPUT->command('sent_successfully', 'error', rcube_label('errorsavingsent'));
else
- $OUTPUT->command('sent_successfully', 'confirmation', rcube_label('messagesent'));
+ $OUTPUT->command('sent_successfully', 'confirmation', rcube_label('messagesent'), $store_target);
$OUTPUT->send('iframe');
}