{# Shared panel macros #} {% macro status_tag(code) -%} {%- if code is none -%}— {%- elif code >= 500 -%}{{ code }} {%- elif code >= 400 -%}{{ code }} {%- elif code >= 300 -%}{{ code }} {%- else -%}{{ code }} {%- endif -%} {%- endmacro %} {% macro level_tag(level) -%} {%- set cls = {'DEBUG': '', 'INFO': 'is-info', 'WARNING': 'is-warning', 'ERROR': 'is-danger', 'CRITICAL': 'is-danger'}.get(level, '') -%} {{ level }} {%- endmacro %} {% macro duration(ms) -%} {{ ms | lw_duration }} {%- endmacro %} {% macro time_ago(dt) -%} {%- endmacro %} {% macro tags(items) -%} {% if items %}
{% endif %} {%- endmacro %} {# Recursive JSON viewer with nested{{ value }}{%- else -%}"{{ value }}"{%- endif -%}
{%- elif value is sequence -%}
{%- if value -%}
{{ sql | lw_sql }}
{%- endmacro %}
{# Collapsible traceback and snippet with the line highlighted. #}
{% macro traceback(frames, text) -%}
{% for f in frames | reverse %}
{{ f.file }}:{{ f.line }} in {{ f.function }}{% for l in f.snippet %}{{ l.line }} {{ l.code }}
{% endfor %}
{% else %}{{ f.code }}{% endif %}
{{ text }}{{ reason }}
{% endif %}