diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-12-11 09:31:19 +0100 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-12-11 09:31:19 +0100 |
commit | 302eb266de6884dd6413f674cbc9af177dfcdc38 (patch) | |
tree | d636c4766abb1892ca54e68e9bd8df145b3d1bc6 /program | |
parent | 7eecf873da8d2f28e20dc8fd0e949e6abc5762b4 (diff) |
Fix regression where only first new folder was placed in correct place on the list (#1489472)
Diffstat (limited to 'program')
-rw-r--r-- | program/js/app.js | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/program/js/app.js b/program/js/app.js index bad8a2f9c..cbe61ab4a 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -5744,19 +5744,23 @@ function rcube_webmail() .prop({checked: subscribed ? true : false, disabled: is_protected ? true : false}); // add to folder/row-ID map - this.env.subscriptionrows[id] = [name, display_name, 0]; + this.env.subscriptionrows[id] = [name, display_name, false]; // sort folders (to find a place where to insert the row) // replace delimiter with \0 character to fix sorting // issue where 'Abc Abc' would be placed before 'Abc/def' var replace_from = RegExp(RegExp.escape(this.env.delimiter), 'g'), replace_to = String.fromCharCode(0); + $.each(this.env.subscriptionrows, function(k,v) { - var n = v[0]; - n = n.replace(replace_from, replace_to); - v.push(n); + if (v.length < 4) { + var n = v[0]; + n = n.replace(replace_from, replace_to); + v.push(n); + } folders.push(v); }); + folders.sort(function(a, b) { var len = a.length - 1; n1 = a[len], n2 = b[len]; return n1 < n2 ? -1 : 1; |