OLD | NEW |
(Empty) | |
| 1 {% extends "layout.html" %} |
| 2 |
| 3 {% macro DisplayGraph(name, layout, width, height, color, data_variable, options
) %} |
| 4 <div><canvas id="canvas{{ name }}" height="{{ height }}" width="{{ width }}"><
/canvas></div> |
| 5 <script> |
| 6 var options{{ name }} = { |
| 7 "colorScheme": PlotKit.Base.palette(PlotKit.Base.baseColors()[{{ color }}]
), |
| 8 {% for k, v in options.iteritems() %}"{{ k }}": {{ v }}, |
| 9 {% endfor %} |
| 10 }; |
| 11 |
| 12 function draw{{ name }}() { |
| 13 var layout = new PlotKit.Layout("{{ layout }}", options{{ name }}); |
| 14 layout.addDataset("data", {{ data_variable }}); |
| 15 layout.evaluate(); |
| 16 var canvas = MochiKit.DOM.getElement("canvas{{ name }}"); |
| 17 var plotter = new PlotKit.SweetCanvasRenderer(canvas, layout, options{{ na
me }}); |
| 18 plotter.render(); |
| 19 } |
| 20 |
| 21 MochiKit.DOM.addLoadEvent(draw{{ name }}); |
| 22 </script> |
| 23 {% endmacro %} |
| 24 |
| 25 {% block header -%} |
| 26 {{ super() }} |
| 27 <script type="text/javascript" src="/mochikit/MochiKit.js"></script> |
| 28 <script type="text/javascript" src="/plotkit/Base.js"></script> |
| 29 <script type="text/javascript" src="/plotkit/Layout.js"></script> |
| 30 <script type="text/javascript" src="/plotkit/Canvas.js"></script> |
| 31 <script type="text/javascript" src="/plotkit/SweetCanvas.js"></script> |
| 32 {% endblock header %} |
| 33 |
| 34 {% block content %} |
| 35 <script type='text/javascript'> |
| 36 var buildTimes = [ |
| 37 {% for t in buildTimes %}[{{ loop.index0 }}, {{ t }}]{% if not loop.last %}, |
| 38 {% endif %}{% endfor %}]; |
| 39 |
| 40 var failingSteps = [ |
| 41 {% for count in failingSteps.values() %}[{{ loop.index0 }}, {{ count }}]{% i
f not loop.last %}, |
| 42 {% endif %}{% endfor %}]; |
| 43 |
| 44 var failingStepsLabel = [ |
| 45 {% for step in failingSteps %}{v:{{ loop.index0 }}, label:"{{ step }}"}{% if
not loop.last %}, |
| 46 {% endif %}{% endfor %}]; |
| 47 |
| 48 var ratioSuccessFailures = [[0, {{ numberOfSuccess }}], [1, {{ numberOfFailure
s }}]]; |
| 49 |
| 50 var stepTimeLabel = [ |
| 51 {% for step in stepTimes %}{v:{{ loop.index0 }}, label:"{{ step }}"}{% if no
t loop.last %}, |
| 52 {% endif %}{% endfor %}]; |
| 53 |
| 54 var stepTimeAvg = [ |
| 55 {% for v in stepTimes.itervalues() %}[{{ loop.index0 }}, {{ v|average }}]{%
if not loop.last %}, |
| 56 {% endif %}{% endfor %}]; |
| 57 |
| 58 {% for k, v in stepTimes.iteritems() %} |
| 59 var stepTimes{{ k }} = [ |
| 60 {% for steptime in v %}[{{ loop.index0 }}, {{ steptime }}]{% if not loop.las
t %}, |
| 61 {% endif %}{% endfor %}]; |
| 62 |
| 63 {% endfor %} |
| 64 </script> |
| 65 <center> |
| 66 <h1> {{ builder_status.getName() }} </h1><br> |
| 67 <h2> Cycle time - Trend </h2> |
| 68 {{ DisplayGraph("cycleTimeBar", "line", 1200, 300, 0, "buildTimes", {"drawXAxi
s": "false"}) }} |
| 69 |
| 70 <table><tr> |
| 71 <td> |
| 72 <h2>Ratio Success/Failures</h2><br> |
| 73 {{ DisplayGraph("ratioSuccessFailurePie", "pie", 380, 300, 4, "ratioSuccessF
ailures", {"xTicks": "[{v:0, label:'Success'}, {v:1, label:'Failures'}]"}) }} |
| 74 </td> |
| 75 <td> |
| 76 <h2>Failures by steps</h2><br> |
| 77 {{ DisplayGraph("stepFailuresPie", "pie", 380, 300, 1, "failingSteps", {"xTi
cks": "failingStepsLabel"}) }} |
| 78 </td> |
| 79 <td> |
| 80 <h2>Average step time distribution</h2><br> |
| 81 {{ DisplayGraph("stepAvgTime", "pie", 380, 300, 2, "stepTimeAvg", {"xTicks":
"stepTimeLabel"}) }} |
| 82 </td> |
| 83 </tr></table> |
| 84 |
| 85 <table><tr> |
| 86 {%- for k, v in stepTimes.iteritems() %} |
| 87 <td> |
| 88 <h3>Cycle time: {{ k }}</h3><br> |
| 89 {{ DisplayGraph("stepsTime%sLine" % k|fixname, "line", 400, 300, colorMap.ge
t(k|fixname, 0), "stepTimes%s" % k, {"drawXAxis": "false", "yAxis": "[0.00, %d.0
0]" % (v|max|int + 1), "yTicks": "[%s]" % ", ".join((v|max|int + 1)|ticks)}) }} |
| 90 </td> |
| 91 {%- if not loop.index % 3 %} |
| 92 </tr><tr> |
| 93 {% endif -%} |
| 94 {% endfor %} |
| 95 </tr></table></center> |
| 96 {% endblock content %} |
OLD | NEW |