killbill-memoizeit

Details

diff --git a/osgi-bundles/bundles/analytics/src/main/resources/static/javascript/killbill.js b/osgi-bundles/bundles/analytics/src/main/resources/static/javascript/killbill.js
index bd11a98..9ab96c3 100644
--- a/osgi-bundles/bundles/analytics/src/main/resources/static/javascript/killbill.js
+++ b/osgi-bundles/bundles/analytics/src/main/resources/static/javascript/killbill.js
@@ -154,45 +154,6 @@
 
 
       /**
-      * Create the 'y' scale for the stack graph
-      *
-      * Extract min/max for each x value across all layers
-      *
-      */
-      this.getYScaleValue = function(dataLayers, h) {
-
-          var tmp = [];
-          for (var i = 0; i < dataLayers.length; i++) {
-              tmp.push(dataLayers[i].values)
-          }
-
-          var sumValues = [];
-          for (var i = 0; i < tmp[0].length; i++) {
-              var max = 0;
-              for (var j = 0; j < tmp.length; j++) {
-                    max = max + tmp[j][i].y;
-              }
-              sumValues.push(max);
-          }
-          var minValue = 0;
-          var maxValue = 0;
-          for (var i = 0; i < sumValues.length; i++) {
-              if (sumValues[i] < minValue) {
-                  minValue = sumValues[i];
-              }
-              if (sumValues[i] > maxValue) {
-                  maxValue = sumValues[i];
-              }
-          }
-          if (minValue > 0) {
-              minValue = 0;
-          }
-          return d3.scale.linear().domain([minValue,  maxValue]).range([h, 0]);
-      }
-
-
-
-      /**
       * Add on the path the name of the line -- not used anymore as we are using external labels
       */
       this.addPathLabel = function(graph, lineId, positionPercent) {
@@ -321,6 +282,44 @@
      }
 
      /**
+     * Create the 'y' scale for the stack graph
+     *
+     * Extract min/max for each x value across all layers
+     *
+     */
+     this.getLayerScaleValue = function() {
+
+         var tmp = [];
+         for (var i = 0; i < this.data.length; i++) {
+             tmp.push(this.data[i].values)
+         }
+
+         var sumValues = [];
+         for (var i = 0; i < tmp[0].length; i++) {
+             var max = 0;
+             for (var j = 0; j < tmp.length; j++) {
+                   max = max + tmp[j][i].y;
+             }
+             sumValues.push(max);
+         }
+         var minValue = 0;
+         var maxValue = 0;
+         for (var i = 0; i < sumValues.length; i++) {
+             if (sumValues[i] < minValue) {
+                 minValue = sumValues[i];
+             }
+             if (sumValues[i] > maxValue) {
+                 maxValue = sumValues[i];
+             }
+         }
+         if (minValue > 0) {
+             minValue = 0;
+         }
+         return d3.scale.linear().domain([minValue,  maxValue]).range([heigth, 0]);
+     }
+
+
+     /**
      * All all layers on the graph
      */
      this.addLayers = function(stack, area, dataLayers) {
@@ -350,7 +349,7 @@
      this.drawStackLayers = function() {
 
         var scaleX = this.getScaleDate();
-        var scaleY = this.getYScaleValue(this.data, this.heigth);
+        var scaleY = this.getLayerScaleValue();
 
           var stack = d3.layout.stack()
               .offset("zero")
@@ -393,7 +392,14 @@
      /**
      * Create the 'y' scale for line graphs (non stacked)
      */
-     this.getScaleValue = function(dataYs, h) {
+     this.getScaleValue = function() {
+
+         var dataYs = [];
+         for (var k=0; k<this.data.length; k++) {
+             var dataY = this.extractKeyOrValueFromDataLayer(this.data[k], 'y');
+             dataYs.push(dataY);
+         }
+
           var minValue = 0;
           var maxValue = 0;
           for (var i=0; i<dataYs.length; i++) {
@@ -409,7 +415,7 @@
           if (minValue > 0) {
               minValue = 0;
           }
-          return d3.scale.linear().domain([minValue, maxValue]).range([h, 0]);
+          return d3.scale.linear().domain([minValue, maxValue]).range([this.heigth, 0]);
       }
 
       /**
@@ -444,7 +450,7 @@
       this.drawLines = function() {
 
           var scaleX = this.getScaleDate();
-          var scaleY = this.getYScaleValue(this.data, this.heigth);
+          var scaleY = this.getScaleValue();
 
           for (var k=0; k<this.data.length; k++) {
               var dataY = this.extractKeyOrValueFromDataLayer(this.data[k], 'y');