/** * W3TC stats widgets Google Charts driver. * * @file Google Charts driver for W3TC dashboard stats widgets. * @author W3TC. * @version 1.0 * @since 2.7.0 * @package W3TC */ jQuery(document).ready(function($) { google.charts.load('current', {packages: ['corechart', 'line']}); google.charts.setOnLoadCallback(load); // Interval to refresh stats widgets every 60 seconds. setInterval(function () { load(); }, 60000); // Refresh charts on resize. jQuery(window).resize(function(){ load(); }); // Load method for stat charts. Fires on document ready, window resize, and on 60 second interval. function load() { $.getJSON( ajaxurl + '?action=w3tc_ajax&_wpnonce=' + w3tc_nonce + '&w3tc_action=ustats_get', function(data) { if(! data.period.seconds){ $('#w3tc_page_cache').addClass('w3tc_none'); $('#w3tc_object_cache').addClass('w3tc_none'); $('#w3tc_database_cache').addClass('w3tc_none'); return; } processed_data = preprocess_data(data); draw_charts(processed_data); } ); } // Preprocesses statistics data for chart use. /** * @param {array} data Statistics data. * @returns {array} Statistics data in format required for Google charts. */ function preprocess_data(data){ var processed_data = { 'page_cache':{'data':[],'color':'#6f9654'}, 'object_cache':{'data':[],'color':'#e2431e'}, 'database_cache':{'data':[],'color':'#43459d'} }; for( var i=40; i