| Index: master/public_html/bug_graphs.html
|
| diff --git a/master/public_html/bug_graphs.html b/master/public_html/bug_graphs.html
|
| deleted file mode 100644
|
| index 7da18359a655c47097ba7ff0fc9931662de59177..0000000000000000000000000000000000000000
|
| --- a/master/public_html/bug_graphs.html
|
| +++ /dev/null
|
| @@ -1,151 +0,0 @@
|
| -<html>
|
| - <head>
|
| - <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
|
| - <script type="text/javascript" src="https://www.google.com/jsapi"></script>
|
| - <script type="text/javascript">
|
| - var url = "https://www.googleapis.com/projecthosting/v2/projects/skia/issues";
|
| -
|
| - var ph_params = {
|
| - sort: 'items(published)',
|
| - fields: 'items(published,closed),totalResults',
|
| - maxResults: 9999,
|
| - key: 'AIzaSyDq0bq2zkLR1WfmmGihHU6Vf6nG4msE-io',
|
| - startIndex: 0
|
| - };
|
| -
|
| - google.load('visualization', '1', {packages:['corechart']});
|
| - google.setOnLoadCallback( drawChart );
|
| -
|
| - all_items = [];
|
| - var totalResults;
|
| -
|
| - // The bug database API may not return all the requested bugs in a single call.
|
| - // (data.totalResults will return the total number of bugs that meet the
|
| - // request parameters, but data.items may only include a subset.)
|
| - // Keep calling back to the API, and appending results to all_items, until
|
| - // we get as many results as promised in data.totalResults (which is,
|
| - // of course, actually a 1-indexed array index for the last value, not the
|
| - // actual number of results. Hence the minus-ones.
|
| -
|
| - function getBugData(callback) {
|
| - $.get( url, ph_params, function( data ) {
|
| - totalResults = data.totalResults
|
| - all_items = all_items.concat(data.items);
|
| - $("#stats").text("Received " + all_items.length +
|
| - " total Skia bugs of " + (totalResults-1) + "." );
|
| - if (all_items.length == totalResults - 1) {
|
| - callback();
|
| - } else {
|
| - ph_params['startIndex'] = all_items.length + 1;
|
| - getBugData(callback);
|
| - }
|
| - });
|
| - }
|
| -
|
| - function drawChart() {
|
| - var bug_data = [];
|
| -
|
| - getBugData(function() {
|
| -
|
| - /* Data comes back from the Project Hosting API in JSON format like:
|
| -
|
| - {
|
| - "totalResults": 1057,
|
| - "items": [
|
| - {
|
| - "published": "2008-12-23T18:57:06.000Z",
|
| - "closed": "2009-04-23T17:12:54.000Z"
|
| - },
|
| - {
|
| - "published": "2008-12-23T18:58:08.000Z",
|
| - "closed": "2010-04-15T17:28:52.000Z"
|
| - },
|
| - ...
|
| - }
|
| -
|
| - if the bug is still open, there will simply not be a 'closed'
|
| - attribute on the item.
|
| -
|
| - */
|
| -
|
| -
|
| - // turn this into a list of [ date, +1/-1 ] pairs indicating
|
| - // whether or not we added or subtracted a bug on that day.
|
| - // Need this intermediate step because the list of actions
|
| - // are only sorted on publication date, but the close date
|
| - // can be any time in the future.
|
| -
|
| - actions = [];
|
| - for (var i = 0 ; i < all_items.length; i++) {
|
| - var publish = new Date(all_items[i].published);
|
| - actions.push( [publish, 1] );
|
| - if (all_items[i].closed ) {
|
| - var closed = new Date(all_items[i].closed);
|
| - actions.push( [closed,-1] );
|
| - }
|
| - }
|
| -
|
| - // now that opening and closing bugs are on equal footing,
|
| - // we can sort the action array by the date.
|
| -
|
| - actions.sort( function(a,b) { return a[0] - b[0]; } );
|
| -
|
| - // convert the action array to a running total, and format
|
| - // it for the google visualization API while we're at it.
|
| -
|
| - var bug_count = 0;
|
| - for (var i = 0 ; i < actions.length; i++) {
|
| - bug_count += actions[i][1];
|
| - bug_data.push( {c: [{v: actions[i][0]}, {v: bug_count}]} );
|
| - }
|
| - $("#stats").text("Found " + (totalResults-1) +
|
| - " total Skia bugs, with " + bug_count +
|
| - " remaining open." );
|
| -
|
| - var data_table_init = {
|
| - 'cols': [
|
| - {
|
| - 'label': 'Time',
|
| - 'type': 'datetime'
|
| - },
|
| - {
|
| - 'label': 'Number of open Skia bugs',
|
| - 'type': 'number'
|
| - }
|
| - ],
|
| - 'rows': bug_data
|
| - };
|
| -
|
| - var data_table = new google.visualization.DataTable(data_table_init);
|
| -
|
| - var options = {
|
| - 'title': 'Number of open Skia bugs',
|
| - 'width': 1024,
|
| - 'height': 768
|
| - };
|
| -
|
| - var graph_container = document.getElementById('graph');
|
| - var graph = new google.visualization.LineChart(graph_container);
|
| - graph.draw(data_table,options);
|
| - });
|
| - }
|
| - </script>
|
| -
|
| - <style>
|
| - body {
|
| - font-size: 24pt;
|
| - text-align: center;
|
| - font-family: Verdana, Arial, Helvetica, sans-serif;
|
| - }
|
| - </style>
|
| -
|
| - <title>Skia bug motivator</title>
|
| - </head>
|
| - <body>
|
| - <div id="results_wrapper">
|
| - Open Skia bugs over time
|
| - <div id="stats">Gettings bugs, please wait...</div>
|
| - <div id="graph"></div>
|
| - </div>
|
| - </body>
|
| -</html>
|
|
|