summaryrefslogtreecommitdiff
path: root/program/js
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2007-09-05 06:53:53 +0000
committerthomascube <thomas@roundcube.net>2007-09-05 06:53:53 +0000
commit1094cda9a04bd52a06dd662bc5d648b4105cff1a (patch)
treeb0b8d11149e1b7c9c4f7326f1567fd34c80deb16 /program/js
parenta664a679ca6471c00f6d225841e1ef4d16261146 (diff)
Allso trigger events when selecting all/none list entries
Diffstat (limited to 'program/js')
-rw-r--r--program/js/list.js17
1 files changed, 13 insertions, 4 deletions
diff --git a/program/js/list.js b/program/js/list.js
index c4f02402b..6a083a2e7 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -422,7 +422,8 @@ select_all: function(filter)
if (!this.rows || !this.rows.length)
return false;
- // reset selection first
+ // reset but remember selection first
+ var select_before = this.selection.join(',');
this.clear_selection();
for (var n in this.rows)
@@ -434,7 +435,11 @@ select_all: function(filter)
}
}
- return true;
+ // trigger event if selection changed
+ if (this.selection.join(',') != select_before)
+ this.trigger_event('select');
+
+ return true;
},
@@ -443,14 +448,18 @@ select_all: function(filter)
*/
clear_selection: function()
{
- for(var n=0; n<this.selection.length; n++)
+ var num_select = this.selection.length;
+ for (var n=0; n<this.selection.length; n++)
if (this.rows[this.selection[n]])
{
this.set_classname(this.rows[this.selection[n]].obj, 'selected', false);
this.set_classname(this.rows[this.selection[n]].obj, 'unfocused', false);
}
- this.selection = new Array();
+ this.selection = new Array();
+
+ if (num_select)
+ this.trigger_event('select');
},