report_result.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. {% extends 'extras/report.html' %}
  2. {% load helpers %}
  3. {% load static %}
  4. {% block title %}{{ report.name }} - {{ result.get_status_display }}{% endblock %}
  5. {% block content %}
  6. <div class="row">
  7. <div class="col-md-12">
  8. <p>
  9. Run: <strong>{{ result.created|annotated_date }}</strong>
  10. {% if result.completed %}
  11. Duration: <strong>{{ result.duration }}</strong>
  12. {% else %}
  13. <img id="pending-result-loader" src="{% static 'img/ajax-loader.gif' %}" />
  14. {% endif %}
  15. <span id="pending-result-label">{% include 'extras/inc/job_label.html' with result=result %}</span>
  16. </p>
  17. {% if result.completed %}
  18. <div class="panel panel-default">
  19. <div class="panel-heading">
  20. <strong>Report Methods</strong>
  21. </div>
  22. <table class="table table-hover panel-body">
  23. {% for method, data in result.data.items %}
  24. <tr>
  25. <td><code><a href="#{{ method }}">{{ method }}</a></code></td>
  26. <td class="text-right report-stats">
  27. <label class="label label-success">{{ data.success }}</label>
  28. <label class="label label-info">{{ data.info }}</label>
  29. <label class="label label-warning">{{ data.warning }}</label>
  30. <label class="label label-danger">{{ data.failure }}</label>
  31. </td>
  32. </tr>
  33. {% endfor %}
  34. </table>
  35. </div>
  36. <div class="panel panel-default">
  37. <div class="panel-heading">
  38. <strong>Report Results</strong>
  39. </div>
  40. <table class="table table-hover panel-body report">
  41. <thead>
  42. <tr class="table-headings">
  43. <th>Time</th>
  44. <th>Level</th>
  45. <th>Object</th>
  46. <th>Message</th>
  47. </tr>
  48. </thead>
  49. <tbody>
  50. {% for method, data in result.data.items %}
  51. <tr>
  52. <th colspan="4" style="font-family: monospace">
  53. <a name="{{ method }}"></a>{{ method }}
  54. </th>
  55. </tr>
  56. {% for time, level, obj, url, message in data.log %}
  57. <tr class="{% if level == 'failure' %}danger{% elif level %}{{ level }}{% endif %}">
  58. <td>{{ time }}</td>
  59. <td>
  60. <label class="label label-{% if level == 'failure' %}danger{% else %}{{ level }}{% endif %}">{{ level|title }}</label>
  61. </td>
  62. <td>
  63. {% if obj and url %}
  64. <a href="{{ url }}">{{ obj }}</a>
  65. {% elif obj %}
  66. {{ obj }}
  67. {% else %}
  68. <span class="muted">&mdash;</span>
  69. {% endif %}
  70. </td>
  71. <td class="rendered-markdown">{{ message|render_markdown }}</td>
  72. </tr>
  73. {% endfor %}
  74. {% endfor %}
  75. </tbody>
  76. </table>
  77. </div>
  78. {% else %}
  79. <div class="well">Pending results</div>
  80. {% endif %}
  81. </div>
  82. </div>
  83. {% endblock %}
  84. {% block javascript %}
  85. <script type="text/javascript">
  86. {% if not result.completed %}
  87. var pending_result_id = {{ result.pk }};
  88. {% else %}
  89. var pending_result_id = null;
  90. {% endif %}
  91. function jobTerminatedAction(){
  92. refreshWindow();
  93. }
  94. </script>
  95. <script src="{% static 'js/job_result.js' %}?v{{ settings.VERSION }}"
  96. onerror="window.location='{% url 'media_failure' %}?filename=js/job_result.js'"></script>
  97. {% endblock %}