aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/templates/columns_definitions
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/templates/columns_definitions')
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_adjust_privileges.twig16
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_attribute.twig21
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_attributes.twig246
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_auto_increment.twig7
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_comment.twig6
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_default.twig35
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_definitions_form.twig155
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_extra.twig7
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_indexes.twig24
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_length.twig11
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_name.twig42
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_null.twig8
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_type.twig8
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/column_virtuality.twig32
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/mime_type.twig17
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/move_column.twig15
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/partitions.twig180
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/table_fields_definitions.twig122
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/transformation.twig26
-rw-r--r--srcs/phpmyadmin/templates/columns_definitions/transformation_option.twig9
20 files changed, 987 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_adjust_privileges.twig b/srcs/phpmyadmin/templates/columns_definitions/column_adjust_privileges.twig
new file mode 100644
index 0000000..d0d1e91
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_adjust_privileges.twig
@@ -0,0 +1,16 @@
+{% if privs_available %}
+ <input name="field_adjust_privileges[{{ column_number }}]"
+ id="field_{{ column_number }}_{{ ci - ci_offset }}"
+ checked="checked"
+ type="checkbox"
+ value="NULL"
+ class="allow_null">
+{% else %}
+ <input name="field_adjust_privileges[{{ column_number }}]"
+ id="field_{{ column_number }}_{{ ci - ci_offset }}"
+ disabled
+ type="checkbox"
+ value="NULL"
+ class="allow_null"
+ title="{% trans "You don't have sufficient privileges to perform this operation; Please refer to the documentation for more details" %}">
+{% endif %}
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_attribute.twig b/srcs/phpmyadmin/templates/columns_definitions/column_attribute.twig
new file mode 100644
index 0000000..905d093
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_attribute.twig
@@ -0,0 +1,21 @@
+{% if submit_attribute is defined and submit_attribute != false %}
+ {% set attribute = submit_attribute %}
+{% elseif column_meta['Extra'] is defined
+ and column_meta['Extra'] == 'on update CURRENT_TIMESTAMP' %}
+ {% set attribute = 'on update CURRENT_TIMESTAMP' %}
+{% elseif extracted_columnspec['attribute'] is defined %}
+ {% set attribute = extracted_columnspec['attribute'] %}
+{% else %}
+ {% set attribute = '' %}
+{% endif %}
+{% set attribute = attribute|upper %}
+<select name="field_attribute[{{ column_number }}]"
+ id="field_{{ column_number }}_{{ ci - ci_offset }}">
+ {% set cnt_attribute_types = attribute_types|length - 1 %}
+ {% for i in 0..cnt_attribute_types %}
+ <option value="{{ attribute_types[i] }}"
+ {{- attribute == attribute_types[i]|upper ? ' selected="selected"' }}>
+ {{ attribute_types[i] }}
+ </option>
+ {% endfor %}
+</select>
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_attributes.twig b/srcs/phpmyadmin/templates/columns_definitions/column_attributes.twig
new file mode 100644
index 0000000..89eef86
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_attributes.twig
@@ -0,0 +1,246 @@
+{# 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="center">
+ {# column name #}
+ {% include 'columns_definitions/column_name.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta,
+ 'cfg_relation': cfg_relation,
+ 'max_rows': max_rows
+ } only %}
+ {% set ci = ci + 1 %}
+</td>
+<td class="center">
+ {# column type #}
+ {% include 'columns_definitions/column_type.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta,
+ 'type_upper': type_upper
+ } only %}
+ {% set ci = ci + 1 %}
+</td>
+<td class="center">
+ {# column length #}
+ {% include 'columns_definitions/column_length.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'length_values_input_size': length_values_input_size,
+ 'length_to_display': length
+ } only %}
+ {% set ci = ci + 1 %}
+</td>
+<td class="center">
+ {# column default #}
+ {% include 'columns_definitions/column_default.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta,
+ 'type_upper': type_upper,
+ 'default_value': default_value,
+ 'char_editing': char_editing
+ } only %}
+ {% set ci = ci + 1 %}
+</td>
+<td class="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="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="center">
+ {# column NULL #}
+ {% include 'columns_definitions/column_null.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta
+ } only %}
+ {% 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="center">
+ {% include 'columns_definitions/column_adjust_privileges.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'privs_available': privs_available
+ } only %}
+ {% set ci = ci + 1 %}
+ </td>
+{% endif %}
+{% if not is_backup %}
+ {# column indexes, See my other comment about this 'if'. #}
+ <td class="center">
+ {% include 'columns_definitions/column_indexes.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta
+ } only %}
+ {% set ci = ci + 1 %}
+ </td>
+{% endif %}
+<td class="center">
+ {# column auto_increment #}
+ {% include 'columns_definitions/column_auto_increment.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta
+ } only %}
+ {% set ci = ci + 1 %}
+</td>
+<td class="center">
+ {# column comments #}
+ {% include 'columns_definitions/column_comment.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'max_length': max_length,
+ 'value': column_meta['Field'] is defined
+ and comments_map is iterable
+ and comments_map[column_meta['Field']] is defined
+ ? comments_map[column_meta['Field']]|e
+ } only %}
+ {% set ci = ci + 1 %}
+</td>
+ {# column virtuality #}
+{% if is_virtual_columns_supported %}
+ <td class="center">
+ {% include 'columns_definitions/column_virtuality.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta,
+ 'char_editing': char_editing,
+ 'expression': column_meta['Expression'] is defined ? column_meta['Expression'],
+ 'options': options
+ } only %}
+ {% 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="center">
+ {% include 'columns_definitions/move_column.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta,
+ 'move_columns': move_columns,
+ 'current_index': current_index
+ } only %}
+ {% set ci = ci + 1 %}
+ </td>
+{% endif %}
+
+{% if cfg_relation['mimework'] and browse_mime and cfg_relation['commwork'] %}
+ <td class="center">
+ {# Column Mime-type #}
+ {% include 'columns_definitions/mime_type.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta,
+ 'available_mime': available_mime,
+ 'mime_map': mime_map
+ } only %}
+ {% set ci = ci + 1 %}
+ </td>
+ <td class="center">
+ {# Column Browser transformation #}
+ {% include 'columns_definitions/transformation.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta,
+ 'available_mime': available_mime,
+ 'mime_map': mime_map,
+ 'type': 'transformation'
+ } only %}
+ {% set ci = ci + 1 %}
+ </td>
+ <td class="center">
+ {# column Transformation options #}
+ {% include 'columns_definitions/transformation_option.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta,
+ 'mime_map': mime_map,
+ 'type_prefix': ''
+ } only %}
+ {% set ci = ci + 1 %}
+ </td>
+ <td class="center">
+ {# Column Input transformation #}
+ {% include 'columns_definitions/transformation.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta,
+ 'available_mime': available_mime,
+ 'mime_map': mime_map,
+ 'type': 'input_transformation'
+ } only %}
+ {% set ci = ci + 1 %}
+ </td>
+ <td class="center">
+ {# column Input transformation options #}
+ {% include 'columns_definitions/transformation_option.twig' with {
+ 'column_number': column_number,
+ 'ci': ci,
+ 'ci_offset': ci_offset,
+ 'column_meta': column_meta,
+ 'mime_map': mime_map,
+ 'type_prefix': 'input_'
+ } only %}
+ {% set ci = ci + 1 %}
+ </td>
+{% endif %}
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_auto_increment.twig b/srcs/phpmyadmin/templates/columns_definitions/column_auto_increment.twig
new file mode 100644
index 0000000..46bfb42
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_auto_increment.twig
@@ -0,0 +1,7 @@
+<input name="field_extra[{{ column_number }}]"
+ id="field_{{ column_number }}_{{ ci - ci_offset }}"
+ {% if column_meta['Extra'] is defined and column_meta['Extra']|lower == 'auto_increment' -%}
+ checked="checked"
+ {%- endif %}
+ type="checkbox"
+ value="AUTO_INCREMENT">
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_comment.twig b/srcs/phpmyadmin/templates/columns_definitions/column_comment.twig
new file mode 100644
index 0000000..653441b
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_comment.twig
@@ -0,0 +1,6 @@
+<textarea id="field_{{ column_number }}_{{ ci - ci_offset }}"
+ rows="1"
+ name="field_comments[{{ column_number }}]"
+ maxlength="{{ max_length }}">
+ {{- value|raw -}}
+</textarea>
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_default.twig b/srcs/phpmyadmin/templates/columns_definitions/column_default.twig
new file mode 100644
index 0000000..dcb6644
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_default.twig
@@ -0,0 +1,35 @@
+{# here we put 'NONE' as the default value of drop-down; otherwise users would
+have problems if they forget to enter the default value (example, for an INT) #}
+{% set translation %}{% trans %}None{% context %}for default{% endtrans %}{% endset %}
+{% set default_options = {
+ 'NONE': translation,
+ 'USER_DEFINED': 'As defined:'|trans,
+ 'NULL': 'NULL',
+ 'CURRENT_TIMESTAMP': 'CURRENT_TIMESTAMP'
+} %}
+
+<select name="field_default_type[{{ column_number }}]"
+ id="field_{{ column_number }}_{{ ci - ci_offset }}"
+ class="default_type">
+ {% for key, value in default_options %}
+ <option value="{{ key }}"
+ {%- if column_meta['DefaultType'] is defined
+ and column_meta['DefaultType'] == key %}
+ selected="selected"
+ {%- endif %}>
+ {{ value }}
+ </option>
+ {% endfor %}
+</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 %}
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_definitions_form.twig b/srcs/phpmyadmin/templates/columns_definitions/column_definitions_form.twig
new file mode 100644
index 0000000..1fd4b64
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_definitions_form.twig
@@ -0,0 +1,155 @@
+<form method="post" action="{{ action }}" class="
+ {{- action == 'tbl_create.php' ? 'create_table' : 'append_fields' -}}
+ _form ajax lock-page">
+ {{ get_hidden_inputs(form_params) }}
+ {# happens when an index has been set on a column #}
+ {# and a column is added to the table creation dialog #}
+ {# This contains a JSON-encoded string #}
+ <input type="hidden" name="primary_indexes" value="
+ {{- primary_indexes is not empty ? primary_indexes : '[]' }}">
+ <input type="hidden" name="unique_indexes" value="
+ {{- unique_indexes is not empty ? unique_indexes : '[]' }}">
+ <input type="hidden" name="indexes" value="
+ {{- indexes is not empty ? indexes : '[]' }}">
+ <input type="hidden" name="fulltext_indexes" value="
+ {{- fulltext_indexes is not empty ? fulltext_indexes : '[]' }}">
+ <input type="hidden" name="spatial_indexes" value="
+ {{- spatial_indexes is not empty ? spatial_indexes : '[]' }}">
+
+ {% if action == 'tbl_create.php' %}
+ <div id="table_name_col_no_outer">
+ <table id="table_name_col_no" class="tdblock">
+ <tr class="vmiddle floatleft">
+ <td>{% trans 'Table name' %}:
+ <input type="text"
+ name="table"
+ size="40"
+ maxlength="64"
+ value="{{ table is defined ? table }}"
+ class="textfield" autofocus required>
+ </td>
+ <td>
+ {% trans 'Add' %}
+ <input type="number"
+ id="added_fields"
+ name="added_fields"
+ size="2"
+ value="1"
+ min="1"
+ onfocus="this.select()">
+ {% trans 'column(s)' %}
+ <input class="btn btn-secondary" type="button"
+ name="submit_num_fields"
+ value="{% trans 'Go' %}">
+ </td>
+ </tr>
+ </table>
+ </div>
+ {% endif %}
+ {% if content_cells is iterable %}
+ {% include 'columns_definitions/table_fields_definitions.twig' with {
+ 'is_backup': is_backup,
+ 'fields_meta': fields_meta,
+ 'mimework': mimework,
+ 'content_cells': content_cells,
+ 'change_column': change_column,
+ 'is_virtual_columns_supported': is_virtual_columns_supported,
+ 'browse_mime': browse_mime,
+ 'server_type': server_type,
+ 'max_rows': max_rows,
+ 'char_editing': char_editing,
+ 'attribute_types': attribute_types,
+ 'privs_available': privs_available,
+ 'max_length': max_length,
+ 'charsets': charsets
+ } only %}
+ {% endif %}
+ {% if action == 'tbl_create.php' %}
+ <div class="responsivetable">
+ <table>
+ <tr class="vtop">
+ <th>{% trans 'Table comments:' %}</th>
+ <td width="25">&nbsp;</td>
+ <th>{% trans 'Collation:' %}</th>
+ <td width="25">&nbsp;</td>
+ <th>
+ {% trans 'Storage Engine:' %}
+ {{ show_mysql_docu('Storage_engines') }}
+ </th>
+ <td width="25">&nbsp;</td>
+ <th>
+ {% trans 'Connection:' %}
+ {{ show_mysql_docu('federated-create-connection') }}
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <input type="text"
+ name="comment"
+ size="40"
+ maxlength="60"
+ value="{{ comment is defined ? comment }}"
+ class="textfield">
+ </td>
+ <td width="25">&nbsp;</td>
+ <td>
+ <select lang="en" dir="ltr" name="tbl_collation">
+ <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 == tbl_collation ? ' selected' }}>
+ {{- collation.name -}}
+ </option>
+ {% endfor %}
+ </optgroup>
+ {% endfor %}
+ </select>
+ </td>
+ <td width="25">&nbsp;</td>
+ <td>
+ {{ get_html_select(
+ 'tbl_storage_engine',
+ null,
+ tbl_storage_engine
+ ) }}
+ </td>
+ <td width="25">&nbsp;</td>
+ <td>
+ <input type="text"
+ name="connection"
+ size="40"
+ value="{{ connection is defined ? connection }}"
+ placeholder="scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name"
+ class="textfield"
+ required="required">
+ </td>
+ </tr>
+ {% if have_partitioning %}
+ <tr class="vtop">
+ <th colspan="5">
+ {% trans 'PARTITION definition:' %}
+ {{ show_mysql_docu('Partitioning') }}
+ </th>
+ </tr>
+ <tr>
+ <td colspan="5">
+ {% include 'columns_definitions/partitions.twig' with {
+ 'partition_details': partition_details
+ } only %}
+ </td>
+ </tr>
+ {% endif %}
+ </table>
+ </div>
+ {% endif %}
+ <fieldset class="tblFooters">
+ <input class="btn btn-secondary preview_sql" type="button"
+ value="{% trans 'Preview SQL' %}">
+ <input class="btn btn-primary" type="submit"
+ name="do_save_data"
+ value="{% trans 'Save' %}">
+ </fieldset>
+ <div id="properties_message"></div>
+</form>
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_extra.twig b/srcs/phpmyadmin/templates/columns_definitions/column_extra.twig
new file mode 100644
index 0000000..7f61f5c
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_extra.twig
@@ -0,0 +1,7 @@
+<input name="col_extra[{{ column_number }}]"
+ id="field_{{ column_number }}_{{ ci - ci_offset }}"
+ {% if column_meta['Extra'] is not empty and column_meta['Extra'] == 'auto_increment' -%}
+ checked="checked"
+ {%- endif %}
+ type="checkbox"
+ value="auto_increment">
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_indexes.twig b/srcs/phpmyadmin/templates/columns_definitions/column_indexes.twig
new file mode 100644
index 0000000..3980229
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_indexes.twig
@@ -0,0 +1,24 @@
+<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="selected"' }}>
+ PRIMARY
+ </option>
+ <option value="unique_{{ column_number }}" title="{% trans "Unique" %}"
+ {{- column_meta['Key'] is defined and column_meta['Key'] == 'UNI' ? ' selected="selected"' }}>
+ UNIQUE
+ </option>
+ <option value="index_{{ column_number }}" title="{% trans "Index" %}"
+ {{- column_meta['Key'] is defined and column_meta['Key'] == 'MUL' ? ' selected="selected"' }}>
+ INDEX
+ </option>
+ <option value="fulltext_{{ column_number }}" title="{% trans "Fulltext" %}"
+ {{- column_meta['Key'] is defined and column_meta['Key'] == 'FULLTEXT' ? ' selected="selected"' }}>
+ FULLTEXT
+ </option>
+ <option value="spatial_{{ column_number }}" title="{% trans "Spatial" %}"
+ {{- column_meta['Key'] is defined and column_meta['Key'] == 'SPATIAL' ? ' selected="selected"' }}>
+ SPATIAL
+ </option>
+</select>
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_length.twig b/srcs/phpmyadmin/templates/columns_definitions/column_length.twig
new file mode 100644
index 0000000..ef7e5f0
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_length.twig
@@ -0,0 +1,11 @@
+<input id="field_{{ column_number }}_{{ ci - ci_offset }}"
+ type="text"
+ name="field_length[{{ column_number }}]"
+ size="{{ length_values_input_size }}"
+ value="{{ length_to_display }}"
+ 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>
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_name.twig b/srcs/phpmyadmin/templates/columns_definitions/column_name.twig
new file mode 100644
index 0000000..a0a31ad
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_name.twig
@@ -0,0 +1,42 @@
+{% set title = '' %}
+{% if column_meta['column_status'] is defined %}
+ {% if column_meta['column_status']['isReferenced'] %}
+ {% set title = title ~ 'Referenced by %s.'|trans|format(
+ column_meta['column_status']['references']|join(',')
+ ) %}
+ {% endif %}
+ {% if column_meta['column_status']['isForeignKey'] %}
+ {% if title is not empty %}
+ {% set title = title ~ '\n'|raw %}
+ {% endif %}
+ {% set title = title ~ 'Is a foreign key.'|trans %}
+ {% endif %}
+{% endif %}
+{% if title is empty %}
+ {% set title = 'Column'|trans %}
+{% endif %}
+
+<input id="field_{{ column_number }}_{{ ci - ci_offset }}"
+ {% if column_meta['column_status'] is defined
+ and not column_meta['column_status']['isEditable'] %}
+ disabled="disabled"
+ {% endif %}
+ type="text"
+ name="field_name[{{ column_number }}]"
+ maxlength="64"
+ class="textfield"
+ title="{{ title }}"
+ size="10"
+ value="{{ column_meta['Field'] is defined ? column_meta['Field'] }}">
+
+{% if cfg_relation['centralcolumnswork']
+ and not (column_meta['column_status'] is defined
+ and not column_meta['column_status']['isEditable']) %}
+ <p class="column_name" id="central_columns_{{ column_number }}_{{ ci - ci_offset }}">
+ <a data-maxrows="{{ max_rows }}"
+ href="#"
+ class="central_columns_dialog">
+ {% trans 'Pick from Central Columns' %}
+ </a>
+ </p>
+{% endif %}
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_null.twig b/srcs/phpmyadmin/templates/columns_definitions/column_null.twig
new file mode 100644
index 0000000..5afd649
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_null.twig
@@ -0,0 +1,8 @@
+<input name="field_null[{{ column_number }}]"
+ id="field_{{ column_number }}_{{ ci - ci_offset }}"
+ {% if column_meta['Null'] is not empty and column_meta['Null'] != 'NO' and column_meta['Null'] != 'NOT NULL' -%}
+ checked="checked"
+ {%- endif %}
+ type="checkbox"
+ value="YES"
+ class="allow_null">
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_type.twig b/srcs/phpmyadmin/templates/columns_definitions/column_type.twig
new file mode 100644
index 0000000..e74eb0e
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_type.twig
@@ -0,0 +1,8 @@
+<select class="column_type"
+ name="field_type[{{ column_number }}]"
+ id="field_{{ column_number }}_{{ ci - ci_offset }}"
+ {%- if column_meta['column_status'] is defined and not column_meta['column_status']['isEditable'] -%}
+ disabled="disabled"
+ {%- endif %}>
+ {{ get_supported_datatypes(true, type_upper) }}
+</select>
diff --git a/srcs/phpmyadmin/templates/columns_definitions/column_virtuality.twig b/srcs/phpmyadmin/templates/columns_definitions/column_virtuality.twig
new file mode 100644
index 0000000..96f020e
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/column_virtuality.twig
@@ -0,0 +1,32 @@
+<select name="field_virtuality[{{ column_number }}]"
+ id="field_{{ column_number }}_{{ ci - ci_offset }}"
+ class="virtuality">
+ {% for key, value in options %}
+ <option value="{{ key }}"
+ {% set key_length = key|length %}
+ {%- if column_meta['Extra'] is defined
+ and key != ''
+ and column_meta['Extra']|slice(0,key_length) is same as (key) %}
+ selected="selected"
+ {%- endif %}>
+ {{ value }}
+ </option>
+ {% endfor %}
+</select>
+
+{% if char_editing == 'textarea' %}
+ {% apply spaceless %}
+ <textarea name="field_expression[{{ column_number }}]"
+ cols="15"
+ class="textfield expression">
+ {{ expression }}
+ </textarea>
+ {% endapply %}
+{% else %}
+ <input type="text"
+ name="field_expression[{{ column_number }}]"
+ size="12"
+ value="{{ expression }}"
+ placeholder="{% trans 'Expression' %}"
+ class="textfield expression">
+{% endif %}
diff --git a/srcs/phpmyadmin/templates/columns_definitions/mime_type.twig b/srcs/phpmyadmin/templates/columns_definitions/mime_type.twig
new file mode 100644
index 0000000..ef395b6
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/mime_type.twig
@@ -0,0 +1,17 @@
+<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 mimetype in available_mime['mimetype'] %}
+ {% set checked = column_meta['Field'] is defined
+ and mime_map[column_meta['Field']]['mimetype'] is defined
+ and mime_map[column_meta['Field']]['mimetype'] == mimetype|replace({'/': '_'})
+ ? ' selected' %}
+ <option value="{{ mimetype|replace({'/': '_'}) }}"{{ checked }}>
+ {{ mimetype|lower }}
+ </option>
+ {% endfor %}
+ {% endif %}
+</select>
diff --git a/srcs/phpmyadmin/templates/columns_definitions/move_column.twig b/srcs/phpmyadmin/templates/columns_definitions/move_column.twig
new file mode 100644
index 0000000..7c0b3f4
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_definitions/move_column.twig
@@ -0,0 +1,15 @@
+<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="disabled"' }}>
+ {{ 'after %s'|trans|format(backquote(move_columns[mi].name|e)) }}
+ </option>
+ {% endfor %}
+</select>
diff --git a/srcs/phpmyadmin/templates/columns_definitions/partitions.twig b/srcs/phpmyadmin/templates/columns_definitions/partitions.twig
new file mode 100644
index 0000000..b8c88af
--- /dev/null
+++ b/srcs/phpmyadmin/templates/columns_d