38 lines
2.0 KiB
HTML
38 lines
2.0 KiB
HTML
{% macro select_field(label_text, select_id, name=None, options=[], placeholder="Select an option", required=False, include_blank=True, value_attr="id", label_attr="name", placeholder_disabled=False, placeholder_selected=True, selected_value=None) %}
|
|
<label for="{{ select_id }}">
|
|
{{ label_text }}
|
|
<select id="{{ select_id }}"{% if name %} name="{{ name }}"{% endif %}{% if required %} required{% endif %}>
|
|
{% if include_blank %}
|
|
<option value=""{% if placeholder_disabled %} disabled{% endif %}{% if placeholder_selected %} selected{% endif %}>{{ placeholder }}</option>
|
|
{% endif %}
|
|
{% for option in options %}
|
|
{% if option is mapping %}
|
|
{% set option_value = option[value_attr] %}
|
|
{% set option_label = option[label_attr] %}
|
|
{% else %}
|
|
{% set option_value = attribute(option, value_attr) %}
|
|
{% set option_label = attribute(option, label_attr) %}
|
|
{% endif %}
|
|
<option value="{{ option_value }}"{% if selected_value is not none and option_value|string == selected_value|string %} selected{% endif %}>{{ option_label }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</label>
|
|
{% endmacro %}
|
|
|
|
{% macro feedback(id, hidden=True, role="status", extra_classes="") %}
|
|
<p id="{{ id }}" class="feedback{% if hidden %} hidden{% endif %}{% if extra_classes %} {{ extra_classes }}{% endif %}" role="{{ role }}"></p>
|
|
{% endmacro %}
|
|
|
|
{% macro empty_state(id, text, hidden=False, extra_classes="") %}
|
|
<p id="{{ id }}" class="empty-state{% if hidden %} hidden{% endif %}{% if extra_classes %} {{ extra_classes }}{% endif %}">{{ text }}</p>
|
|
{% endmacro %}
|
|
|
|
{% macro table_container(wrapper_id, hidden=False, aria_label=None, extra_classes="", heading=None, heading_level="h3") %}
|
|
<div id="{{ wrapper_id }}" class="table-container{% if hidden %} hidden{% endif %}{% if extra_classes %} {{ extra_classes }}{% endif %}">
|
|
{% if heading %}<{{ heading_level }}>{{ heading }}</{{ heading_level }}>{% endif %}
|
|
<table{% if aria_label %} aria-label="{{ aria_label }}"{% endif %}>
|
|
{{ caller() }}
|
|
</table>
|
|
</div>
|
|
{% endmacro %}
|