Fix bug where Drafts list wasn't updated on draft-save action in new window (#1490225)

That if the window was opened using "Edit" button, not double-click on a message.
pull/264/head
Aleksander Machniak 10 years ago
parent f5b7c2e0a3
commit 5a84736e53

@ -7,6 +7,7 @@ CHANGELOG Roundcube Webmail
- Hide MDN and DSN options in compose if disabled by admin (#1490221)
- Fix checks based on window.ActiveXObject in IE > 10
- Fix XSS issue in style attribute handling (#1490227)
- Fix bug where Drafts list wasn't updated on draft-save action in new window (#1490225)
RELEASE 1.1-rc
--------------

@ -3781,14 +3781,13 @@ function rcube_webmail()
this.set_draft_id = function(id)
{
var rc;
if (id && id != this.env.draft_id) {
if (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)
var filter = {task: 'mail', action: ''},
rc = this.opener(false, filter) || this.opener(true, filter);
// refresh the drafts folder in the opener window
if (rc && rc.env.mailbox == this.env.drafts_mailbox)
rc.command('checkmail');
}
this.env.draft_id = id;
$("input[name='_draft_saveid']").val(id);
@ -7894,12 +7893,24 @@ function rcube_webmail()
};
// get window.opener.rcmail if available
this.opener = function()
this.opener = function(deep, filter)
{
var i, win = window.opener;
// catch Error: Permission denied to access property rcmail
try {
if (window.opener && !opener.closed && opener.rcmail)
return opener.rcmail;
if (win && !win.closed) {
// try parent of the opener window, e.g. preview frame
if (deep && (!win.rcmail || win.rcmail.env.framed) && win.parent && win.parent.rcmail)
win = win.parent;
if (win.rcmail && filter)
for (i in filter)
if (win.rcmail.env[i] != filter[i])
return;
return win.rcmail;
}
}
catch (e) {}
};

Loading…
Cancel
Save