Add POD visualisation
[releng.git] / utils / test / result_collection_api / tools / dashboard / js / opnfv_dashboard_tests.js
index 3683c63..4bb56af 100644 (file)
@@ -15,14 +15,14 @@ function format_date(inputDate){
 }\r
 \r
 // Draw a single graph for a specific test for a specific installer\r
-function draw_graph_per_scenario_per_installer (filename, installer, scenario, test_unit){\r
+function draw_graph_per_scenario_per_installer (filename, installer, pod, scenario, test_unit){\r
     $.getJSON(filename, function(data) {\r
     var serie = [];\r
     index_test = 0;\r
     // find index mapping to the test_unit\r
     for (var i=0; i<data.dashboard.length; i++)\r
         if (data.dashboard[i].name==test_unit){\r
-              index_test=i;\r
+           index_test=i;\r
            break;\r
         }\r
 \r
@@ -57,7 +57,7 @@ function draw_graph_per_scenario_per_installer (filename, installer, scenario, t
         if ($.inArray(opnfv_dashboard_y_labels[y], keys)!=-1) labels.push(data.dashboard[index_test].info[opnfv_dashboard_y_labels[y]]);\r
 \r
     // Draw the graph\r
-    g=new Dygraph(\r
+    g = new Dygraph(\r
         document.getElementById(scenario),\r
         serie,\r
         {\r
@@ -86,19 +86,13 @@ function draw_graphs_all_scenarios_per_installer () {
     project = opnfv_dashboard_project;\r
     test = opnfv_dashboard_test;\r
     test_unit = opnfv_dashboard_test_unit;\r
-\r
-    if (installer.length==0){\r
-        alert ('select an installer');\r
-        return;\r
-    }\r
-    if (test.length==0){\r
-        alert ('select a test case');\r
-        return;\r
-    }\r
     for (i=0; i<opnfv_dashboard_installers_scenarios[installer].length; i++){\r
-        var filename = './' + opnfv_dashboard_file_directory + '/' + installer + '/' + project + '/' + opnfv_dashboard_file_prefix + project+'_'+test+'_'+opnfv_dashboard_installers_scenarios[installer][i]+opnfv_dashboard_file_suffix;\r
+        var filename = './' + opnfv_dashboard_file_directory + '/' + installer + '/' + project + '/' + opnfv_dashboard_file_prefix + project+'_'+test+'_'+opnfv_dashboard_installers_scenarios[installer][i];\r
+        if (opnfv_dashboard_pod!='all')\r
+            filename += '_' + opnfv_dashboard_pod;\r
+        filename += opnfv_dashboard_file_suffix;\r
         console.log(filename);\r
-        draw_graph_per_scenario_per_installer(filename, installer, opnfv_dashboard_installers_scenarios[installer][i], test_unit);\r
+        draw_graph_per_scenario_per_installer(filename, installer, opnfv_dashboard_pod, opnfv_dashboard_installers_scenarios[installer][i], test_unit);\r
     }\r
 }\r
 \r
@@ -113,10 +107,30 @@ function on_testcase_draw_graph(test, test_unit){
 function on_installer_draw_graph(installer){\r
    opnfv_dashboard_installer = installer;\r
    show_installers(installer);\r
+   opnfv_dashboard_pod = 'all';  // force the new pod to 'all' because there is # pods per installer\r
+   show_installers_pods(opnfv_dashboard_pod);\r
    show_divs(installer);\r
    draw_graphs_all_scenarios_per_installer ();\r
 }\r
 \r
+function on_pod_draw_graph(pod){\r
+   opnfv_dashboard_pod = pod;\r
+   show_installers_pods(pod);\r
+   show_divs(opnfv_dashboard_installer);\r
+   draw_graphs_all_scenarios_per_installer ();\r
+}\r
+\r
+function on_ready_draw_graph(){\r
+   opnfv_dashboard_test = 'vPing';\r
+   opnfv_dashboard_test_unit = 'vPing duration';\r
+   opnfv_dashboard_installer = opnfv_dashboard_installers[Math.round((Math.random(opnfv_dashboard_installers.length-1)))];\r
+   show_installers_pods(opnfv_dashboard_installers_pods[opnfv_dashboard_installer][0]);\r
+   show_installers(opnfv_dashboard_installer);\r
+   show_divs(opnfv_dashboard_installer);\r
+   $("#testcase_selected").html(opnfv_dashboard_test_unit);\r
+   draw_graphs_all_scenarios_per_installer ();\r
+}\r
+\r
 // generate test case selection\r
 function show_testcases(){\r
     var html_testcases = '<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">Select a test case';\r
@@ -149,12 +163,26 @@ function show_installers(active_installer)
     for (var i in opnfv_dashboard_installers)\r
         if (opnfv_dashboard_installers[i]==active_installer)\r
             html_installers += '<li class="active"><a href="#" onClick="on_installer_draw_graph(\''+opnfv_dashboard_installers[i]+'\')">'+opnfv_dashboard_installers[i]+'</a></li>';         \r
-               else\r
-                   html_installers += '<li><a href="#" onClick="on_installer_draw_graph(\''+opnfv_dashboard_installers[i]+'\')">'+opnfv_dashboard_installers[i]+'</a></li>';\r
+        else\r
+            html_installers += '<li><a href="#" onClick="on_installer_draw_graph(\''+opnfv_dashboard_installers[i]+'\')">'+opnfv_dashboard_installers[i]+'</a></li>';\r
     html_installers += '</ul>';\r
     $("#installers").html(html_installers);\r
 }\r
 \r
+// generate pods buttons\r
+function show_installers_pods(active_pod)\r
+{\r
+    var html_pods = '';\r
+    html_pods += '<ul class="nav nav-pills">';\r
+    for (var i in opnfv_dashboard_installers_pods[opnfv_dashboard_installer])\r
+        if (opnfv_dashboard_installers_pods[opnfv_dashboard_installer][i]==active_pod)\r
+            html_pods += '<li class="active"><a href="#" onClick="on_pod_draw_graph(\''+opnfv_dashboard_installers_pods[opnfv_dashboard_installer][i]+'\')">'+opnfv_dashboard_installers_pods_print[opnfv_dashboard_installer][i]+'</a></li>';         \r
+        else\r
+            html_pods += '<li><a href="#" onClick="on_pod_draw_graph(\''+opnfv_dashboard_installers_pods[opnfv_dashboard_installer][i]+'\')">'+opnfv_dashboard_installers_pods_print[opnfv_dashboard_installer][i]+'</a></li>';\r
+    html_pods += '</ul>';\r
+    $("#pods").html(html_pods);\r
+}\r
+\r
 // generate a div per installer (to host the graph)\r
 function show_divs(installer){\r
   $("#graphs").remove();\r
@@ -163,14 +191,15 @@ function show_divs(installer){
     var div_scenario = '<div class= "chart" id="' + opnfv_dashboard_installers_scenarios[installer][i] + '"/>';\r
 console.log(div_scenario);\r
     var $newdiv = $(div_scenario);\r
-\r
     $("#graphs").append($newdiv);\r
   }\r
 }\r
 \r
 // generate HTML menus and buttons\r
 $( document ).ready(function(){\r
-  show_installers('');\r
-  show_testcases();\r
   console.log( "ready!" );\r
+  \r
+  //show_installers('');\r
+  show_testcases();\r
+  on_ready_draw_graph();\r
 });\r