| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- jQuery(function( $ ) {
- function showTooltip( x, y, contents ) {
- $( '<div class="chart-tooltip">' + contents + '</div>' ).css( {
- top: y - 16,
- left: x + 20
- }).appendTo( 'body' ).fadeIn( 200 );
- }
- var prev_data_index = null;
- var prev_series_index = null;
- $( '.chart-placeholder' ).bind( 'plothover', function ( event, pos, item ) {
- if ( item ) {
- if ( prev_data_index !== item.dataIndex || prev_series_index !== item.seriesIndex ) {
- prev_data_index = item.dataIndex;
- prev_series_index = item.seriesIndex;
- $( '.chart-tooltip' ).remove();
- if ( item.series.points.show || item.series.enable_tooltip ) {
- var y = item.series.data[item.dataIndex][1],
- tooltip_content = '';
- if ( item.series.prepend_label ) {
- tooltip_content = tooltip_content + item.series.label + ': ';
- }
- if ( item.series.prepend_tooltip ) {
- tooltip_content = tooltip_content + item.series.prepend_tooltip;
- }
- tooltip_content = tooltip_content + y;
- if ( item.series.append_tooltip ) {
- tooltip_content = tooltip_content + item.series.append_tooltip;
- }
- if ( item.series.pie.show ) {
- showTooltip( pos.pageX, pos.pageY, tooltip_content );
- } else {
- showTooltip( item.pageX, item.pageY, tooltip_content );
- }
- }
- }
- } else {
- $( '.chart-tooltip' ).remove();
- prev_data_index = null;
- }
- });
- $( '.wc_sparkline.bars' ).each( function() {
- var chart_data = $( this ).data( 'sparkline' );
- var options = {
- grid: {
- show: false
- }
- };
- // main series
- var series = [{
- data: chart_data,
- color: $( this ).data( 'color' ),
- bars: {
- fillColor: $( this ).data( 'color' ),
- fill: true,
- show: true,
- lineWidth: 1,
- barWidth: $( this ).data( 'barwidth' ),
- align: 'center'
- },
- shadowSize: 0
- }];
- // draw the sparkline
- $.plot( $( this ), series, options );
- });
- $( '.wc_sparkline.lines' ).each( function() {
- var chart_data = $( this ).data( 'sparkline' );
- var options = {
- grid: {
- show: false
- }
- };
- // main series
- var series = [{
- data: chart_data,
- color: $( this ).data( 'color' ),
- lines: {
- fill: false,
- show: true,
- lineWidth: 1,
- align: 'center'
- },
- shadowSize: 0
- }];
- // draw the sparkline
- $.plot( $( this ), series, options );
- });
- var dates = $( '.range_datepicker' ).datepicker({
- changeMonth: true,
- changeYear: true,
- defaultDate: '',
- dateFormat: 'yy-mm-dd',
- numberOfMonths: 1,
- minDate: '-20Y',
- maxDate: '+1D',
- showButtonPanel: true,
- showOn: 'focus',
- buttonImageOnly: true,
- onSelect: function() {
- var option = $( this ).is( '.from' ) ? 'minDate' : 'maxDate',
- date = $( this ).datepicker( 'getDate' );
- dates.not( this ).datepicker( 'option', option, date );
- }
- });
- var a = document.createElement( 'a' );
- if ( typeof a.download === 'undefined' ) {
- $( '.export_csv' ).hide();
- }
- // Export
- $( '.export_csv' ).click( function() {
- var exclude_series = $( this ).data( 'exclude_series' ) || '';
- exclude_series = exclude_series.toString();
- exclude_series = exclude_series.split( ',' );
- var xaxes_label = $( this ).data( 'xaxes' );
- var groupby = $( this ) .data( 'groupby' );
- var index_type = $( this ).data( 'index_type' );
- var export_format = $( this ).data( 'export' );
- var csv_data = 'data:text/csv;charset=utf-8,\uFEFF';
- var s, series_data, d;
- if ( 'table' === export_format ) {
- $( this ).offsetParent().find( 'thead tr,tbody tr' ).each( function() {
- $( this ).find( 'th, td' ).each( function() {
- var value = $( this ).text();
- value = value.replace( '[?]', '' ).replace( '#', '' );
- csv_data += '"' + value + '"' + ',';
- });
- csv_data = csv_data.substring( 0, csv_data.length - 1 );
- csv_data += '\n';
- });
- $( this ).offsetParent().find( 'tfoot tr' ).each( function() {
- $( this ).find( 'th, td' ).each( function() {
- var value = $( this ).text();
- value = value.replace( '[?]', '' ).replace( '#', '' );
- csv_data += '"' + value + '"' + ',';
- if ( $( this ).attr( 'colspan' ) > 0 ) {
- for ( i = 1; i < $(this).attr('colspan'); i++ ) {
- csv_data += '"",';
- }
- }
- });
- csv_data = csv_data.substring( 0, csv_data.length - 1 );
- csv_data += '\n';
- });
- } else {
- if ( ! window.main_chart ) {
- return false;
- }
- var the_series = window.main_chart.getData();
- var series = [];
- csv_data += '"' + xaxes_label + '",';
- $.each( the_series, function( index, value ) {
- if ( ! exclude_series || $.inArray( index.toString(), exclude_series ) === -1 ) {
- series.push( value );
- }
- });
- // CSV Headers
- for ( s = 0; s < series.length; ++s ) {
- csv_data += '"' + series[s].label + '",';
- }
- csv_data = csv_data.substring( 0, csv_data.length - 1 );
- csv_data += '\n';
- // Get x axis values
- var xaxis = {};
- for ( s = 0; s < series.length; ++s ) {
- series_data = series[s].data;
- for ( d = 0; d < series_data.length; ++d ) {
- xaxis[series_data[d][0]] = [];
- // Zero values to start
- for ( var i = 0; i < series.length; ++i ) {
- xaxis[series_data[d][0]].push(0);
- }
- }
- }
- // Add chart data
- for ( s = 0; s < series.length; ++s ) {
- series_data = series[s].data;
- for ( d = 0; d < series_data.length; ++d ) {
- xaxis[series_data[d][0]][s] = series_data[d][1];
- }
- }
- // Loop data and output to csv string
- $.each( xaxis, function( index, value ) {
- var date = new Date( parseInt( index, 10 ) );
- if ( 'none' === index_type ) {
- csv_data += '"' + index + '",';
- } else {
- if ( groupby === 'day' ) {
- csv_data += '"' + date.getUTCFullYear() + '-' + parseInt( date.getUTCMonth() + 1, 10 ) + '-' + date.getUTCDate() + '",';
- } else {
- csv_data += '"' + date.getUTCFullYear() + '-' + parseInt( date.getUTCMonth() + 1, 10 ) + '",';
- }
- }
- for ( var d = 0; d < value.length; ++d ) {
- var val = value[d];
- if ( Math.round( val ) !== val ) {
- val = parseFloat( val );
- val = val.toFixed( 2 );
- }
- csv_data += '"' + val + '",';
- }
- csv_data = csv_data.substring( 0, csv_data.length - 1 );
- csv_data += '\n';
- } );
- }
- // Set data as href and return
- $( this ).attr( 'href', encodeURI( csv_data ) );
- return true;
- });
- });
|