1 /*#############################################################################
\r
2 # All rights reserved. This program and the accompanying materials
\r
3 # are made available under the terms of the Apache License, Version 2.0
\r
4 # which accompanies this distribution, and is available at
\r
5 # http://www.apache.org/licenses/LICENSE-2.0
\r
6 ##############################################################################
\r
9 // Function to sort data to be ordered according to the time
\r
10 function sortFunction(a,b){
\r
11 var dateA = new Date(a.date).getTime();
\r
12 var dateB = new Date(b.date).getTime();
\r
13 return dateA > dateB ? 1 : -1;
\r
16 // Function to format date according to JS
\r
17 function formatDate(inputDate){
\r
18 var input=inputDate.slice(0,-7);
\r
19 input=input.replace(' ','T');
\r
21 return new Date(Date.parse(input));
\r
24 // Draw a single graph for a specific test for a specific installer
\r
25 function drawGraph(filename,installer,test_unit){
\r
26 $.getJSON( filename, function(data) {
\r
29 // find index mapping to the test_unit
\r
30 for (var i=0;i<data.dashboard.length;i++)
\r
31 if (data.dashboard[i].name==test_unit){index_test=i; break;}
\r
33 // build the data according to dygraph
\r
34 for (i=0;i<data.dashboard[index_test].data_set.length;i++) {
\r
36 result=data.dashboard[index_test].data_set[i];
\r
37 d.push(formatDate(result.x));
\r
39 // push y data if available
\r
40 var keys=Object.keys(result);
\r
41 for (var y in opnfv_dashboard_ys)
\r
42 if ($.inArray(opnfv_dashboard_ys[y], keys)!=-1) d.push(result[opnfv_dashboard_ys[y]]);
\r
46 // sort by date/time
\r
47 serie.sort(function(a,b){
\r
48 return new Date(a[0]).getTime()-new Date(b[0]).getTime()
\r
53 if (test_unit.includes('nb'))
\r
55 else if (test_unit.includes('duration'))
\r
58 labels.push('time');
\r
59 var keys=Object.keys(data.dashboard[index_test].info);
\r
60 for (var y in opnfv_dashboard_y_labels)
\r
61 if ($.inArray(opnfv_dashboard_y_labels[y], keys)!=-1) labels.push(data.dashboard[index_test].info[opnfv_dashboard_y_labels[y]]);
\r
65 document.getElementById(installer),
\r
68 colors:[opnfv_dashboard_graph_color_ok, opnfv_dashboard_graph_color_nok, opnfv_dashboard_graph_color_other],
\r
70 legend:opnfv_dashboard_graph_legend,
\r
72 titleHeight:opnfv_dashboard_graph_title_height,
\r
75 'text-align': opnfv_dashboard_graph_text_align,
\r
76 'background-color': opnfv_dashboard_graph_background_color
\r
78 axisLabelColor:opnfv_dashboard_graph_axis_label_color,
\r
80 highlightSeriesOpts:{strokeWidth:opnfv_dashboard_graph_stroke_width},
\r
87 // function to generate all the graphs for all installers
\r
88 function drawGraphsSerie(project,test,test_unit) {
\r
89 for (i=0;i<opnfv_dashboard_installers.length;i++){
\r
90 var filename='./'+opnfv_dashboard_file_directory+'/'+project+'/'+opnfv_dashboard_file_prefix+project+'_'+test+'_'+opnfv_dashboard_installers[i]+opnfv_dashboard_file_suffix;
\r
91 drawGraph(filename,opnfv_dashboard_installers[i],test_unit);
\r
95 // generate text and buttons for each test and unit test
\r
97 for (var i in opnfv_dashboard_projects)
\r
98 for (var project in opnfv_dashboard_projects[i])
\r
99 for (var test in opnfv_dashboard_projects[i][project]){
\r
100 text_html+=test+' ';
\r
101 for (var t in opnfv_dashboard_projects[i][project][test]){
\r
102 test_unit=opnfv_dashboard_projects[i][project][test][t];
\r
103 text_html+='<button onClick="drawGraphsSerie(\''+project+'\',\''+test +'\',\''+test_unit+'\')">'+test_unit+'</button>';
\r
107 document.getElementById('tests').innerHTML=text_html;
\r
110 console.log(text_html);
\r
112 // generate a div per installer (to host the graph)
\r
113 for (var i in opnfv_dashboard_installers){
\r
114 var div_installer='<div class= "chart" id="'+opnfv_dashboard_installers[i]+'"/>'
\r
115 var $newdiv=$(div_installer);
\r
116 $("body").append($newdiv);
\r