Merge branch 'master' of github.com:danvk/dygraphs
authorDan Vanderkam <danvk@google.com>
Fri, 20 Jan 2012 20:49:05 +0000 (15:49 -0500)
committerDan Vanderkam <danvk@google.com>
Fri, 20 Jan 2012 20:49:05 +0000 (15:49 -0500)
1  2 
dygraph.js

diff --combined dygraph.js
@@@ -2090,7 -2090,7 +2090,7 @@@ Dygraph.prototype.renderGraph_ = functi
  Dygraph.prototype.computeYAxes_ = function() {
    // Preserve valueWindow settings if they exist, and if the user hasn't
    // specified a new valueRange.
-   var i, valueWindows, seriesName, axis, index;
+   var i, valueWindows, seriesName, axis, index, opts, v;
    if (this.axes_ !== undefined && this.user_attrs_.hasOwnProperty("valueRange") === false) {
      valueWindows = [];
      for (index = 0; index < this.axes_.length; index++) {
    // Copy global axis options over to the first axis.
    for (i = 0; i < axisOptions.length; i++) {
      var k = axisOptions[i];
-     var v = this.attr_(k);
+     v = this.attr_(k);
      if (v) this.axes_[0][k] = v;
    }
  
      }
      if (typeof(axis) == 'object') {
        // Add a new axis, making a copy of its per-axis options.
-       var opts = {};
+       opts = {};
        Dygraph.update(opts, this.axes_[0]);
        Dygraph.update(opts, { valueRange: null });  // shouldn't inherit this.
        var yAxisId = this.axes_.length;
        this.axes_[index].valueWindow = valueWindows[index];
      }
    }
+   // New axes options
+   for (axis = 0; axis < this.axes_.length; axis++) {
+     if (axis === 0) {
+       opts = this.optionsViewForAxis_('y' + (axis ? '2' : ''));
+       v = opts("valueRange");
+       if (v) this.axes_[axis].valueRange = v;
+     } else {  // To keep old behavior
+       var axes = this.user_attrs_.axes;
+       if (axes && axes.y2) {
+         v = axes.y2.valueRange;
+         if (v) this.axes_[axis].valueRange = v;
+       }
+     }
+   }
  };
  
  /**
@@@ -2774,19 -2790,6 +2790,19 @@@ Dygraph.prototype.parseArray_ = functio
   * @private
   */
  Dygraph.prototype.parseDataTable_ = function(data) {
 +  var shortTextForAnnotationNum = function(num) {
 +    // converts [0-9]+ [A-Z][a-z]*
 +    // example: 0=A, 1=B, 25=Z, 26=Aa, 27=Ab
 +    // and continues like.. Ba Bb .. Za .. Zz..Aaa...Zzz Aaaa Zzzz
 +    var shortText = String.fromCharCode(65 /* A */ + num % 26);
 +    num = Math.floor(num / 26);
 +    while ( num > 0 ) {
 +      shortText = String.fromCharCode(65 /* A */ + (num - 1) % 26 ) + shortText.toLowerCase();
 +      num = Math.floor((num - 1) / 26);
 +    }
 +    return shortText;
 +  }
 +
    var cols = data.getNumberOfColumns();
    var rows = data.getNumberOfRows();
  
            var ann = {};
            ann.series = data.getColumnLabel(col);
            ann.xval = row[0];
 -          ann.shortText = String.fromCharCode(65 /* A */ + annotations.length);
 +          ann.shortText = shortTextForAnnotationNum(annotations.length);
            ann.text = '';
            for (var k = 0; k < annotationCols[col].length; k++) {
              if (k) ann.text += "\n";