Sha256: 07dc5841214ae4e850cd65087e6292fe3b5f9a49aa975d128e4d9b5fffd6de01

Contents?: true

Size: 1.71 KB

Versions: 25

Compression:

Stored size: 1.71 KB

Contents

function Graph(selector, names, palette_offset) {
  
  var graph_element  = document.querySelector(selector + ' .graph');
  var legend_element = document.querySelector(selector + ' .legend');
  
  function addOne(ary, thing) {
    ary.push({ x: Date.now(), y: thing });
    if (ary.length > 100) {
      ary.shift();
    }
  }

  function add(data, params) {
    for(var i=0,total=0;i<params.length;total+=params[i++]);
    if (total > 0) {
      for (i = 0; i < params.length; i++) {
        addOne(data[i], params[i]/total);
      }
    }
  }
  
  var data = [];
  var init = [];
  for (var i = 0; i < names.length; i++) {
    data.push([]);
    init.push(1);
  }
  
  // add(data, init);

  var palette = new Rickshaw.Color.Palette( { scheme: 'spectrum2000' } );
  for (i = 0; i < palette_offset; i++) {
    palette.color();
  }
  
  var series = [];
  for (i = 0; i < names.length; i++) {
    series.push({
      color: palette.color(),
      data: data[i],
      name: names[i]
    });
  }

  var graph;
  
  var lazyInitializeGraph = function() {
    if (!graph) {
      graph = new Rickshaw.Graph( {
        element: graph_element,
        width: 900,
        height: 150,
        renderer: 'stack',
        offset: 'expand',
        series: series
      });

      var legend = new Rickshaw.Graph.Legend( {
      	graph: graph,
      	element: legend_element
      });

      new Rickshaw.Graph.Behavior.Series.Highlight( {
      	graph: graph,
      	legend: legend
      });

      // new Rickshaw.Graph.HoverDetail( {
      //  graph: graph
      // });
      
      graph.render();
    }
  };
  
  var update = function(new_data) {
    add(data, new_data);
    lazyInitializeGraph();
    graph.update();
  };
  this.update = update;
  
};

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
picky-statistics-4.5.0 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.4.2 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.4.1 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.4.0 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.3.2 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.3.1 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.3.0 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.2.4 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.2.3 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.2.2 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.2.1 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.2.0 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.1.0 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.0.9 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.0.8 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.0.7 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.0.6 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.0.5 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.0.4 lib/picky-statistics/application/javascripts/graph.js
picky-statistics-4.0.3 lib/picky-statistics/application/javascripts/graph.js