summaryrefslogtreecommitdiffstats
path: root/slick.dataview.js
diff options
context:
space:
mode:
authorMichael Leibman <michael.leibman@gmail.com>2013-02-27 17:08:04 -0800
committerMichael Leibman <michael.leibman@gmail.com>2013-02-27 17:08:04 -0800
commit4c48e038c6b50c1fda9bd11bc0a13ff6f3f4749d (patch)
tree901bb7e4f7167918b3e5711db50f37b026f7b9e2 /slick.dataview.js
parent90964ce5541bc2f381b6c60893f60029f24f907b (diff)
downloadSlickGrid-4c48e038c6b50c1fda9bd11bc0a13ff6f3f4749d.zip
SlickGrid-4c48e038c6b50c1fda9bd11bc0a13ff6f3f4749d.tar.gz
SlickGrid-4c48e038c6b50c1fda9bd11bc0a13ff6f3f4749d.tar.bz2
Optimize up DataView aggregation.
Diffstat (limited to 'slick.dataview.js')
-rw-r--r--slick.dataview.js10
1 files changed, 6 insertions, 4 deletions
diff --git a/slick.dataview.js b/slick.dataview.js
index ffdba82..85f2339 100644
--- a/slick.dataview.js
+++ b/slick.dataview.js
@@ -508,21 +508,23 @@
group.totals = totals;
}
- function calculateTotals(groups) {
+ function calculateTotals(groups, level) {
+ level = level || 0;
+ var gi = groupingInfos[level];
var idx = groups.length, g;
while (idx--) {
g = groups[idx];
- if (g.collapsed && !groupingInfos[g.level].aggregateCollapsed) {
+ if (g.collapsed && !gi.aggregateCollapsed) {
continue;
}
// Do a depth-first aggregation so that parent setGrouping aggregators can access subgroup totals.
if (g.groups) {
- calculateTotals(g.groups);
+ calculateTotals(g.groups, level + 1);
}
- if (groupingInfos[g.level].aggregators.length) {
+ if (gi.aggregators.length) {
calculateGroupTotals(g);
}
}