{% macro facts_table(facts, current_env, autofocus=False, condensed=False, show_node=False, show_value=True, link_facts=False, margin_top=20, margin_bottom=20) -%}
{% if show_node %} {% else %} {% endif %} {% if show_value %} {% endif %} {% for fact in facts %} {% if show_node %} {% else %} {% endif %} {% if show_value %} {% endif %} {% endfor %}
NodeFactValue
{{fact.node}}{{fact.name}} {% if link_facts %} {% if fact.value is mapping %}
{{fact.value|jsonprint}}
{% else %} {{fact.value}} {% endif %} {% else %} {% if fact.value is mapping %}
{{fact.value|jsonprint}}
{% else %} {{fact.value}} {% endif %} {% endif %}
{%- endmacro %} {% macro status_counts(caller, status, node_name, events, current_env, unreported_time=False, report_hash=False) -%} {{ status|upper }} {% if status == 'unreported' %} {{ unreported_time|upper }} {% else %} {% if events['failures'] %}{{events['failures']}}{% else %}0{% endif%} {% if events['successes'] %}{{events['successes']}}{% else %}0{% endif%} {% if events['skips'] %}{{events['skips']}}{% else %}0{% endif%} {% endif %} {%- endmacro %} {% macro datatable_init(table_html_id, ajax_url, default_length, length_selector, extra_options=None) -%} // Init datatable $.fn.dataTable.ext.errMode = 'throw'; var table = $('#{{ table_html_id }}').DataTable({ // Permit flow auto-readjust (responsive) "autoWidth": false, // Activate "processing" message "processing": true, // Activate Ajax mode "serverSide": true, // Responsive "responsive": true, // Defer rendering out of screen lines (JIT) "deferRender": true, // Data loading URL "ajax": "{{ ajax_url }}", // Paging options "lengthMenu": {{ length_selector }}, "pageLength": {{ default_length }}, // Default sort "order": [[ 0, "desc" ]], // Custom options {% if extra_options %}{% call extra_options() %}Callback to parent defined options{% endcall %}{% endif %} }); table.on('draw.dt', function(){ $('#{{ table_html_id }} [rel=utctimestamp]').each( function(index, timestamp){ $(this).localise_timestamp(); }); }); // Override Datatables search box events to delay Ajax call while writing var searchWait = 0; var searchWaitInterval; $('.dataTables_filter input') .unbind() .bind('input', function(e){ var item = $(this); searchWait = 0; if(!searchWaitInterval) searchWaitInterval = setInterval(function(){ if(searchWait>=3){ clearInterval(searchWaitInterval); searchWaitInterval = ''; searchTerm = $(item).val(); table.search(searchTerm).draw(); searchWait = 0; } searchWait++; },80); }); {%- endmacro %}