99 lines
4.0 KiB
Twig
99 lines
4.0 KiB
Twig
|
{# Get inputbox based on different column types (Foreign key, geometrical, enum) #}
|
||
|
{% if foreigners and search_column_in_foreigners(foreigners, column_name) %}
|
||
|
{% if foreign_data['disp_row'] is iterable %}
|
||
|
<select name="criteriaValues[{{ column_index }}]"
|
||
|
id="{{ column_id }}{{ column_index }}">
|
||
|
{{ foreign_dropdown(
|
||
|
foreign_data['disp_row'],
|
||
|
foreign_data['foreign_field'],
|
||
|
foreign_data['foreign_display'],
|
||
|
'',
|
||
|
foreign_max_limit
|
||
|
) }}
|
||
|
</select>
|
||
|
{% elseif foreign_data['foreign_link'] == true %}
|
||
|
<input type="text"
|
||
|
id="{{ column_id }}{{ column_index }}"
|
||
|
name="criteriaValues[{{ column_index }}]"
|
||
|
id="field_{{ column_name_hash }}[{{ column_index }}]"
|
||
|
class="textfield"
|
||
|
{% if criteria_values[column_index] is defined %}
|
||
|
value="{{ criteria_values[column_index] }}"
|
||
|
{% endif %}>
|
||
|
<a class="ajax browse_foreign" href="{{ url('/browse-foreigners') }}" data-post="
|
||
|
{{- get_common({'db': db, 'table': table}, '', false) -}}
|
||
|
&field={{ column_name|url_encode }}&fieldkey=
|
||
|
{{- column_index }}&fromsearch=1">
|
||
|
{{ get_icon('b_browse', 'Browse foreign values'|trans) }}
|
||
|
</a>
|
||
|
{% endif %}
|
||
|
{% elseif column_type in get_gis_datatypes() %}
|
||
|
<input type="text"
|
||
|
name="criteriaValues[{{ column_index }}]"
|
||
|
size="40"
|
||
|
class="textfield"
|
||
|
id="field_{{ column_index }}">
|
||
|
{% if in_fbs %}
|
||
|
{% set edit_str = get_icon('b_edit', 'Edit/Insert'|trans) %}
|
||
|
<span class="open_search_gis_editor">
|
||
|
{{ link_or_button(url('/gis-data-editor'), [], edit_str, [], '_blank') }}
|
||
|
</span>
|
||
|
{% endif %}
|
||
|
{% elseif column_type starts with 'enum'
|
||
|
or (column_type starts with 'set' and in_zoom_search_edit) %}
|
||
|
{% set in_zoom_search_edit = false %}
|
||
|
{% set value = parse_enum_set_values(column_type) %}
|
||
|
{% set cnt_value = value|length %}
|
||
|
{#
|
||
|
Enum in edit mode --> dropdown
|
||
|
Enum in search mode --> multiselect
|
||
|
Set in edit mode --> multiselect
|
||
|
Set in search mode --> input (skipped here, so the 'else' section would handle it)
|
||
|
#}
|
||
|
{% if (column_type starts with 'enum' and not in_zoom_search_edit)
|
||
|
or (column_type starts with 'set' and in_zoom_search_edit) %}
|
||
|
<select name="criteriaValues[{{ column_index }}]"
|
||
|
id="{{ column_id }}{{ column_index }}">
|
||
|
{% else %}
|
||
|
<select name="criteriaValues[{{ column_index }}]"
|
||
|
id="{{ column_id }}{{ column_index }}"
|
||
|
multiple="multiple"
|
||
|
size="{{ min(3, cnt_value) }}">
|
||
|
{% endif %}
|
||
|
{# Add select options #}
|
||
|
<option value=""></option>
|
||
|
{% for i in 0..cnt_value - 1 %}
|
||
|
{% if criteria_values[column_index] is defined
|
||
|
and criteria_values[column_index] is iterable
|
||
|
and value[i] in criteria_values[column_index] %}
|
||
|
<option value="{{ value[i]|raw }}" selected>
|
||
|
{{ value[i]|raw }}
|
||
|
</option>
|
||
|
{% else %}
|
||
|
<option value="{{ value[i]|raw }}">
|
||
|
{{ value[i]|raw }}
|
||
|
</option>
|
||
|
{% endif %}
|
||
|
{% endfor %}
|
||
|
</select>
|
||
|
{% else %}
|
||
|
{% set the_class = 'textfield' %}
|
||
|
{% if column_type == 'date' %}
|
||
|
{% set the_class = the_class ~ ' datefield' %}
|
||
|
{% elseif column_type == 'datetime' or column_type starts with 'timestamp' %}
|
||
|
{% set the_class = the_class ~ ' datetimefield' %}
|
||
|
{% elseif column_type starts with 'bit' %}
|
||
|
{% set the_class = the_class ~ ' bit' %}
|
||
|
{% endif %}
|
||
|
<input type="text"
|
||
|
name="criteriaValues[{{ column_index }}]"
|
||
|
data-type="{{ column_data_type }}"
|
||
|
{{ html_attributes|raw }}
|
||
|
size="40"
|
||
|
class="{{ the_class }}"
|
||
|
id="{{ column_id }}{{ column_index }}"
|
||
|
{% if criteria_values[column_index] is defined %}
|
||
|
value="{{ criteria_values[column_index] }}"
|
||
|
{%- endif %}>
|
||
|
{% endif %}
|