tasks.html 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. {% extends "base.html" %}
  2. {% block navbar %}
  3. {% module Template("navbar.html", active_tab="tasks", absolute_url=absolute_url) %}
  4. {% end %}
  5. {% block extra_styles %}
  6. <style type="text/css">
  7. #task-filter-form, #task-filter-form .form-actions {
  8. margin-bottom: 0;
  9. }
  10. #task-filter-form-accordion .accordion-inner {
  11. padding-left: 0;
  12. padding-right: 0;
  13. padding-bottom: 0;
  14. }
  15. </style>
  16. {% end %}
  17. {% block container %}
  18. <div class="container-fluid">
  19. <div id="task-filter-form-accordion" class="accordion">
  20. <div class="accordion-group">
  21. <div class="accordion-heading">
  22. <a class="accordion-toggle" data-toggle="collapse" data-parent="#task-filter-form-accordion" href="#task-filter-form-container">
  23. Filter tasks
  24. </a>
  25. </div>
  26. <div id="task-filter-form-container" class="accordion-body in collapse">
  27. <div class="accordion-inner" style="padding-left: 0; padding-right: 0;">
  28. <form id="task-filter-form" class="form-horizontal" action="{{ absolute_url('/tasks') }}" method="GET">
  29. <div class="control-group">
  30. <label class="control-label" for="input-limit">Limit:</label>
  31. <div class="controls">
  32. <input name="limit" type="text" class="input-small" id="input-limit"
  33. value="{{ limit or '' }}">
  34. </div>
  35. </div>
  36. <div class="control-group">
  37. <label class="control-label" for="select-worker">Workers:</label>
  38. <div class="controls">
  39. <select name="worker" id="select-worker">
  40. <option>All</option>
  41. {% for name in workers %}
  42. <option {% if name==worker %} selected {% end %}>{{ name }}</option>
  43. {% end %}
  44. </select>
  45. </div>
  46. </div>
  47. <div class="control-group">
  48. <label class="control-label" for="select-task">Seen task types:</label>
  49. <div class="controls">
  50. <select name="type" id="select-task">
  51. <option>All</option>
  52. {% for name in task_types %}
  53. <option {% if name==type %} selected {% end %}>{{ name }}</option>
  54. {% end %}
  55. </select>
  56. </div>
  57. </div>
  58. <div class="control-group">
  59. <label class="control-label" for="select-state">State:</label>
  60. <div class="controls">
  61. <select name="state" id="select-state">
  62. <option>All</option>
  63. {% for name in all_states %}
  64. <option {% if name==state %} selected {% end %}>{{ name }}</option>
  65. {% end %}
  66. </select>
  67. </div>
  68. </div>
  69. <div class="form-actions">
  70. <button class="btn btn-primary" type="submit">Apply filter</button>
  71. <button class="btn" onclick="flower.on_cancel_task_filter(event)">Cancel
  72. </button>
  73. </div>
  74. </form>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. <table class="table table-bordered table-striped">
  80. <thead>
  81. <tr>
  82. <th>Name</th>
  83. <th>UUID</th>
  84. <th>State</th>
  85. <th>args</th>
  86. <th>kwargs</th>
  87. <th>Result</th>
  88. <th>Received</th>
  89. <th>Started</th>
  90. </tr>
  91. </thead>
  92. <tbody>
  93. {% for uuid, task in tasks %}
  94. <tr>
  95. <td>{{ getattr(task, 'name', None) }}</td>
  96. <td><a href="{{ absolute_url('/task/' + task.uuid) }}">{{ task.uuid }}</a></td>
  97. <td>
  98. {% if task.state == "SUCCESS" %}
  99. <span class="label label-success">{{ task.state }}</span>
  100. {% elif task.state == "FAILURE" %}
  101. <span class="label label-important">{{ task.state }}</span>
  102. {% else %}
  103. <span class="label label-default">{{ task.state }}</span>
  104. {% end %}
  105. </td>
  106. <td>{{ humanize(task.args, length=20) }}</td>
  107. <td>{{ humanize(task.kwargs, length=20) }}</td>
  108. <td>{{ task.result }}</td>
  109. <td>{{ humanize(task.received, type='time') }}</td>
  110. <td>{{ humanize(task.started, type='time') }}</td>
  111. </tr>
  112. {% end %}
  113. </table>
  114. <div>
  115. {% end %}