(function($) { // TODO this is entire thing sucks $(function() { var searchMap = (function() { var searchSplit, searchMap = {}; if ( !location.search ){ return searchMap; } searchSplit = location.search.replace(/^\?/, "").split( /&|;/ ); for( var i = 0; i < searchSplit.length; i++ ) { var kv = searchSplit[i].split(/=/); searchMap[ kv[0] ] = kv[1]; } return searchMap; })(); $.get("../", searchMap, function(data) { $.each(data, function( i, avg ) { var tablename = avg.point + " " + avg.agent + " " + avg.agent_version + " " + avg.pathname, $table = $( "table > caption:contains(" + tablename + ")").parent(); if( !$table.length ) { $table = $( "
", { "data-pathname": avg.pathname, "data-point": avg.point, "data-agent": avg.agent, "data-agent-version": avg.agent_version }); $table.append( "" + tablename + ""); $table.append( "" ); $table.append( "" ); } // TODO assume time ordering in the data set var $heading = $table.find("thead > tr > th:contains(" + avg.day + ")"); if( !$heading.length ) { $heading = $("", { text: avg.day, scope: "column" }); $table.find("thead > tr").append($heading); } var $rowHeading = $table.find("tbody > tr > th:contains(" + avg.point + ")" ), $row = $table.find( "tbody > tr" ); if( !$rowHeading.length ) { $rowHeading = $("", { text: avg.point, scope: "row" }); $row.append( $rowHeading ); } $row.append( "" + avg.avg_value + "" ); $("#tables").append($table); }); $("#tables table").visualize({ type: "bar", width: 400, height: 400 }).appendTo("#graphs"); }); }); })(jQuery);