Browse Source

Fix bug in collapsing/expanding folders with some special characters in names (#9324)

pull/9326/head
Aleksander Machniak 2 years ago
parent
commit
7f459502ab
  1. 1
      CHANGELOG.md
  2. 11
      program/js/app.js
  3. 12
      program/js/common.js

1
CHANGELOG.md

@ -41,6 +41,7 @@
- Fix potential HTTP protocol version mismatch (#8982)
- Makefile: Use phpDocumentor v3.4 for the Framework docs (#9313)
- Fix bug where HTML entities in URLs were not decoded on HTML to plain text conversion (#9312)
- Fix bug in collapsing/expanding folders with some special characters in names (#9324)
## Release 1.6.6

11
program/js/app.js

@ -1766,20 +1766,19 @@ function rcube_webmail()
clearTimeout(this.folder_collapsed_timer);
var prefname = this.env.task == 'addressbook' ? 'collapsed_abooks' : 'collapsed_folders',
old = this.env[prefname];
old = this.env[prefname]
entry = '&' + urlencode(node.id) + '&';
this.env[prefname] = old.replace(entry, '');
if (node.collapsed) {
this.env[prefname] = this.env[prefname] + '&'+urlencode(node.id)+'&';
this.env[prefname] = this.env[prefname] + entry;
// select the folder if one of its children is currently selected
// don't select if it's virtual (#1488346)
if (!node.virtual && this.env.mailbox && this.env.mailbox.startsWith(node.id + this.env.delimiter))
this.command('list', node.id);
}
else {
var reg = new RegExp('&'+urlencode(node.id)+'&');
this.env[prefname] = this.env[prefname].replace(reg, '');
}
if (!this.drag_active) {
if (old !== this.env[prefname])

12
program/js/common.js

@ -481,14 +481,12 @@ function rcube_clone_object(obj)
// make a string URL safe (and compatible with PHP's rawurlencode())
function urlencode(str)
{
if (window.encodeURIComponent)
return encodeURIComponent(str).replace('*', '%2A');
return escape(str)
.replace('+', '%2B')
return encodeURIComponent(str)
.replace('*', '%2A')
.replace('/', '%2F')
.replace('@', '%40');
.replace('(', '%28')
.replace(')', '%29')
.replace('!', '%21')
.replace("'", '%27');
};

Loading…
Cancel
Save