EnVisageOnline/Main/Source/EnVisage/Scripts/amcharts/custom.js

74 lines
2.1 KiB
JavaScript

function updateChart(chartDivId, data, chartColors) {
var chart = findChart(chartDivId);
chart.dataProvider = data;
if (chartColors) {
chart.colors = chartColors;
}
chart.validateData();
checkEmptyData(chart);
};
function findChart(id) {
var matchedCharts = AmCharts.charts.filter(function (chart, index) {
return chart.div && chart.div.id === id;
})
if (matchedCharts.length) {
return matchedCharts[0];
}
};
function invalidateChartSize(chartId) {
var chart = findChart(chartId);
chart.invalidateSize();
};
function checkEmptyData(chart) {
chart.clearLabels();
if (chart.dataProvider === undefined || 0 == chart.dataProvider.length) {
if (chart.type != "pie") {
// set min/max on the value axis
//chart.valueAxes[0].minimum = 0;
//chart.valueAxes[0].maximum = 100;
// add dummy data point
var dataPoint = {
dummyValue: 0
};
dataPoint[chart.categoryField] = '';
chart.dataProvider = [dataPoint];
// add label
chart.addLabel("50%", '50%', 'The chart contains no data', 'center', 12, 0, 0.5);
// set opacity of the chart div
//chart.chartDiv.style.opacity = 0.5;
// redraw it
//chart.validateNow();
} else {
var dp = {};
dp[chart.titleField] = "";
dp[chart.valueField] = 1;
chart.dataProvider.push(dp)
var dp = {};
dp[chart.titleField] = "";
dp[chart.valueField] = 1;
chart.dataProvider.push(dp)
var dp = {};
dp[chart.titleField] = "";
dp[chart.valueField] = 1;
chart.dataProvider.push(dp)
// disable slice labels
//chart.labelsEnabled = false;
// add label to let users know the chart is empty
chart.addLabel("50%", "60%", "The chart contains no data", "center", 12, 0, 0.1);
// dim the whole chart
//chart.alpha = 0.3;
chart.validateNow();
}
}
};