260 lines
13 KiB
Twig
260 lines
13 KiB
Twig
{# Cell index: If certain fields get left out, the counter shouldn't change. #}
|
|
{% set ci = 0 %}
|
|
|
|
{# Every time a cell shall be left out the STRG-jumping feature, $ci_offset has
|
|
to be incremented ($ci_offset++) #}
|
|
{% set ci_offset = -1 %}
|
|
|
|
<td class="text-center">
|
|
{# column name #}
|
|
{% include 'columns_definitions/column_name.twig' with {
|
|
'column_number': column_number,
|
|
'ci': ci,
|
|
'ci_offset': ci_offset,
|
|
'column_meta': column_meta,
|
|
'has_central_columns_feature': relation_parameters.centralColumnsFeature is not null,
|
|
'max_rows': max_rows
|
|
} only %}
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
<td class="text-center">
|
|
<select class="column_type" name="field_type[{{ column_number }}]" id="field_{{ column_number }}_{{ ci - ci_offset }}"
|
|
{{- column_meta['column_status'] is defined and not column_meta['column_status']['isEditable'] ? ' disabled' }}>
|
|
{{ get_supported_datatypes(true, type_upper) }}
|
|
</select>
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
<td class="text-center">
|
|
<input id="field_{{ column_number }}_{{ ci - ci_offset }}" type="text" name="field_length[{{ column_number }}]" size="
|
|
{{- length_values_input_size }}" value="{{ length }}" class="textfield">
|
|
<p class="enum_notice" id="enum_notice_{{ column_number }}_{{ ci - ci_offset }}">
|
|
<a href="#" class="open_enum_editor">{% trans 'Edit ENUM/SET values' %}</a>
|
|
</p>
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
<td class="text-center">
|
|
<select name="field_default_type[{{ column_number }}]" id="field_{{ column_number }}_{{ ci - ci_offset }}" class="default_type">
|
|
<option value="NONE"{{ column_meta['DefaultType'] is defined and column_meta['DefaultType'] == 'NONE' ? ' selected' }}>
|
|
{% trans %}None{% context %}for default{% endtrans %}
|
|
</option>
|
|
<option value="USER_DEFINED"{{ column_meta['DefaultType'] is defined and column_meta['DefaultType'] == 'USER_DEFINED' ? ' selected' }}>
|
|
{% trans 'As defined:' %}
|
|
</option>
|
|
<option value="NULL"{{ column_meta['DefaultType'] is defined and column_meta['DefaultType'] == 'NULL' ? ' selected' }}>
|
|
NULL
|
|
</option>
|
|
<option value="CURRENT_TIMESTAMP"{{ column_meta['DefaultType'] is defined and column_meta['DefaultType'] == 'CURRENT_TIMESTAMP' ? ' selected' }}>
|
|
CURRENT_TIMESTAMP
|
|
</option>
|
|
{% if is_uuid_supported() %}
|
|
<option value="UUID"{{ column_meta['DefaultType'] is defined and column_meta['DefaultType'] == 'UUID' ? ' selected' }}>
|
|
UUID
|
|
</option>
|
|
{% endif %}
|
|
</select>
|
|
{% if char_editing == 'textarea' %}
|
|
<textarea name="field_default_value[{{ column_number }}]" cols="15" class="textfield default_value">{{ default_value }}</textarea>
|
|
{% else %}
|
|
<input type="text" name="field_default_value[{{ column_number }}]" size="12" value="{{ default_value }}" class="textfield default_value">
|
|
{% endif %}
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
<td class="text-center">
|
|
{# column collation #}
|
|
<select lang="en" dir="ltr" name="field_collation[{{ column_number }}]" id="field_{{ column_number }}_{{ ci - ci_offset }}">
|
|
<option value=""></option>
|
|
{% for charset in charsets %}
|
|
<optgroup label="{{ charset.name }}" title="{{ charset.description }}">
|
|
{% for collation in charset.collations %}
|
|
<option value="{{ collation.name }}" title="{{ collation.description }}"
|
|
{{- collation.name == column_meta['Collation'] ? ' selected' }}>
|
|
{{- collation.name -}}
|
|
</option>
|
|
{% endfor %}
|
|
</optgroup>
|
|
{% endfor %}
|
|
</select>
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
<td class="text-center">
|
|
{# column attribute #}
|
|
{% include 'columns_definitions/column_attribute.twig' with {
|
|
'column_number': column_number,
|
|
'ci': ci,
|
|
'ci_offset': ci_offset,
|
|
'column_meta': column_meta,
|
|
'extracted_columnspec': extracted_columnspec,
|
|
'submit_attribute': submit_attribute,
|
|
'attribute_types': attribute_types
|
|
} only %}
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
<td class="text-center">
|
|
<input name="field_null[{{ column_number }}]" id="field_{{ column_number }}_{{ ci - ci_offset }}" type="checkbox" value="YES" class="allow_null"
|
|
{{- column_meta['Null'] is not empty and column_meta['Null'] != 'NO' and column_meta['Null'] != 'NOT NULL' ? ' checked' }}>
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
{% if change_column is defined and change_column is not empty %}
|
|
{# column Adjust privileges, Only for 'Edit' Column(s) #}
|
|
<td class="text-center">
|
|
<input name="field_adjust_privileges[{{ column_number }}]" id="field_{{ column_number }}_{{ ci - ci_offset }}" type="checkbox" value="NULL" class="allow_null"
|
|
{%- if privs_available %} checked>
|
|
{%- else %} title="{% trans "You don't have sufficient privileges to perform this operation; Please refer to the documentation for more details" %}" disabled>
|
|
{%- endif %}
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
{% endif %}
|
|
{% if not is_backup %}
|
|
{# column indexes, See my other comment about this 'if'. #}
|
|
<td class="text-center">
|
|
<select name="field_key[{{ column_number }}]" id="field_{{ column_number }}_{{ ci - ci_offset }}" data-index="">
|
|
<option value="none_{{ column_number }}">---</option>
|
|
<option value="primary_{{ column_number }}" title="{% trans "Primary" %}"
|
|
{{- column_meta['Key'] is defined and column_meta['Key'] == 'PRI' ? ' selected' }}>
|
|
PRIMARY
|
|
</option>
|
|
<option value="unique_{{ column_number }}" title="{% trans "Unique" %}"
|
|
{{- column_meta['Key'] is defined and column_meta['Key'] == 'UNI' ? ' selected' }}>
|
|
UNIQUE
|
|
</option>
|
|
<option value="index_{{ column_number }}" title="{% trans "Index" %}"
|
|
{{- column_meta['Key'] is defined and column_meta['Key'] == 'MUL' ? ' selected' }}>
|
|
INDEX
|
|
</option>
|
|
<option value="fulltext_{{ column_number }}" title="{% trans "Fulltext" %}"
|
|
{{- column_meta['Key'] is defined and column_meta['Key'] == 'FULLTEXT' ? ' selected' }}>
|
|
FULLTEXT
|
|
</option>
|
|
<option value="spatial_{{ column_number }}" title="{% trans "Spatial" %}"
|
|
{{- column_meta['Key'] is defined and column_meta['Key'] == 'SPATIAL' ? ' selected' }}>
|
|
SPATIAL
|
|
</option>
|
|
</select>
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
{% endif %}
|
|
<td class="text-center">
|
|
<input name="field_extra[{{ column_number }}]" id="field_{{ column_number }}_{{ ci - ci_offset }}" type="checkbox" value="AUTO_INCREMENT"
|
|
{{- column_meta['Extra'] is defined and column_meta['Extra']|lower == 'auto_increment' ? ' checked' }}>
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
<td class="text-center">
|
|
<textarea id="field_{{ column_number }}_{{ ci - ci_offset }}" rows="1" name="field_comments[{{ column_number }}]" maxlength="{{ max_length }}">
|
|
{{- column_meta['Field'] is defined and comments_map is iterable and comments_map[column_meta['Field']] is defined ? comments_map[column_meta['Field']] -}}
|
|
</textarea>
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
{# column virtuality #}
|
|
{% if is_virtual_columns_supported %}
|
|
<td class="text-center">
|
|
<select name="field_virtuality[{{ column_number }}]" id="field_{{ column_number }}_{{ ci - ci_offset }}" class="virtuality">
|
|
{% for key, value in options %}
|
|
{% set virtuality = column_meta['Extra'] is defined ? column_meta['Extra'] : null %}
|
|
{# Creating a new row on create table sends a Virtuality field #}
|
|
{% set virtuality = column_meta['Virtuality'] is defined ? column_meta['Virtuality'] : virtuality %}
|
|
|
|
<option value="{{ key }}"{{ virtuality is not null and key != '' and virtuality|slice(0, key|length) is same as (key) ? ' selected' }}>
|
|
{{ value }}
|
|
</option>
|
|
{% endfor %}
|
|
</select>
|
|
|
|
{% if char_editing == 'textarea' %}
|
|
<textarea name="field_expression[{{ column_number }}]" cols="15" class="textfield expression">{{ column_meta['Expression'] is defined ? column_meta['Expression'] }}</textarea>
|
|
{% else %}
|
|
<input type="text" name="field_expression[{{ column_number }}]" size="12" value="{{ column_meta['Expression'] is defined ? column_meta['Expression'] }}" placeholder="{% trans 'Expression' %}" class="textfield expression">
|
|
{% endif %}
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
{% endif %}
|
|
{# move column #}
|
|
{% if fields_meta is defined %}
|
|
{% set current_index = 0 %}
|
|
{% set cols = move_columns|length - 1 %}
|
|
{% set break = false %}
|
|
{% for mi in 0..cols %}
|
|
{% if move_columns[mi].name == column_meta['Field'] and not break %}
|
|
{% set current_index = mi %}
|
|
{% set break = true %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
<td class="text-center">
|
|
<select id="field_{{ column_number }}_{{ ci - ci_offset }}" name="field_move_to[{{ column_number }}]" size="1" width="5em">
|
|
<option value="" selected="selected"> </option>
|
|
<option value="-first"{{ current_index == 0 ? ' disabled="disabled"' }}>
|
|
{% trans 'first' %}
|
|
</option>
|
|
{% for mi in 0..move_columns|length - 1 %}
|
|
<option value="{{ move_columns[mi].name }}"
|
|
{{- current_index == mi or current_index == mi + 1 ? ' disabled' }}>
|
|
{{ 'after %s'|trans|format(backquote(move_columns[mi].name|e)) }}
|
|
</option>
|
|
{% endfor %}
|
|
</select>
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
{% endif %}
|
|
|
|
{% if relation_parameters.browserTransformationFeature is not null and relation_parameters.columnCommentsFeature is not null and browse_mime %}
|
|
<td class="text-center">
|
|
<select id="field_{{ column_number }}_{{ ci - ci_offset }}" size="1" name="field_mimetype[{{ column_number }}]">
|
|
<option value=""> </option>
|
|
{% if available_mime['mimetype'] is defined and available_mime['mimetype'] is iterable %}
|
|
{% for media_type in available_mime['mimetype'] %}
|
|
<option value="{{ media_type|replace({'/': '_'}) }}"
|
|
{{- column_meta['Field'] is defined and mime_map[column_meta['Field']]['mimetype'] is defined
|
|
and mime_map[column_meta['Field']]['mimetype'] == media_type|replace({'/': '_'}) ? ' selected' }}>
|
|
{{ media_type|lower }}
|
|
</option>
|
|
{% endfor %}
|
|
{% endif %}
|
|
</select>
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
<td class="text-center">
|
|
<select id="field_{{ column_number }}_{{ ci - ci_offset }}" size="1" name="field_transformation[{{ column_number }}]">
|
|
<option value="" title="{% trans 'None' %}"></option>
|
|
{% if available_mime['transformation'] is defined and available_mime['transformation'] is iterable %}
|
|
{% for mimekey, transform in available_mime['transformation'] %}
|
|
{% set parts = transform|split(':') %}
|
|
<option value="{{ available_mime['transformation_file'][mimekey] }}" title="{{ get_description(available_mime['transformation_file'][mimekey]) }}"
|
|
{{- column_meta['Field'] is defined
|
|
and mime_map[column_meta['Field']]['transformation'] is defined
|
|
and mime_map[column_meta['Field']]['transformation'] is not null
|
|
and mime_map[column_meta['Field']]['transformation'] matches '@' ~ available_mime['transformation_file_quoted'][mimekey] ~ '3?@i' ? ' selected'}}>
|
|
{{ get_name(available_mime['transformation_file'][mimekey]) ~ ' (' ~ parts[0]|lower ~ ':' ~ parts[1] ~ ')' }}
|
|
</option>
|
|
{% endfor %}
|
|
{% endif %}
|
|
</select>
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
<td class="text-center">
|
|
<input id="field_{{ column_number }}_{{ ci - ci_offset }}" type="text" name="field_transformation_options[{{ column_number }}]" size="16" class="textfield" value="
|
|
{{- column_meta['Field'] is defined and mime_map[column_meta['Field']]['transformation_options'] is defined ? mime_map[column_meta['Field']]['transformation_options'] }}">
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
<td class="text-center">
|
|
<select id="field_{{ column_number }}_{{ ci - ci_offset }}" size="1" name="field_input_transformation[{{ column_number }}]">
|
|
<option value="" title="{% trans 'None' %}"></option>
|
|
{% if available_mime['input_transformation'] is defined and available_mime['input_transformation'] is iterable %}
|
|
{% for mimekey, transform in available_mime['input_transformation'] %}
|
|
{% set parts = transform|split(':') %}
|
|
<option value="{{ available_mime['input_transformation_file'][mimekey] }}" title="{{ get_description(available_mime['input_transformation_file'][mimekey]) }}"
|
|
{{- column_meta['Field'] is defined and mime_map[column_meta['Field']]['input_transformation'] is defined
|
|
and mime_map[column_meta['Field']]['input_transformation'] matches '@' ~ available_mime['input_transformation_file_quoted'][mimekey] ~ '3?@i' ? ' selected' }}>
|
|
{{ get_name(available_mime['input_transformation_file'][mimekey]) ~ ' (' ~ parts[0]|lower ~ ':' ~ parts[1] ~ ')' }}
|
|
</option>
|
|
{% endfor %}
|
|
{% endif %}
|
|
</select>
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
<td class="text-center">
|
|
<input id="field_{{ column_number }}_{{ ci - ci_offset }}" type="text" name="field_input_transformation_options[{{ column_number }}]" size="16" class="textfield" value="
|
|
{{- column_meta['Field'] is defined and mime_map[column_meta['Field']]['input_transformation_options'] is defined ? mime_map[column_meta['Field']]['input_transformation_options'] }}">
|
|
{% set ci = ci + 1 %}
|
|
</td>
|
|
{% endif %}
|