mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-10 19:43:16 +00:00
87 lines
2.2 KiB
JavaScript
87 lines
2.2 KiB
JavaScript
/*
|
|
* jQuery gvChart plugin
|
|
* This plugin was created to simplify things when using Google Visualisation Charts.
|
|
* It still needs to be used with google script import tag, however now you can
|
|
* crate chart from your table.
|
|
* All examples you will find on http://www.ivellios.toron.pl/technikalia/demos/gvChart/
|
|
* @name jquery.gvChart-1.0.1.js
|
|
* @author Janusz Kamieński - http://www.ivellios.toron.pl/technikalia
|
|
* @version 1.0.1
|
|
* @date December 04, 2010
|
|
* @category jQuery plugin google charts
|
|
* @copyright (c) 2010 Janusz Kamieński (www.ivellios.toron.pl)
|
|
* @license CC Attribution Works 3.0 Poland - http://creativecommons.org/licenses/by/3.0/pl/deed.en_US
|
|
* @example Visit http://www.ivellios.toron.pl/technikalia/demos/gvChart/ for more informations about this jQuery plugin
|
|
*/
|
|
(function (jQuery){
|
|
jQuery.fn.gvChart = function(settings){
|
|
|
|
defaults={
|
|
hideTable: true,
|
|
chartType: 'AreaChart',
|
|
chartDivID: 'gvChartDiv',
|
|
gvSettings: null
|
|
};
|
|
|
|
var el = document.createElement('div');
|
|
jQuery(el).insertBefore(this);
|
|
gvChartCount++;
|
|
gvChartID = defaults.chartDivID+gvChartCount;
|
|
jQuery(el).attr('id',gvChartID);
|
|
jQuery(el).addClass('gvChart');
|
|
|
|
if(settings){
|
|
jQuery.extend(defaults,settings);
|
|
}
|
|
|
|
if(defaults.hideTable)
|
|
$(this).hide();
|
|
|
|
var data = new google.visualization.DataTable();
|
|
|
|
// add X label
|
|
data.addColumn('string','X labels');
|
|
|
|
var a = new Array();
|
|
|
|
var headers = $(this).find('thead').find('th');
|
|
var rows = $(this).find('tbody').find('tr');
|
|
|
|
rows.each(function(index){
|
|
data.addColumn('number',$(this).find('th').text());
|
|
});
|
|
|
|
data.addRows(headers.length-1);
|
|
|
|
headers.each(function(index){
|
|
if(index){
|
|
data.setCell(index-1, 0, $(this).text());
|
|
}
|
|
});
|
|
|
|
rows.each(function(index){
|
|
$(this).find('td').each(function(index2){
|
|
data.setCell(index2, index+1, parseFloat($(this).text()));
|
|
});
|
|
});
|
|
|
|
chartSettings = {
|
|
title : $(this).find('caption').text()
|
|
};
|
|
|
|
if(defaults.gvSettings){
|
|
jQuery.extend(chartSettings,defaults.gvSettings);
|
|
}
|
|
|
|
eval("var chart = new google.visualization."+defaults.chartType+"(document.getElementById('"+gvChartID+"'))");
|
|
chart.draw(data, chartSettings);
|
|
}
|
|
})(jQuery);
|
|
|
|
|
|
function gvChartInit(){
|
|
gvChartCount = 0;
|
|
google.load('visualization', '1', {packages: ['corechart']});
|
|
}
|
|
|