Guest User

Untitled

a guest
Feb 25th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.50 KB | None | 0 0
  1. {% macro status_counts(caller, status, node_name, events, current_env, unreported_time=False, report_hash=False) -%}
  2. <a class="ui {{status}} label status" href="{{url_for('report', env=current_env, node_name=node_name, report_id=report_hash)}}">{{ status|upper }}</a>
  3. {% if status == 'unreported' %}
  4. <span class="ui label status"> {{ unreported_time|upper }} </span>
  5. {% else %}
  6. {% if events['failures'] %}<span class="ui small count label failed">{{events['failures']}}</span>{% else %}<span class="ui small count label">0</span>{% endif%}
  7. {% if events['successes'] %}<span class="ui small count label changed">{{events['successes']}}</span>{% else %}<span class="ui small count label">0</span>{% endif%}
  8. {% if events['skips'] %}<span class="ui small count label skipped">{{events['skips']}}</span>{% else %}<span class="ui small count label">0</span>{% endif%}
  9. {% endif %}
  10. {%- endmacro %}
  11.  
  12. {% macro report_status(caller, status, node_name, metrics, current_env, unreported_time=False, report_hash=False) -%}
  13. <a class="ui {{status}} label status" href="{{url_for('report', env=current_env, node_name=node_name, report_id=report_hash)}}">{{ status|upper }}</a>
  14. {% if status == 'unreported' %}
  15. <span class="ui label status"> {{ unreported_time|upper }} </span>
  16. {% else %}
  17. {% for metric in config.DISPLAYED_METRICS %}
  18. {% set path = metric.split('.') %}
  19. {% set title = ' '.join(path) %}
  20. {% if metrics[path[0]] and metrics[path[0]][path[1]] %}
  21. {% set value = metrics[path[0]][path[1]] %}
  22. {% if value != 0 and value|int != value %}
  23. {% set format_str = '%.2f' %}
  24. {% else %}
  25. {% set format_str = '%s' %}
  26. {% endif %}
  27. <span title="{{ title }}" class="ui small count label {{ title }}">{{ format_str|format(value) }}</span>
  28. {% else %}
  29. <span title="{{ title }}" class="ui small count label">0</span>
  30. {% endif%}
  31. {% endfor %}
  32. {% endif %}
  33. {%- endmacro %}
  34.  
  35. {% macro datatable_init(table_html_id, ajax_url, default_length, length_selector, extra_options=None) -%}
  36. // Init datatable
  37. $.fn.dataTable.ext.errMode = 'throw';
  38.  
  39. var table = $('#{{ table_html_id }}').DataTable({
  40. // Permit flow auto-readjust (responsive)
  41. "autoWidth": false,
  42. // Activate "processing" message
  43. "processing": true,
  44. // Activate Ajax mode
  45. "serverSide": true,
  46. // Responsive
  47. "responsive": true,
  48. // Defer rendering out of screen lines (JIT)
  49. "deferRender": true,
  50. // Data loading URL
  51. "ajax": "{{ ajax_url }}",
  52. // Paging options
  53. "lengthMenu": {{ length_selector }},
  54. "pageLength": {{ default_length }},
  55. // Search as regex (does not apply if serverSide)
  56. "search": {"regex": true},
  57. // Default sort
  58. "order": [[ 0, "desc" ]],
  59. // Rendering - add rendering options for columns
  60. "columnDefs": [ {
  61. "targets": -1,
  62. "data:": null,
  63. "render": function (data, type, full, meta) {
  64. shorta = data.replace(/[{},]/g, "<br />");
  65. shortb = shorta.replace(/u'/g, " ");
  66. shortc = shortb.replace(/'/g, " ");
  67. return shortc;
  68. }}],
  69. // Custom options
  70. {% if extra_options %}{% call extra_options() %}Callback to parent defined options{% endcall %}{% endif %}
  71. });
  72.  
  73. table.on('error', function ( e, settings, json ) {
  74. table.clear().draw();
  75. $('#facts_table_processing').hide(); })
  76.  
  77.  
  78. table.on('draw.dt', function(){
  79. $('#{{ table_html_id }} [rel=utctimestamp]').each(
  80. function(index, timestamp){
  81. $(this).localise_timestamp();
  82. });
  83. });
  84.  
  85. // Custom options
  86. {% if extra_options %}{% call extra_options() %}Callback to parent defined options{% endcall %}{% endif %}
  87. });
  88.  
  89. table.on('error', function ( e, settings, json ) {
  90. table.clear().draw();
  91. $('#facts_table_processing').hide(); })
  92.  
  93.  
  94. table.on('draw.dt', function(){
  95. $('#{{ table_html_id }} [rel=utctimestamp]').each(
  96. function(index, timestamp){
  97. $(this).localise_timestamp();
  98. });
  99. });
  100.  
  101. // Override Datatables search box events to delay Ajax call while writing
  102. var searchWait = 0;
  103. var searchWaitInterval;
  104. $('.dataTables_filter input')
  105. .unbind()
  106. .bind('input', function(e){
  107. var item = $(this);
  108. searchWait = 0;
  109. if(!searchWaitInterval) searchWaitInterval = setInterval(function(){
  110. if(searchWait>=3){
  111. clearInterval(searchWaitInterval);
  112. searchWaitInterval = '';
  113. searchTerm = $(item).val();
  114. table.search(searchTerm).draw();
  115. searchWait = 0;
  116. }
  117. searchWait++;
  118. },80);
  119. });
  120. {%- endmacro %}
Add Comment
Please, Sign In to add comment