{%- endmacro %}
{% macro text_field(text, status='', truncate=false, wrap=False) -%}
{% call field(status=status, wrap=wrap) %}
{% if text is iterable and text is not string %}
{% for item in text %}
{% if item %}
{{ item }}
{% endif %}
{% endfor %}
{% else %}
{% if truncate %}
{{text}}
{% else %}
{{ text }}
{% endif %}
{% endif %}
{% endcall %}
{%- endmacro %}
{% macro optional_text_field(text, default='Not set', truncate=false, wrap=False) -%}
{{ text_field(
text or default,
status='' if text else 'default',
truncate=truncate,
wrap=wrap
) }}
{%- endmacro %}
{% macro link_field(text, link) -%}
{% call field() %}
{{ text }}
{% endcall %}
{%- endmacro %}
{% macro edit_field(text, link, permissions=[], suffix=None) -%}
{% call field(align='right') %}
{% if not permissions or current_user.has_permissions(*permissions) %}
{{ text }}
{%- if suffix %} {{ suffix }}{% endif -%}
{% endif %}
{% endcall %}
{%- endmacro %}
{% macro boolean_field(value) -%}
{{ text_field('On' if value else 'Off') }}
{%- endmacro %}
{% macro right_aligned_field_heading(text) %}
{{ text }}
{%- endmacro %}
{% macro hidden_field_heading(text) %}
{{ text }}
{%- endmacro %}
{% macro notification_status_field(notification) %}
{% set displayed_on_single_line = notification.status in ['created', 'pending', 'sending', 'delivered', 'accepted', 'received'] %}
{% if not notification %}
{% call field(align='right') %}{% endcall %}
{% else %}
{% set status = notification.status|format_notification_status_as_field_status(notification.notification_type) %}
{% call field(
status=status,
align='right'
) %}
{% if displayed_on_single_line %}{% endif %}
{% if notification.status|format_notification_status_as_url(notification.notification_type) %}
{% endif %}
{{ notification.status|format_notification_status(notification.template.template_type) }}
{% if notification.status|format_notification_status_as_url(notification.notification_type) %}
{% endif %}
{{ notification.status|format_notification_status_as_time(
notification.created_at|format_datetime_short,
(notification.updated_at or notification.created_at)|format_datetime_short
) }}