Add support for dygraph and dygraph+error charts.
diff --git a/app.yaml b/app.yaml
index 0063637..d28bc3c 100644
--- a/app.yaml
+++ b/app.yaml
@@ -14,10 +14,10 @@
- url: /help
static_files: help.html
upload: help.html
-- url: /render.js
- static_files: render.js
- upload: render.js
-- url: /(.*)\.json
+- url: /([^/]*).js
+ static_files: \1.js
+ upload: (.*).js
+- url: /([^/]*)\.json
static_files: \1.json
mime_type: text/plain
upload: (.*\.json)
diff --git a/render.html b/render.html
index b318326..978739c 100644
--- a/render.html
+++ b/render.html
@@ -12,7 +12,8 @@
}
</style>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
- <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+ <script src="dygraph-combined.js"></script>
+ <script src="https://www.google.com/jsapi"></script>
<script>
google.load('visualization', '1.0', {
packages: ['table', 'corechart', 'treemap', 'annotatedtimeline']
diff --git a/render.js b/render.js
index 0f55014..d585072 100644
--- a/render.js
+++ b/render.js
@@ -572,20 +572,18 @@
}
}
var chartops = args.get('chart');
+ var t;
if (chartops) {
grid = fillNullsWithZero(grid);
- var datatable = dataToGvizTable(grid);
var el = document.getElementById('vizchart');
$(el).height(window.innerHeight).width(window.innerWidth);
var options = {};
if (args.get('title')) {
options.title = args.get('title');
}
- var t;
if (chartops == 'stackedarea' || chartops == 'stacked') {
t = new google.visualization.AreaChart(el);
options.isStacked = true;
- t.draw(datatable, options);
} else if (chartops == 'column') {
t = new google.visualization.ColumnChart(el);
} else if (chartops == 'bar') {
@@ -596,17 +594,22 @@
t = new google.visualization.CandlestickChart(el);
} else if (chartops == 'timeline') {
t = new google.visualization.AnnotatedTimeLine(el);
+ } else if (chartops == 'dygraph' || chartops == 'dygraph+errors') {
+ t = new Dygraph.GVizChart(el);
+ options.showRoller = true;
+ if (chartops == 'dygraph+errors') {
+ options.errorBars = true;
+ }
} else {
// default to a line chart if unrecognized type
t = new google.visualization.LineChart(el);
}
- t.draw(datatable, options);
} else {
- var datatable = dataToGvizTable(grid);
var el = document.getElementById('viztable');
- var t = new google.visualization.Table(el);
- t.draw(datatable, {});
+ t = new google.visualization.Table(el);
}
+ var datatable = dataToGvizTable(grid);
+ t.draw(datatable, options);
}