Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. projectsPerMonthTree = ndx.groupAll().reduce(
  2. function(v, d) {
  3. v.insert(d.interval);
  4. return v;
  5. },
  6. function(v, d) {
  7. v.remove(d.interval);
  8. return v;
  9. },
  10. function() {
  11. return lysenkoIntervalTree(null);
  12. }
  13. )
  14.  
  15. function intervalTreeGroup(tree, firstDate, lastDate) {
  16. return {
  17. all: function() {
  18. var begin = d3.time.month(firstDate), end = d3.time.month(lastDate);
  19. var i = new Date(begin);
  20. var ret = [], count;
  21. do {
  22. next = new Date(i);
  23. next.setMonth(next.getMonth()+1);
  24. count = 0;
  25. tree.queryInterval(i.getTime(), next.getTime(), function() {
  26. ++count;
  27. });
  28. ret.push({key: i, value: count});
  29. i = next;
  30. if(ret.length > 100)
  31. throw new Error('uh oh');
  32. }
  33. while(i.getTime() <= end.getTime());
  34. return ret;
  35. }
  36. };
  37. }
  38.  
  39. projectsPerMonthGroup = intervalTreeGroup(projectsPerMonthTree.value(), firstDate, lastDate),
  40.  
  41. monthChart.filterHandler(function(dim, filters) {
  42. if(filters && filters.length) {
  43. if(filters.length !== 1)
  44. throw new Error('not expecting more than one range filter');
  45. var range = filters[0];
  46. dim.filterFunction(function(i) {
  47. return !(i[1] < range[0].getTime() || i[0] > range[1].getTime());
  48. })
  49. }
  50. else dim.filterAll();
  51. return filters;
  52. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement