app/assets/javascripts/rorschart.js in rorschart-0.7.2 vs app/assets/javascripts/rorschart.js in rorschart-0.8.0
- old
+ new
@@ -2,11 +2,11 @@
/*global google, $*/
(function () {
'use strict';
- var rorschart, resize;
+ var Rorschart, resize, refresh;
if (window.hasOwnProperty('google')) {
google.load('visualization', '1.0', {'packages': ['corechart', 'table']});
} else {
throw new Error("Please include Google Charts first.");
@@ -54,11 +54,11 @@
}
}
return dataTable;
}
- function drawChart(ChartClass, element, dataSource, options) {
+ function drawChart(chart, chartClass, element, dataSource, options) {
var dataTable, type;
type = Object.prototype.toString.call(dataSource);
if (type === '[object String]') {
@@ -76,14 +76,14 @@
} catch (err) {
chartError(element, err.message);
throw err;
}
- var chart = new ChartClass(element);
+ chart.chart = new chartClass(element);
resize(function () {
- chart.draw(dataTable, options);
+ chart.chart.draw(dataTable, options);
});
}
function retrieveRemoteData(element, url, callback) {
$.ajax({
@@ -104,19 +104,48 @@
chartError(element, message + " "+ jqXHR.responseText);
}
});
}
- rorschart = function (chartClass, element, dataSource, options) {
- element = getElement(element);
- if (typeof dataSource === "string") {
- retrieveRemoteData(element, dataSource, function (data) {
- google.setOnLoadCallback(drawChart(chartClass, element, data, options));
+ refresh = function (chart, klass_name, hideRefreshMessage) {
+
+ if (!hideRefreshMessage) {
+ setText(chart.element, 'Loading Chart data...');
+ }
+
+ chart.chartClass = klass_name || chart.chartClass
+
+ if (typeof chart.dataSource === "string") {
+ retrieveRemoteData(chart.element, chart.dataSource, function (data) {
+ google.setOnLoadCallback(drawChart(chart, chart.chartClass, chart.element, data, chart.options));
});
} else {
- google.setOnLoadCallback(drawChart(chartClass, element, dataSource, options));
+ google.setOnLoadCallback(drawChart(chart, chart.chartClass, chart.element, chart.dataSource, chart.options));
}
+ }
+
+ function setElement(chart, chartClass, element, dataSource, options) {
+
+ if (typeof element === "string") {
+ element = document.getElementById(element);
+ }
+
+ chart.chartClass = chartClass
+ chart.element = element;
+ chart.options = options || {};
+ chart.dataSource = dataSource;
+ Rorschart.charts[element.id] = chart;
+ refresh(chart);
+ }
+
+ Rorschart = {
+ GoogleChart: function (chartClass, element, dataSource, options) {
+ setElement(this, chartClass, element, dataSource, options);
+ },
+ charts: {}
};
- window.Rorschart = rorschart;
+
+ window.Rorschart = Rorschart;
+ window.Rorschart.refresh = refresh;
}());