Your IP : 216.73.216.68


Current Path : /home/jeromecohp/www/aesecure/third/tablesorter/js/widgets/
Upload File :
Current File : /home/jeromecohp/www/aesecure/third/tablesorter/js/widgets/widget-chart.js

// @file : /third/tablesorter/js/widgets/widget-chart.js
// @version : 2.0.2
// @author : AVONTURE Christophe - christophe@aesecure.com
// @copyright : (C) 2013-2015 - Christophe Avonture - all right reserved.
// @url : http://www.aesecure.com/
// @package : 2015-02-14 13:37:55
// @license : This program is a commercial software.  You CAN'T redistribute it and/or modify it.
// Source code is the property of Christophe Avonture and can't be reused, in whole or in part, in any programs.
;(function($){
'use strict';var ts=$.tablesorter,
chart_cols=[],
chart_headers=[],
chart_rows=[],
chart_data=[],
chart_categories=[],
chart_series=[],
chart_category=[],
chart_dataset=[],
chart=ts.chart={
nonDigit:/[^\d,.\-()]/g,
init: function(c, wo){
c.$table
.off(wo.chart_event)
.on(wo.chart_event, function(){
if(this.hasInitialized){
var c=this.config;
chart.getCols(c, c.widgetOptions);
chart.getData(c, c.widgetOptions);}});},
getCols: function(c, wo){
var i;
chart_cols=[];
chart_series=[];
chart_dataset=[];
for ( i=0; i < c.columns; i++ ){
if( wo.chart_useSelector && ts.hasWidget( c.table,'columnSelector' ) && !c.selector.auto ){
if(( c.selector.states[i] && $.inArray(i, wo.chart_ignoreColumns) < 0 ) ||
i===wo.chart_labelCol || i===wo.chart_sort[0][0] ){
chart_cols.push(i);}}else{
if( $.inArray(i, wo.chart_ignoreColumns) < 0 || i===wo.chart_labelCol || i===wo.chart_sort[0][0] ){
chart_cols.push(i);}}}},
getData: function(c, wo){
chart.getHeaders(c, wo);
chart.getRows(c, wo);
chart_data=[ chart_headers ];
$.each(chart_rows, function(k, row){
chart_data.push(row);});
c.chart={
data: chart_data,
categories: chart_categories,
series: chart_series,
category: chart_category,
dataset: chart_dataset
};},
getHeaders: function(c, wo){
var text;
chart_headers=[];
chart_series=[];
chart_dataset=[];
chart_headers.push( c.headerContent[wo.chart_labelCol] );
$.each(chart_cols, function(k, col){
if(col===wo.chart_labelCol){
return true;}
text=c.headerContent[col];
chart_headers.push( text );
chart_series.push( { name: text, data: [] } );
chart_dataset.push( { seriesname: text, data: [] } );});},
getRows: function(c, wo){
var cache=c.cache[0].normalized,
rows=[];
chart_rows=[];
chart_categories=[];
chart_category=[];
$.each(cache, function(indx, rowVal){
var i, txt,
$tr=rowVal[c.columns].$row,
$cells=$tr.children('th,td'),
row=[];
if(
(/v/i.test(wo.chart_incRows) && $tr.is(':visible')) ||
(/f/i.test(wo.chart_incRows) && !$tr.hasClass(wo.filter_filteredRow || 'filtered')) ||
(!/(v|f)/i.test(wo.chart_incRows))
){
for (i=0; i < c.columns; i++){
if( $.inArray(indx, wo.chart_parsed) >=0 ){
row.push( rowVal[i] );}else{
txt=$cells[i].getAttribute( c.textAttribute ) || $cells[i].textContent || $cells.eq(i).text();
row.push( $.trim( txt ) );}}
rows.push(row);}});
rows.sort(function(a, b){
if( wo.chart_sort[0][1]===1 ){
return ts.sortNatural( b[wo.chart_sort[0][0]], a[wo.chart_sort[0][0]] );}
return ts.sortNatural( a[wo.chart_sort[0][0]], b[wo.chart_sort[0][0]] );});
$.each(rows, function(i, rowVal){
var value,
objIndex=0,
row=[],
label=rowVal[wo.chart_labelCol];
row.push( '' + label );
$.each(rowVal, function(indx, cellValue){
var tempVal;
if(indx===wo.chart_labelCol){
chart_categories.push( cellValue );
chart_category.push({ 'label': cellValue });
return true;}
value=false;
if( wo.chart_useSelector && ts.hasWidget( c.table,'columnSelector' ) && !c.selector.auto ){
if( c.selector.states[indx] && $.inArray(indx, wo.chart_ignoreColumns) < 0 ){
value='' + cellValue;}}else{
if($.inArray(indx, wo.chart_ignoreColumns) < 0){
value='' + cellValue;}}
if(value !==false){
if( /s/i.test( '' + wo.chart_layout[row.length] ) ){
row.push( value );
chart_series[objIndex].data.push( value );
chart_dataset[objIndex].data.push( value );}else{
tempVal=ts.formatFloat( value.replace( chart.nonDigit,'' ), c.table );
tempVal=isNaN(tempVal)?value:tempVal;
row.push( tempVal );
chart_series[objIndex].data.push( tempVal );
chart_dataset[objIndex].data.push( { value:tempVal } );}
objIndex++;}});
chart_rows.push(row);});},
remove: function(c, wo){
c.$table.off(wo.chart_event);}};
ts.addWidget({
id: 'chart',
options: {
chart_incRows: 'filtered',
chart_useSelector: false,
chart_ignoreColumns: [],
chart_parsed: [],
chart_layout: {
0: 'string'
},
chart_labelCol: 0,
chart_sort: [[0,0]],
chart_event: 'chartData'
},
init: function(table, thisWidget, c, wo){
chart.init(c, wo);},
remove: function(table, c, wo){
chart.remove(c, wo);}});})(jQuery);