Make form.select generic
This commit is contained in:
parent
50e6c8bf9c
commit
90a72130df
@ -43,26 +43,25 @@
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro select(name, item, field, metadata_list, nullable=true, icon=none, delete=false) %}
|
||||
{% macro select(name, id, prefix, url, value, metadata_list, nullable=true, icon=none, delete=false) %}
|
||||
{% if g.login.is_authenticated() %}
|
||||
{% set prefix=metadata_list.as_prefix() %}
|
||||
<label class="visually-hidden" for="{{ prefix }}-{{ item.fields.id }}">{{ name }}</label>
|
||||
<label class="visually-hidden" for="{{ prefix }}-{{ id }}">{{ name }}</label>
|
||||
<div class="input-group">
|
||||
{% if icon %}<span class="input-group-text"><i class="ri-{{ icon }} me-1"></i><span class="ms-1 d-none d-md-inline"> {{ name }}</span></span>{% endif %}
|
||||
<select id="{{ prefix }}-{{ item.fields.id }}" class="form-select"
|
||||
<select id="{{ prefix }}-{{ id }}" class="form-select"
|
||||
{% if not delete %}
|
||||
data-changer-id="{{ item.fields.id }}" data-changer-prefix="{{ prefix }}" data-changer-url="{{ metadata_list.url_for_set_value(item.fields.id) }}"
|
||||
data-changer-id="{{ id }}" data-changer-prefix="{{ prefix }}" data-changer-url="{{ url }}"
|
||||
{% else %}
|
||||
disabled
|
||||
{% endif %}
|
||||
autocomplete="off">
|
||||
{% if nullable %}<option value="" {% if item.fields[field] is none %}selected{% endif %}><i>None</i></option>{% endif %}
|
||||
{% if nullable %}<option value="" {% if value is none %}selected{% endif %}><i>None</i></option>{% endif %}
|
||||
{% for metadata in metadata_list %}
|
||||
<option value="{{ metadata.fields.id }}" {% if metadata.fields.id == item.fields[field] %}selected{% endif %}>{{ metadata.fields.name }}</option>
|
||||
<option value="{{ metadata.fields.id }}" {% if metadata.fields.id == value %}selected{% endif %}>{{ metadata.fields.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<span id="status-{{ prefix }}-{{ item.fields.id }}" class="input-group-text ri-save-line"></span>
|
||||
<button id="clear-{{ prefix }}-{{ item.fields.id }}" type="button" class="btn btn-sm btn-light btn-outline-danger border"><i class="ri-eraser-line"></i></button>
|
||||
<span id="status-{{ prefix }}-{{ id }}" class="input-group-text ri-save-line"></span>
|
||||
<button id="clear-{{ prefix }}-{{ id }}" type="button" class="btn btn-sm btn-light btn-outline-danger border"><i class="ri-eraser-line"></i></button>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
@ -25,7 +25,7 @@
|
||||
</div>
|
||||
<div class="col-12 flex-grow-1">
|
||||
{% if brickset_purchase_locations | length %}
|
||||
{{ form.select('Location', item, 'purchase_location', brickset_purchase_locations, icon='building-line', delete=delete) }}
|
||||
{{ form.select('Location', item.fields.id, brickset_purchase_locations.as_prefix(), brickset_purchase_locations.url_for_set_value(item.fields.id), item.fields.purchase_location, brickset_purchase_locations, icon='building-line', delete=delete) }}
|
||||
{% else %}
|
||||
<i class="ri-error-warning-line"></i> No purchase location found.
|
||||
{% endif %}
|
||||
@ -36,7 +36,7 @@
|
||||
{{ accordion.footer() }}
|
||||
{{ accordion.header('Storage', 'storage', 'set-management', icon='archive-2-line') }}
|
||||
{% if brickset_storages | length %}
|
||||
{{ form.select('Storage', item, 'storage', brickset_storages, delete=delete) }}
|
||||
{{ form.select('Storage', item.fields.id, brickset_storages.as_prefix(), brickset_storages.url_for_set_value(item.fields.id), item.fields.storage, brickset_storages, icon='building-line', delete=delete) }}
|
||||
{% else %}
|
||||
<p class="text-center"><i class="ri-error-warning-line"></i> No storage found.</p>
|
||||
{% endif %}
|
||||
|
Loading…
Reference in New Issue
Block a user