Refactor render_combobox macro: improve code formatting and readability

This commit is contained in:
Yaro Kasear 2025-07-03 10:51:42 -05:00
parent 76d2799e05
commit 81b220ff44

View file

@ -1,7 +1,6 @@
{% import "fragments/_icon_fragment.html" as icons %} {% import "fragments/_icon_fragment.html" as icons %}
{% macro render_combobox(id, options, label=none, placeholder=none, onAdd=none, onRemove=none, onEdit=none, {% macro render_combobox(id, options, label=none, placeholder=none, onAdd=none, onRemove=none, onEdit=none, data_attributes=none) %}
data_attributes=none) %}
<!-- Combobox Widget Fragment --> <!-- Combobox Widget Fragment -->
{% if label %} {% if label %}
@ -9,8 +8,7 @@ data_attributes=none) %}
{% endif %} {% endif %}
<div class="combo-box-widget" id="{{ id }}-container"> <div class="combo-box-widget" id="{{ id }}-container">
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control rounded-bottom-0" id="{{ id }}-input" {% if placeholder %} <input type="text" class="form-control rounded-bottom-0" id="{{ id }}-input"{% if placeholder %} placeholder="{{ placeholder }}"{% endif %}>
placeholder="{{ placeholder }}" {% endif %}>
<button type="button" class="btn btn-primary rounded-bottom-0" id="{{ id }}-add" disabled> <button type="button" class="btn btn-primary rounded-bottom-0" id="{{ id }}-add" disabled>
{{ icons.render_icon('plus-lg', 16, 'icon-state') }} {{ icons.render_icon('plus-lg', 16, 'icon-state') }}
</button> </button>
@ -20,8 +18,14 @@ data_attributes=none) %}
</div> </div>
<select class="form-select border-top-0 rounded-top-0" id="{{ id }}-list" name="{{ id }}" size="10" multiple> <select class="form-select border-top-0 rounded-top-0" id="{{ id }}-list" name="{{ id }}" size="10" multiple>
{% for option in options %} {% for option in options %}
<option value="{{ option.id }}" {% if data_attributes %} {% for key, data_attr in data_attributes.items() %} {% <option value="{{ option.id }}"
if option[key] is defined %} data-{{ data_attr }}="{{ option[key] }}" {% endif %} {% endfor %} {% endif %}> {% if data_attributes %}
{% for key, data_attr in data_attributes.items() %}
{% if option[key] is defined %}
data-{{ data_attr }}="{{ option[key] }}"
{% endif %}
{% endfor %}
{% endif %}>
{{ option.name }} {{ option.name }}
</option> </option>
{% endfor %} {% endfor %}