summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-04-05 13:36:38 +0200
committerAleksander Machniak <alec@alec.pl>2013-04-05 15:01:39 +0200
commit84243db8c7bcb0b6cf981a46b409b48c4005842e (patch)
treead79113bc91b3620b70c30090e3938437626f44d
parentd2d8d498c67e7193dcdcebe7d806753ec02843fd (diff)
Fix selecting collapsed rows on select-all (#1489036)
Conflicts: CHANGELOG
-rw-r--r--CHANGELOG1
-rw-r--r--program/js/list.js10
2 files changed, 6 insertions, 5 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 47e3c5973..c7be81dc7 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,7 @@ CHANGELOG Roundcube Webmail
===========================
- Avoid race-conditions with concurrent attachment uploads (#1488422)
+- Fix selecting collapsed rows on select-all (#1489036)
- Fix possible header duplicates when using additional headers (#1489033)
- Fix session issues with use_https=true (#1488986)
- Fix blockquote width in sent mail (#1489031)
diff --git a/program/js/list.js b/program/js/list.js
index 6b8bb39c7..ac3a3bf5d 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -824,7 +824,7 @@ select_all: function(filter)
for (n in this.rows) {
if (!filter || this.rows[n][filter] == true) {
this.last_selected = n;
- this.highlight_row(n, true);
+ this.highlight_row(n, true, true);
}
else {
$(this.rows[n].obj).removeClass('selected').removeClass('unfocused');
@@ -919,7 +919,7 @@ get_single_selection: function()
/**
* Highlight/unhighlight a row
*/
-highlight_row: function(id, multiple)
+highlight_row: function(id, multiple, norecur)
{
if (!this.rows[id])
return;
@@ -935,7 +935,7 @@ highlight_row: function(id, multiple)
if (!this.in_selection(id)) { // select row
this.selection.push(id);
$(this.rows[id].obj).addClass('selected');
- if (!this.rows[id].expanded)
+ if (!norecur && !this.rows[id].expanded)
this.highlight_children(id, true);
}
else { // unselect row
@@ -945,7 +945,7 @@ highlight_row: function(id, multiple)
this.selection = a_pre.concat(a_post);
$(this.rows[id].obj).removeClass('selected').removeClass('unfocused');
- if (!this.rows[id].expanded)
+ if (!norecur && !this.rows[id].expanded)
this.highlight_children(id, false);
}
}
@@ -963,7 +963,7 @@ highlight_children: function(id, status)
for (i=0; i<len; i++) {
selected = this.in_selection(children[i]);
if ((status && !selected) || (!status && selected))
- this.highlight_row(children[i], true);
+ this.highlight_row(children[i], true, true);
}
},