Merge "fuel: Enable 3rd party CI for fuel plugin onos"
[releng.git] / utils / test / reporting / functest / template / index-status-tmpl.html
1  <html>
2   <head>
3     <meta charset="utf-8">
4     <!-- Bootstrap core CSS -->
5     <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
6     <link href="../../../css/default.css" rel="stylesheet">
7     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
8     <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
9     <script type="text/javascript" src="http://d3js.org/d3.v2.min.js"></script>
10     <script type="text/javascript" src="../../../js/gauge.js"></script>
11     <script type="text/javascript" src="../../../js/trend.js"></script>
12     <script>
13     function onDocumentReady() {
14         // Gauge management
15         {% for scenario in scenario_stats.iteritems() -%}
16             var gaugeScenario{{loop.index}} = gauge('#gaugeScenario{{loop.index}}');
17         {%- endfor %}
18         
19         // assign success rate to the gauge
20         function updateReadings() {
21             {% for scenario,iteration in scenario_stats.iteritems() -%}
22                 gaugeScenario{{loop.index}}.update({{scenario_results[scenario].getScorePercent()}});
23              {%- endfor %}
24         }
25         updateReadings();                                                                               
26         }
27         
28         // trend line management
29         d3.csv("./scenario_history.txt", function(data) {
30        // ***************************************
31        // Create the trend line
32       {% for scenario,iteration in scenario_stats.iteritems() -%}
33        // for scenario {{scenario}} 
34        // Filter results
35         var trend{{loop.index}} = data.filter(function(row) { 
36              return row["scenario"]=="{{scenario}}" && row["installer"]=="{{installer}}";
37         })
38        // Parse the date 
39         trend{{loop.index}}.forEach(function(d) {
40             d.date = parseDate(d.date);
41             d.score = +d.score
42         });
43         // Draw the trend line
44         var mytrend = trend("#trend_svg{{loop.index}}",trend{{loop.index}})
45         // ****************************************
46         {%- endfor %}
47     });     
48     if ( !window.isLoaded ) {
49         window.addEventListener("load", function() {
50                         onDocumentReady();
51         }, false);
52     } else {
53         onDocumentReady();
54     }
55 </script>
56 <script type="text/javascript">
57 $(document).ready(function (){
58     $(".btn-more").click(function() {
59         $(this).hide();
60         $(this).parent().find(".panel-default").show();
61     });
62 })
63 </script>
64     
65   </head>
66     <body>
67     <div class="container">
68       <div class="masthead">
69         <h3 class="text-muted">Functest status page ({{version}}, {{date}})</h3>
70         <nav>
71           <ul class="nav nav-justified">
72             <li class="active"><a href="http://testresults.opnfv.org/reporting/index.html">Home</a></li>
73             <li><a href="index-status-apex.html">Apex</a></li>
74             <li><a href="index-status-compass.html">Compass</a></li>
75             <li><a href="index-status-fuel.html">Fuel</a></li>
76             <li><a href="index-status-joid.html">Joid</a></li>
77           </ul>
78         </nav>
79       </div>
80 <div class="row">
81     <div class="col-md-1"></div>
82     <div class="col-md-10">
83         <div class="page-header">
84             <h2>{{installer}}</h2>
85         </div>
86
87         <div class="scenario-overview">
88             <div class="panel-heading"><h4><b>List of last scenarios ({{version}}) run over the last {{period}} days </b></h4></div>
89                 <table class="table">
90                     <tr>
91                         <th width="40%">Scenario</th>
92                         <th width="20%">Status</th>
93                         <th width="20%">Trend</th>
94                         <th width="10%">Score</th>
95                         <th width="10%">Iteration</th>
96                     </tr>
97                         {% for scenario,iteration in scenario_stats.iteritems() -%}
98                             <tr class="tr-ok">
99                                 <td><a href={{scenario_results[scenario].getUrlLastRun()}}>{{scenario}}</a></td>
100                                 <td><div id="gaugeScenario{{loop.index}}"></div></td>
101                                 <td><div id="trend_svg{{loop.index}}"></div></td>
102                                 <td>{{scenario_results[scenario].getScore()}}</td>
103                                 <td>{{iteration}}</td>
104                             </tr>
105                             {%- endfor %}
106                         </table>
107         </div>
108
109
110         {% for scenario, iteration in scenario_stats.iteritems() -%}
111         <div class="scenario-part">
112             <div class="page-header">
113                 <h3><span class="glyphicon glyphicon-chevron-right"> <b>{{scenario}}</b></h3>
114             </div>
115                     <div class="panel panel-default">
116                     <div class="panel-heading">
117                         <span class="panel-header-item">
118                         </span>
119                     </div>
120                     <table class="table">
121                         <tr>
122                             {% for test in items[scenario] -%}
123                             <th>
124                             {% if test.getCriteria() > -1 -%}
125                             {{test.getDisplayName() }}
126                             {%- endif %}
127                             {% if test.getTier() > 3 -%}
128                             *
129                             {%- endif %}
130                              </th>
131                             {%- endfor %}
132                         </tr>
133                         <tr class="tr-weather-weather">
134                             {% for test in items[scenario] -%}
135                             {% if test.getCriteria() > 2 -%}
136                                 <td><img src="../../img/weather-clear.png"></td>
137                             {%- elif test.getCriteria() > 1 -%}
138                                 <td><img src="../../img/weather-few-clouds.png"></td>
139                             {%- elif test.getCriteria() > 0 -%}
140                                 <td><img src="../../img/weather-overcast.png"></td>
141                             {%- elif test.getCriteria() > -1 -%}
142                                 <td><img src="../../img/weather-storm.png"></td>
143                             {%- endif %}
144                             {%- endfor %}
145                         </tr>
146                     </table>
147                 </div>
148         </div>
149         {%- endfor %}
150     see <a href="https://wiki.opnfv.org/pages/viewpage.action?pageId=6828617">Functest scoring wiki page</a> for details on scenario scoring
151     </div>
152     <div class="col-md-1"></div>
153 </div>