Fix bug where forced extwin page reload could exit from the extwin mode (#1490350)

With small improvements in rcube_webmail.url() method.
pull/273/head
Aleksander Machniak 10 years ago
parent d86ff98339
commit e8e88d347d

@ -16,6 +16,7 @@ CHANGELOG Roundcube Webmail
- Fix so unrecognized TNEF attachments are displayed on the list of attachments (#1490351) - Fix so unrecognized TNEF attachments are displayed on the list of attachments (#1490351)
- Fix lack of signature separator for plain text signatures in html mode (#1490352) - Fix lack of signature separator for plain text signatures in html mode (#1490352)
- Fix font artifact in Google Chrome on Windows (#1490353) - Fix font artifact in Google Chrome on Windows (#1490353)
- Fix bug where forced extwin page reload could exit from the extwin mode (#1490350)
RELEASE 1.1.1 RELEASE 1.1.1
------------- -------------

@ -1440,7 +1440,7 @@ function rcube_webmail()
else if (delay) else if (delay)
setTimeout(function() { ref.reload(); }, delay); setTimeout(function() { ref.reload(); }, delay);
else if (window.location) else if (window.location)
location.href = this.env.comm_path + (this.env.action ? '&_action='+this.env.action : ''); location.href = this.url('', {_extwin: this.env.extwin});
}; };
// Add variable to GET string, replace old value if exists // Add variable to GET string, replace old value if exists
@ -7222,7 +7222,7 @@ function rcube_webmail()
// compose a valid url with the given parameters // compose a valid url with the given parameters
this.url = function(action, query) this.url = function(action, query)
{ {
var querystring = typeof query === 'string' ? '&' + query : ''; var querystring = typeof query === 'string' ? query : '';
if (typeof action !== 'string') if (typeof action !== 'string')
query = action; query = action;
@ -7234,12 +7234,12 @@ function rcube_webmail()
else if (this.env.action) else if (this.env.action)
query._action = this.env.action; query._action = this.env.action;
var base = this.env.comm_path, k, param = {}; var url = this.env.comm_path, k, param = {};
// overwrite task name // overwrite task name
if (action && action.match(/([a-z0-9_-]+)\/([a-z0-9-_.]+)/)) { if (action && action.match(/([a-z0-9_-]+)\/([a-z0-9-_.]+)/)) {
query._action = RegExp.$2; query._action = RegExp.$2;
base = base.replace(/\_task=[a-z0-9_-]+/, '_task='+RegExp.$1); url = url.replace(/\_task=[a-z0-9_-]+/, '_task=' + RegExp.$1);
} }
// remove undefined values // remove undefined values
@ -7248,7 +7248,13 @@ function rcube_webmail()
param[k] = query[k]; param[k] = query[k];
} }
return base + (base.indexOf('?') > -1 ? '&' : '?') + $.param(param) + querystring; if (param = $.param(param))
url += (url.indexOf('?') > -1 ? '&' : '?') + param;
if (querystring)
url += (url.indexOf('?') > -1 ? '&' : '?') + querystring;
return url;
}; };
this.redirect = function(url, lock) this.redirect = function(url, lock)

Loading…
Cancel
Save