var CurrentStats = ['msgs', 'today']; function refreshStats() { $('a.statname, a.timescale').addClass('disabled'); $('#statschart').empty().append(''); var onSuccess = function(json) { var dataString = "Date,Count\n"; $.each(json, function(i, v) { dataString += v.created_on + "," + v.count + "\n"; }); $('#statschart').empty(); new Dygraph($('#statschart')[0], dataString, { showRoller: false} ); $('a.statname, a.timescale').removeClass('disabled'); }; var onError = function(resp, textStatus, errorThrown) { $('a.statname, a.timescale').removeClass('disabled'); }; $.ajax({ type: 'GET', timeout: 5000, url: '/stats', data: { 'stat': CurrentStats[0], 'ts': CurrentStats[1] }, cache: false, dataType: 'json', success: onSuccess, error: onError }); } function makeStatsWindow() { var statBox= $('
'); var choices = ['msgs', 'new users']; $(choices).map(function(i, c) { return link = $('') .text(c) .attr('href', '#') .addClass('statname') .addClass(i == 0 ? 'active' : 'inactive') .click(function() { if ($(this).hasClass('disabled') || CurrentStats[0] == c) { return }; $('.statname').removeClass('active'); $(this).addClass('active'); CurrentStats[0] = c; refreshStats(); }); }).appendTo(statBox); $('
').appendTo(statBox); var timescales = ['today', 'all time']; $(timescales).map(function(i, c) { return link = $('') .text(c) .attr('href', '#') .addClass('timescale') .addClass(i == 0 ? 'active' : 'inactive') .click(function() { if ($(this).hasClass('disabled') || CurrentStats[1] == c) { return }; $('.timescale').removeClass('active'); $(this).addClass('active'); CurrentStats[1] = c; refreshStats(); }); })//.appendTo(statBox); return statBox; } function initStats() { makeStatsWindow().appendTo('body'); refreshStats(); }