n@566
|
1 /*
|
n@566
|
2 * Analysis script for WAET
|
n@566
|
3 */
|
n@566
|
4
|
n@566
|
5 var chartContext;
|
n@566
|
6 window.onload = function() {
|
n@566
|
7 // Load the Visualization API and the corechart package.
|
n@566
|
8 google.charts.load('current', {'packages':['corechart']});
|
n@566
|
9 chartContext = new Chart();
|
n@566
|
10 }
|
n@566
|
11
|
n@566
|
12 function Chart() {
|
n@569
|
13 this.valueData = null;
|
n@569
|
14 this.commentData = null;
|
n@569
|
15 this.loadStatus = 0;
|
n@566
|
16
|
n@569
|
17 var XMLHttp = new XMLHttpRequest();
|
n@569
|
18 XMLHttp.parent = this;
|
n@569
|
19 XMLHttp.open("GET","../scripts/score_parser.php?format=JSON",true);
|
n@569
|
20 XMLHttp.onload = function() {
|
n@569
|
21 // Now we have the JSON data, extract
|
n@569
|
22 this.parent.valueData = JSON.parse(this.responseText);
|
n@569
|
23 this.parent.loadStatus++;
|
n@566
|
24 }
|
n@569
|
25 XMLHttp.send();
|
n@569
|
26 var XMLHttp2 = new XMLHttpRequest();
|
n@569
|
27 XMLHttp2.parent = this;
|
n@569
|
28 XMLHttp2.open("GET","../scripts/comment_parser.php?format=JSON",true);
|
n@569
|
29 XMLHttp2.onload = function() {
|
n@569
|
30 // Now we have the JSON data, extract
|
n@569
|
31 this.parent.commentData = JSON.parse(this.responseText);
|
n@569
|
32 this.parent.loadStatus++;
|
n@569
|
33 }
|
n@569
|
34 XMLHttp2.send();
|
n@566
|
35
|
n@566
|
36 this.drawMean = function() {
|
n@566
|
37 // First we must get the value data
|
n@569
|
38 if (this.valueData == null) {
|
n@569
|
39 console.log("Error - Data not loaded");
|
n@569
|
40 return;
|
n@569
|
41 }
|
n@569
|
42 // We create one plot per page
|
n@569
|
43 for (var page of this.valueData.pages) {
|
n@569
|
44 // First, create the chart resulting point
|
n@569
|
45 var inject = document.createElement("div");
|
n@569
|
46 document.getElementById("test-pages").appendChild(inject);
|
n@569
|
47
|
n@569
|
48 // Create the data table
|
n@569
|
49 var data = new google.visualization.DataTable();
|
n@569
|
50 data.addColumn('string','id');
|
n@569
|
51 // Get axis labels
|
n@569
|
52 for (var axis of page.elements[0].axis) {
|
n@569
|
53 data.addColumn('number',axis.name);
|
n@569
|
54 }
|
n@569
|
55 var rows = []; // Rows is an array of tuples [col1, col2, col3 ... colN];
|
n@569
|
56 for (var element of page.elements) {
|
n@569
|
57 var entry = [element.id];
|
n@569
|
58 for (var i=0; i<page.elements[0].axis.length; i++) {
|
n@569
|
59 var mean =0;
|
n@569
|
60 if (i < element.axis.length) {
|
n@569
|
61 var axis = element.axis[i];
|
n@569
|
62 for (var value of axis.values) {
|
n@569
|
63 mean += value;
|
n@569
|
64 }
|
n@569
|
65 mean /= axis.values.length;
|
n@569
|
66 }
|
n@569
|
67 entry.push(mean);
|
n@569
|
68 }
|
n@569
|
69 rows.push(entry);
|
n@569
|
70 }
|
n@569
|
71 data.addRows(rows);
|
n@569
|
72 var options = {'title':'Mean of page: '+page.id,
|
n@569
|
73 'width':800,
|
n@569
|
74 'height':700};
|
n@569
|
75 // Draw the chart
|
n@569
|
76 var chart = new google.visualization.ColumnChart(inject);
|
n@569
|
77 chart.draw(data,options);
|
n@569
|
78 }
|
n@566
|
79 }
|
n@566
|
80 } |