{# 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">&nbsp;</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="">&nbsp;</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 %}
