init web ems all
This commit is contained in:
31
phpMyAdmin/templates/table/structure/action_row_in_structure_table.twig
Executable file
31
phpMyAdmin/templates/table/structure/action_row_in_structure_table.twig
Executable file
@@ -0,0 +1,31 @@
|
||||
<li class="{{ class }}">
|
||||
{% if type == 'text'
|
||||
or type == 'blob'
|
||||
or tbl_storage_engine == 'ARCHIVE'
|
||||
or has_field %}
|
||||
{{ titles['No' ~ action]|raw }}
|
||||
{% else %}
|
||||
<a rel="samepage" class="ajax add_key print_ignore
|
||||
{%- if has_link_class %}
|
||||
add_primary_key_anchor
|
||||
{%- elseif action == 'Index' %}
|
||||
add_index_anchor
|
||||
{%- elseif action == 'Unique' %}
|
||||
add_unique_anchor
|
||||
{%- elseif action == 'Spatial' %}
|
||||
add_spatial_anchor
|
||||
{%- endif %}" href="tbl_structure.php" data-post="{{ url_query|raw -}}
|
||||
&add_key=1&sql_query=
|
||||
{{- ('ALTER TABLE ' ~
|
||||
Util_backquote(table) ~
|
||||
(is_primary ? (primary ? ' DROP PRIMARY KEY,')) ~
|
||||
' ' ~
|
||||
syntax ~
|
||||
'(' ~
|
||||
Util_backquote(row['Field']) ~
|
||||
');')|url_encode -}}
|
||||
&message_to_show={{ message|format(row['Field']|e)|url_encode }}">
|
||||
{{ titles[action]|raw }}
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
140
phpMyAdmin/templates/table/structure/actions_in_table_structure.twig
Executable file
140
phpMyAdmin/templates/table/structure/actions_in_table_structure.twig
Executable file
@@ -0,0 +1,140 @@
|
||||
<td class="print_ignore"><ul class="table-structure-actions resizable-menu">
|
||||
{% if hide_structure_actions %}
|
||||
<li class="submenu shown">
|
||||
<a href="#" class="tab nowrap">{{ Util_getIcon('b_more', 'More'|trans) }}</a>
|
||||
<ul>
|
||||
{% endif %}
|
||||
{# Add primary #}
|
||||
{% include 'table/structure/action_row_in_structure_table.twig' with {
|
||||
'type': type,
|
||||
'tbl_storage_engine': tbl_storage_engine,
|
||||
'class': 'primary nowrap',
|
||||
'has_field': primary and primary.hasColumn(field_name),
|
||||
'has_link_class': true,
|
||||
'url_query': url_query,
|
||||
'primary': primary,
|
||||
'syntax': 'ADD PRIMARY KEY',
|
||||
'message': 'A primary key has been added on %s.'|trans,
|
||||
'action': 'Primary',
|
||||
'titles': titles,
|
||||
'row': row,
|
||||
'is_primary': true,
|
||||
'table': table
|
||||
} only %}
|
||||
|
||||
{# Add unique #}
|
||||
{% include 'table/structure/action_row_in_structure_table.twig' with {
|
||||
'type': type,
|
||||
'tbl_storage_engine': tbl_storage_engine,
|
||||
'class': 'add_unique unique nowrap',
|
||||
'has_field': field_name in columns_with_unique_index,
|
||||
'has_link_class': false,
|
||||
'url_query': url_query,
|
||||
'primary': primary,
|
||||
'syntax': 'ADD UNIQUE',
|
||||
'message': 'An index has been added on %s.'|trans,
|
||||
'action': 'Unique',
|
||||
'titles': titles,
|
||||
'row': row,
|
||||
'is_primary': false,
|
||||
'table': table
|
||||
} only %}
|
||||
|
||||
{# Add index #}
|
||||
{% include 'table/structure/action_row_in_structure_table.twig' with {
|
||||
'type': type,
|
||||
'tbl_storage_engine': tbl_storage_engine,
|
||||
'class': 'add_index nowrap',
|
||||
'has_field': false,
|
||||
'has_link_class': false,
|
||||
'url_query': url_query,
|
||||
'primary': primary,
|
||||
'syntax': 'ADD INDEX',
|
||||
'message': 'An index has been added on %s.'|trans,
|
||||
'action': 'Index',
|
||||
'titles': titles,
|
||||
'row': row,
|
||||
'is_primary': false,
|
||||
'table': table
|
||||
} only %}
|
||||
|
||||
{# Add spatial #}
|
||||
{% set spatial_types = [
|
||||
'geometry',
|
||||
'point',
|
||||
'linestring',
|
||||
'polygon',
|
||||
'multipoint',
|
||||
'multilinestring',
|
||||
'multipolygon',
|
||||
'geomtrycollection'
|
||||
] %}
|
||||
{% include 'table/structure/action_row_in_structure_table.twig' with {
|
||||
'type': type,
|
||||
'tbl_storage_engine': tbl_storage_engine,
|
||||
'class': 'spatial nowrap',
|
||||
'has_field': type not in spatial_types and
|
||||
(tbl_storage_engine == 'MYISAM' or mysql_int_version >= 50705),
|
||||
'has_link_class': false,
|
||||
'url_query': url_query,
|
||||
'primary': primary,
|
||||
'syntax': 'ADD SPATIAL',
|
||||
'message': 'An index has been added on %s.'|trans,
|
||||
'action': 'Spatial',
|
||||
'titles': titles,
|
||||
'row': row,
|
||||
'is_primary': false,
|
||||
'table': table
|
||||
} only %}
|
||||
|
||||
{# FULLTEXT is possible on TEXT, CHAR and VARCHAR #}
|
||||
<li class="fulltext nowrap">
|
||||
{% if tbl_storage_engine is not empty and (
|
||||
tbl_storage_engine == 'MYISAM'
|
||||
or tbl_storage_engine == 'ARIA'
|
||||
or tbl_storage_engine == 'MARIA'
|
||||
or (tbl_storage_engine == 'INNODB' and mysql_int_version >= 50604)
|
||||
) and ('text' in type or 'char' in type) %}
|
||||
<a rel="samepage" class="ajax add_key add_fulltext_anchor" href="tbl_structure.php"
|
||||
data-post="{{- url_query|raw }}&add_key=1&sql_query=
|
||||
{{- ('ALTER TABLE ' ~ Util_backquote(table)
|
||||
~ ' ADD FULLTEXT(' ~ Util_backquote(row['Field'])
|
||||
~ ');')|url_encode }}&message_to_show=
|
||||
{{- ('An index has been added on %s.'|trans|format(row['Field']|e))|url_encode }}">
|
||||
{{ titles['IdxFulltext']|raw }}
|
||||
</a>
|
||||
{% else %}
|
||||
{{ titles['NoIdxFulltext']|raw }}
|
||||
{% endif %}
|
||||
</li>
|
||||
|
||||
{# Distinct value action #}
|
||||
<li class="browse nowrap">
|
||||
<a href="sql.php" data-post="{{ url_query|raw }}&sql_query=
|
||||
{{- ('SELECT COUNT(*) AS ' ~ Util_backquote('Rows'|trans)
|
||||
~ ', ' ~ Util_backquote(row['Field'])
|
||||
~ ' FROM ' ~ Util_backquote(table)
|
||||
~ ' GROUP BY ' ~ Util_backquote(row['Field'])
|
||||
~ ' ORDER BY ' ~ Util_backquote(row['Field']))|url_encode -}}
|
||||
&is_browse_distinct=1">
|
||||
{{ titles['DistinctValues']|raw }}
|
||||
</a>
|
||||
</li>
|
||||
{% if central_columns_work %}
|
||||
<li class="browse nowrap">
|
||||
{% if is_in_central_columns %}
|
||||
<a href="#" class="central_columns remove_button">
|
||||
{{ Util_getIcon('centralColumns_delete', 'Remove from central columns'|trans) }}
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="#" class="central_columns add_button">
|
||||
{{ Util_getIcon('centralColumns_add', 'Add to central columns'|trans) }}
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if hide_structure_actions %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul></td>
|
||||
24
phpMyAdmin/templates/table/structure/add_column.twig
Executable file
24
phpMyAdmin/templates/table/structure/add_column.twig
Executable file
@@ -0,0 +1,24 @@
|
||||
<form method="post" action="tbl_addfield.php" id="addColumns" name="addColumns">
|
||||
{{ Url_getHiddenInputs(db, table) }}
|
||||
{% if Util_showIcons('ActionLinksMode') %}
|
||||
{{ Util_getImage('b_insrow', 'Add column'|trans) }}
|
||||
{% endif %}
|
||||
{% set num_fields -%}
|
||||
<input type="number" name="num_fields" value="1" onfocus="this.select()" min="1" required />
|
||||
{%- endset %}
|
||||
{{ 'Add %s column(s)'|trans|format(num_fields)|raw }}
|
||||
<input type="hidden" name="field_where" value="after"/>
|
||||
{# I tried displaying the drop-down inside the label but with Firefox the drop-down was blinking #}
|
||||
<select name="after_field">
|
||||
<option value="first" data-pos="first">
|
||||
{% trans 'at beginning of table' %}
|
||||
</option>
|
||||
{% for one_column_name in columns_list %}
|
||||
<option value="{{ one_column_name }}"
|
||||
{{- loop.revindex0 == 0 ? ' selected="selected"' }}>
|
||||
{{ 'after %s'|trans|format(one_column_name) }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<input type="submit" value="{% trans 'Go' %}" />
|
||||
</form>
|
||||
93
phpMyAdmin/templates/table/structure/check_all_table_column.twig
Executable file
93
phpMyAdmin/templates/table/structure/check_all_table_column.twig
Executable file
@@ -0,0 +1,93 @@
|
||||
<div class="print_ignore">
|
||||
{% include 'select_all.twig' with {
|
||||
'pma_theme_image': pma_theme_image,
|
||||
'text_dir': text_dir,
|
||||
'form_name': 'fieldsForm'
|
||||
} only %}
|
||||
|
||||
{{ Util_getButtonOrImage(
|
||||
'submit_mult',
|
||||
'mult_submit',
|
||||
'Browse'|trans,
|
||||
'b_browse',
|
||||
'browse'
|
||||
) }}
|
||||
|
||||
{% if not tbl_is_view and not db_is_system_schema %}
|
||||
{{ Util_getButtonOrImage(
|
||||
'submit_mult',
|
||||
'mult_submit change_columns_anchor ajax',
|
||||
'Change'|trans,
|
||||
'b_edit',
|
||||
'change'
|
||||
) }}
|
||||
{{ Util_getButtonOrImage(
|
||||
'submit_mult',
|
||||
'mult_submit',
|
||||
'Drop'|trans,
|
||||
'b_drop',
|
||||
'drop'
|
||||
) }}
|
||||
|
||||
{% if tbl_storage_engine != 'ARCHIVE' %}
|
||||
{{ Util_getButtonOrImage(
|
||||
'submit_mult',
|
||||
'mult_submit',
|
||||
'Primary'|trans,
|
||||
'b_primary',
|
||||
'primary'
|
||||
) }}
|
||||
{{ Util_getButtonOrImage(
|
||||
'submit_mult',
|
||||
'mult_submit',
|
||||
'Unique'|trans,
|
||||
'b_unique',
|
||||
'unique'
|
||||
) }}
|
||||
{{ Util_getButtonOrImage(
|
||||
'submit_mult',
|
||||
'mult_submit',
|
||||
'Index'|trans,
|
||||
'b_index',
|
||||
'index'
|
||||
) }}
|
||||
{{ Util_getButtonOrImage(
|
||||
'submit_mult',
|
||||
'mult_submit',
|
||||
'Fulltext'|trans,
|
||||
'b_ftext',
|
||||
'ftext'
|
||||
) }}
|
||||
|
||||
{% if tbl_storage_engine is not empty and (
|
||||
tbl_storage_engine == 'MYISAM'
|
||||
or tbl_storage_engine == 'ARIA'
|
||||
or tbl_storage_engine == 'MARIA') %}
|
||||
{{ Util_getButtonOrImage(
|
||||
'submit_mult',
|
||||
'mult_submit',
|
||||
'Fulltext'|trans,
|
||||
'b_ftext',
|
||||
'ftext'
|
||||
) }}
|
||||
{% endif %}
|
||||
|
||||
{% if central_columns_work %}
|
||||
{{ Util_getButtonOrImage(
|
||||
'submit_mult',
|
||||
'mult_submit',
|
||||
'Add to central columns'|trans,
|
||||
'centralColumns_add',
|
||||
'add_to_central_columns'
|
||||
) }}
|
||||
{{ Util_getButtonOrImage(
|
||||
'submit_mult',
|
||||
'mult_submit',
|
||||
'Remove from central columns'|trans,
|
||||
'centralColumns_delete',
|
||||
'remove_from_central_columns'
|
||||
) }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
145
phpMyAdmin/templates/table/structure/display_partitions.twig
Executable file
145
phpMyAdmin/templates/table/structure/display_partitions.twig
Executable file
@@ -0,0 +1,145 @@
|
||||
<div id="partitions">
|
||||
<fieldset>
|
||||
<legend>
|
||||
{% trans 'Partitions' %}
|
||||
{{ Util_showMySQLDocu('partitioning') }}
|
||||
</legend>
|
||||
{% if partitions is empty %}
|
||||
{{ Message_notice('No partitioning defined!'|trans) }}
|
||||
{% else %}
|
||||
<p>
|
||||
{% trans 'Partitioned by:' %}
|
||||
<code>{{ partition_method }}({{ partition_expression }})</code>
|
||||
</p>
|
||||
{% if has_sub_partitions %}
|
||||
<p>
|
||||
{% trans 'Sub partitioned by:' %}
|
||||
<code>{{ sub_partition_method }}({{ sub_partition_expression }})</code>
|
||||
<p>
|
||||
{% endif %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2">#</th>
|
||||
<th>{% trans 'Partition' %}</th>
|
||||
{% if has_description %}
|
||||
<th>{% trans 'Expression' %}</th>
|
||||
{% endif %}
|
||||
<th>{% trans 'Rows' %}</th>
|
||||
<th>{% trans 'Data length' %}</th>
|
||||
<th>{% trans 'Index length' %}</th>
|
||||
<th>{% trans 'Comment' %}</th>
|
||||
<th colspan="{{ range_or_list ? '7' : '6' }}">
|
||||
{% trans 'Action' %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for partition in partitions %}
|
||||
<tr class="noclick{{ has_sub_partitions ? ' marked' }}">
|
||||
{% if has_sub_partitions %}
|
||||
<td>{{ partition.getOrdinal() }}</td>
|
||||
<td></td>
|
||||
{% else %}
|
||||
<td colspan="2">{{ partition.getOrdinal() }}</td>
|
||||
{% endif %}
|
||||
<th>{{ partition.getName() }}</th>
|
||||
{% if has_description %}
|
||||
<td>
|
||||
<code>
|
||||
{{- partition.getExpression() -}}
|
||||
{{- partition.getMethod() == 'LIST' ? ' IN (' : ' < ' -}}
|
||||
{{- partition.getDescription() -}}
|
||||
{{- partition.getMethod() == 'LIST' ? ')' -}}
|
||||
</code>
|
||||
</td>
|
||||
{% endif %}
|
||||
<td class="value">{{ partition.getRows() }}</td>
|
||||
<td class="value">
|
||||
{% set data_length = Util_formatByteDown(
|
||||
partition.getDataLength(),
|
||||
3,
|
||||
1
|
||||
) %}
|
||||
<span>{{ data_length[0] }}</span>
|
||||
<span class="unit">{{ data_length[1] }}</span>
|
||||
</td>
|
||||
<td class="value">
|
||||
{% set index_length = Util_formatByteDown(
|
||||
partition.getIndexLength(),
|
||||
3,
|
||||
1
|
||||
) %}
|
||||
<span>{{ index_length[0] }}</span>
|
||||
<span class="unit">{{ index_length[1] }}</span>
|
||||
</td>
|
||||
<td>{{ partition.getComment() }}</td>
|
||||
{% for action, icon in action_icons %}
|
||||
<td>
|
||||
<a href="tbl_structure.php" data-post="{{ url_query -}}
|
||||
&partition_maintenance=1&sql_query=
|
||||
{{- ("ALTER TABLE " ~ Util_backquote(table) ~ " " ~ action
|
||||
~ " PARTITION " ~ partition.getName())|url_encode }}"
|
||||
id="partition_action_{{ action }}"
|
||||
name="partition_action_{{ action }}"
|
||||
class="ajax">
|
||||
{{ icon|raw }}
|
||||
</a>
|
||||
</td>
|
||||
{% endfor %}
|
||||
|
||||
{% if has_sub_partitions %}
|
||||
{% for sub_partition in partition.getSubPartitions() %}
|
||||
<tr class="noclick">
|
||||
<td></td>
|
||||
<td>{{ sub_partition.getOrdinal() }}</td>
|
||||
<td>{{ sub_partition.getName() }}</td>
|
||||
{% if has_description %}
|
||||
<td></td>
|
||||
{% endif %}
|
||||
<td class="value">{{ sub_partition.getRows() }}</td>
|
||||
<td class="value">
|
||||
{% set data_length = Util_formatByteDown(
|
||||
sub_partition.getDataLength(),
|
||||
3,
|
||||
1
|
||||
) %}
|
||||
<span>{{ data_length[0] }}</span>
|
||||
<span class="unit">{{ data_length[1] }}</span>
|
||||
</td>
|
||||
<td class="value">
|
||||
{% set index_length = Util_formatByteDown(
|
||||
sub_partition.getIndexLength(),
|
||||
3,
|
||||
1
|
||||
) %}
|
||||
<span>{{ index_length[0] }}</span>
|
||||
<span class="unit">{{ index_length[1] }}</span>
|
||||
</td>
|
||||
<td>{{ sub_partition.getComment() }}</td>
|
||||
<td colspan="{{ range_or_list ? '7' : '6' }}"></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
</fieldset>
|
||||
<fieldset class="tblFooters print_ignore">
|
||||
<form action="tbl_structure.php" method="post">
|
||||
{{ Url_getHiddenInputs(db, table) }}
|
||||
<input type="hidden" name="edit_partitioning" value="true" />
|
||||
{% if partitions is empty %}
|
||||
<input type="submit" name="edit_partitioning" value="{% trans 'Partition table' %}" />
|
||||
{% else %}
|
||||
{{ Util_linkOrButton('sql.php', remove_url_params, 'Remove partitioning'|trans, {
|
||||
'class': 'button ajax',
|
||||
'id': 'remove_partitioning'
|
||||
}) }}
|
||||
<input type="submit" name="edit_partitioning" value="{% trans 'Edit partitioning' %}" />
|
||||
{% endif %}
|
||||
</form>
|
||||
</fieldset>
|
||||
</div>
|
||||
227
phpMyAdmin/templates/table/structure/display_structure.twig
Executable file
227
phpMyAdmin/templates/table/structure/display_structure.twig
Executable file
@@ -0,0 +1,227 @@
|
||||
<form method="post" action="tbl_structure.php" name="fieldsForm" id="fieldsForm"
|
||||
class="ajax{{ hide_structure_actions ? ' HideStructureActions' }}">
|
||||
{{ Url_getHiddenInputs(db, table) }}
|
||||
<input type="hidden" name="table_type" value=
|
||||
{%- if db_is_system_schema -%}
|
||||
"information_schema"
|
||||
{%- elseif tbl_is_view -%}
|
||||
"view"
|
||||
{%- else -%}
|
||||
"table"
|
||||
{%- endif %} />
|
||||
<div class="responsivetable">
|
||||
<table id="tablestructure" class="data topmargin">
|
||||
{# Table header #}
|
||||
{% include 'table/structure/table_structure_header.twig' with {
|
||||
'db_is_system_schema': db_is_system_schema,
|
||||
'tbl_is_view': tbl_is_view,
|
||||
'show_column_comments': show_column_comments
|
||||
} only %}
|
||||
<tbody>
|
||||
{# Table body #}
|
||||
{% set rownum = 0 %}
|
||||
{% set columns_list = [] %}
|
||||
{% for row in fields %}
|
||||
{% set rownum = rownum + 1 %}
|
||||
{% set columns_list = columns_list|merge([row['Field']]) %}
|
||||
{% set field_charset = row['Collation'] %}
|
||||
|
||||
{% set extracted_columnspec = Util_extractColumnSpec(row['Type']) %}
|
||||
{% set attribute = extracted_columnspec['attribute'] %}
|
||||
{% if strpos(row['Extra'], 'on update CURRENT_TIMESTAMP')
|
||||
is not same as(false) %}
|
||||
{% set attribute = 'on update CURRENT_TIMESTAMP' %}
|
||||
{% endif %}
|
||||
|
||||
{% if row['Default'] is null %}
|
||||
{% if row['Null'] == 'YES' %}
|
||||
{% set row = row|merge({'Default': '<em>NULL</em>'}) %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% set row = row|merge({'Default': row['Default']|e}) %}
|
||||
{% endif %}
|
||||
|
||||
{% set field_name = row['Field']|e %}
|
||||
{% set displayed_field_name = field_name %}
|
||||
{# For column comments #}
|
||||
{% set comments = '' %}
|
||||
{# Underline commented fields and display a hover-title (CSS only) #}
|
||||
|
||||
{% if comments_map[row['Field']] is defined %}
|
||||
{% set displayed_field_name -%}
|
||||
<span class="commented_column" title="
|
||||
{{- comments_map[row['Field']] }}">
|
||||
{{- field_name|raw -}}
|
||||
</span>
|
||||
{%- endset %}
|
||||
{% set comments = comments_map[row['Field']] %}
|
||||
{% endif %}
|
||||
|
||||
{% if primary and primary.hasColumn(field_name) %}
|
||||
{% set displayed_field_name = displayed_field_name ~ Util_getImage(
|
||||
'b_primary', 'Primary'|trans
|
||||
) %}
|
||||
{% endif %}
|
||||
{% if field_name in columns_with_index %}
|
||||
{% set displayed_field_name = displayed_field_name ~ Util_getImage(
|
||||
'bd_primary', 'Index'|trans
|
||||
) %}
|
||||
{% endif %}
|
||||
<tr>
|
||||
{% include 'table/structure/table_structure_row.twig' with {
|
||||
'row': row,
|
||||
'rownum': rownum,
|
||||
'displayed_field_name': preg_replace(
|
||||
'/[\\x00-\\x1F]/',
|
||||
'⁑',
|
||||
displayed_field_name
|
||||
),
|
||||
'type_nowrap': Util_getClassForType(extracted_columnspec['type']),
|
||||
'extracted_columnspec': extracted_columnspec,
|
||||
'attribute': attribute,
|
||||
'tbl_is_view': tbl_is_view,
|
||||
'db_is_system_schema': db_is_system_schema,
|
||||
'url_query': url_query,
|
||||
'titles': titles,
|
||||
'table': table,
|
||||
'tbl_storage_engine': tbl_storage_engine,
|
||||
'field_charset': field_charset,
|
||||
'comments': comments,
|
||||
'show_column_comments': show_column_comments,
|
||||
'relation_commwork': relation_commwork,
|
||||
'relation_mimework': relation_mimework,
|
||||
'browse_mime': browse_mime
|
||||
} only %}
|
||||
{% if not tbl_is_view and not db_is_system_schema %}
|
||||
{% include 'table/structure/actions_in_table_structure.twig' with {
|
||||
'row': row,
|
||||
'rownum': rownum,
|
||||
'extracted_columnspec': extracted_columnspec,
|
||||
'type': extracted_columnspec['print_type'] is not empty ? extracted_columnspec['print_type'],
|
||||
'tbl_storage_engine': tbl_storage_engine,
|
||||
'primary': primary,
|
||||
'field_name': field_name,
|
||||
'url_query': url_query,
|
||||
'titles': titles,
|
||||
'columns_with_unique_index': columns_with_unique_index,
|
||||
'is_in_central_columns': row['Field'] in central_list ? true : false,
|
||||
'central_columns_work': central_columns_work,
|
||||
'table': table,
|
||||
'hide_structure_actions': hide_structure_actions,
|
||||
'mysql_int_version': mysql_int_version
|
||||
} only %}
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% include 'table/structure/check_all_table_column.twig' with {
|
||||
'pma_theme_image': pma_theme_image,
|
||||
'text_dir': text_dir,
|
||||
'tbl_is_view': tbl_is_view,
|
||||
'db_is_system_schema': db_is_system_schema,
|
||||
'tbl_storage_engine': tbl_storage_engine,
|
||||
'central_columns_work': central_columns_work
|
||||
} only %}
|
||||
</form>
|
||||
<hr class="print_ignore"/>
|
||||
{% include 'table/structure/move_columns_dialog.twig' with {
|
||||
'db': db,
|
||||
'table': table
|
||||
} only %}
|
||||
{# Work on the table #}
|
||||
<div id="structure-action-links">
|
||||
{% if tbl_is_view and not db_is_system_schema %}
|
||||
{{ Util_linkOrButton(
|
||||
'view_create.php',
|
||||
{'db': db, 'table': table},
|
||||
Util_getIcon('b_edit', 'Edit view'|trans, true)
|
||||
) }}
|
||||
{% endif %}
|
||||
{% include 'table/structure/optional_action_links.twig' with {
|
||||
'url_query': url_query,
|
||||
'tbl_is_view': tbl_is_view,
|
||||
'db_is_system_schema': db_is_system_schema,
|
||||
'table': table,
|
||||
'is_active': is_active,
|
||||
'mysql_int_version': mysql_int_version,
|
||||
'is_mariadb': is_mariadb
|
||||
} only %}
|
||||
</div>
|
||||
{% if not tbl_is_view and not db_is_system_schema %}
|
||||
{% include 'table/structure/add_column.twig' with {
|
||||
'columns_list': columns_list,
|
||||
'db': db,
|
||||
'table': table
|
||||
} only %}
|
||||
{% endif %}
|
||||
|
||||
{# Displays indexes #}
|
||||
{% if not tbl_is_view and not db_is_system_schema
|
||||
and 'ARCHIVE' != tbl_storage_engine %}
|
||||
{{ Index_getHtmlForDisplayIndexes() }}
|
||||
{% endif %}
|
||||
|
||||
{# Display partition details #}
|
||||
{% if have_partitioning %}
|
||||
{# Detect partitioning #}
|
||||
{% if partition_names is not empty and partition_names[0] is not null %}
|
||||
{% set partitions = Partition_getPartitions(db, table) %}
|
||||
{% set first_partition = partitions[0] %}
|
||||
{% set range_or_list = first_partition.getMethod() == 'RANGE'
|
||||
or first_partition.getMethod() == 'RANGE COLUMNS'
|
||||
or first_partition.getMethod() == 'LIST'
|
||||
or first_partition.getMethod() == 'LIST COLUMNS' %}
|
||||
{% set sub_partitions = first_partition.getSubPartitions() %}
|
||||
{% set has_sub_partitions = first_partition.hasSubPartitions() %}
|
||||
{% if has_sub_partitions %}
|
||||
{% set first_sub_partition = sub_partitions[0] %}
|
||||
{% endif %}
|
||||
|
||||
{% set action_icons = {
|
||||
'ANALYZE': Util_getIcon('b_search', 'Analyze'|trans),
|
||||
'CHECK': Util_getIcon('eye', 'Check'|trans),
|
||||
'OPTIMIZE': Util_getIcon('normalize', 'Optimize'|trans),
|
||||
'REBUILD': Util_getIcon('s_tbl', 'Rebuild'|trans),
|
||||
'REPAIR': Util_getIcon('b_tblops', 'Repair'|trans),
|
||||
'TRUNCATE': Util_getIcon('b_empty', 'Truncate'|trans),
|
||||
} %}
|
||||
{% if range_or_list %}
|
||||
{% set action_icons = action_icons|merge({'DROP': Util_getIcon('b_drop', 'Drop'|trans)}) %}
|
||||
{% endif %}
|
||||
|
||||
{{ Util_getDivForSliderEffect('partitions', 'Partitions'|trans) }}
|
||||
|
||||
{% set remove_sql = 'ALTER TABLE ' ~ Util_backquote(table) ~ ' REMOVE PARTITIONING' %}
|
||||
|
||||
{% include 'table/structure/display_partitions.twig' with {
|
||||
'db': db,
|
||||
'table': table,
|
||||
'url_query': url_query,
|
||||
'partitions': partitions,
|
||||
'partition_method': first_partition.getMethod(),
|
||||
'partition_expression': first_partition.getExpression(),
|
||||
'has_description': first_partition.getDescription() is not empty,
|
||||
'has_sub_partitions': has_sub_partitions,
|
||||
'sub_partition_method': has_sub_partitions ? first_sub_partition.getMethod(),
|
||||
'sub_partition_expression': has_sub_partitions ? first_sub_partition.getExpression(),
|
||||
'action_icons': action_icons,
|
||||
'range_or_list': range_or_list,
|
||||
'remove_url_params': url_params|merge({'sql_query': remove_sql})
|
||||
} only %}
|
||||
{% else %}
|
||||
{% include 'table/structure/display_partitions.twig' with {
|
||||
'db': db,
|
||||
'table': table
|
||||
} only %}
|
||||
{% endif %}
|
||||
{# For closing Slider effect div #}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{# Displays Space usage and row statistics #}
|
||||
{% if show_stats %}
|
||||
{{ table_stats|raw }}
|
||||
{% endif %}
|
||||
<div class="clearfloat"></div>
|
||||
79
phpMyAdmin/templates/table/structure/display_table_stats.twig
Executable file
79
phpMyAdmin/templates/table/structure/display_table_stats.twig
Executable file
@@ -0,0 +1,79 @@
|
||||
<div id="tablestatistics">
|
||||
<fieldset>
|
||||
<legend>{% trans 'Information' %}</legend>
|
||||
{% if showtable['TABLE_COMMENT'] %}
|
||||
<p>
|
||||
<strong>{% trans 'Table comments:' %}</strong>
|
||||
{{ showtable['TABLE_COMMENT'] }}
|
||||
</p>
|
||||
{% endif %}
|
||||
<a id="showusage"></a>
|
||||
|
||||
{% if not tbl_is_view and not db_is_system_schema %}
|
||||
<table id="tablespaceusage" class="width100 data">
|
||||
<caption class="tblHeaders">{% trans 'Space usage' %}</caption>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="name">{% trans 'Data' %}</th>
|
||||
<td class="value">{{ data_size }}</td>
|
||||
<td class="unit">{{ data_unit }}</td>
|
||||
</tr>
|
||||
|
||||
{% if index_size is defined %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Index' %}</th>
|
||||
<td class="value">{{ index_size }}</td>
|
||||
<td class="unit">{{ index_unit }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{% if free_size is defined %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Overhead' %}</th>
|
||||
<td class="value">{{ free_size }}</td>
|
||||
<td class="unit">{{ free_unit }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="name">{% trans 'Effective' %}</th>
|
||||
<td class="value">{{ effect_size }}</td>
|
||||
<td class="unit">{{ effect_unit }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{% if tot_size is defined and mergetable == false %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Total' %}</th>
|
||||
<td class="value">{{ tot_size }}</td>
|
||||
<td class="unit">{{ tot_unit }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{# Optimize link if overhead #}
|
||||
{% if free_size is defined
|
||||
and (tbl_storage_engine == 'MYISAM'
|
||||
or tbl_storage_engine == 'ARIA'
|
||||
or tbl_storage_engine == 'MARIA'
|
||||
or tbl_storage_engine == 'BDB') %}
|
||||
<tr class="tblFooters print_ignore">
|
||||
<td colspan="3" class="center">
|
||||
<a href="sql.php" data-post="{{ url_query }}&pos=0&sql_query=
|
||||
{{- ('OPTIMIZE TABLE ' ~ Util_backquote(table))|url_encode }}">
|
||||
{{ Util_getIcon('b_tbloptimize', 'Optimize table'|trans) }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
{% include 'table/structure/row_stats_table.twig' with {
|
||||
'showtable': showtable,
|
||||
'tbl_collation': tbl_collation,
|
||||
'is_innodb': is_innodb,
|
||||
'mergetable': mergetable,
|
||||
'avg_size': avg_size is defined ? avg_size : null,
|
||||
'avg_unit': avg_unit is defined ? avg_unit : null
|
||||
} only %}
|
||||
</fieldset>
|
||||
</div>
|
||||
9
phpMyAdmin/templates/table/structure/move_columns_dialog.twig
Executable file
9
phpMyAdmin/templates/table/structure/move_columns_dialog.twig
Executable file
@@ -0,0 +1,9 @@
|
||||
<div id="move_columns_dialog" class="hide" title="{% trans 'Move columns' %}">
|
||||
<p>{% trans 'Move the columns by dragging them up and down.' %}</p>
|
||||
<form action="tbl_structure.php">
|
||||
<div>
|
||||
{{ Url_getHiddenInputs(db, table) }}
|
||||
<ul></ul>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
34
phpMyAdmin/templates/table/structure/optional_action_links.twig
Executable file
34
phpMyAdmin/templates/table/structure/optional_action_links.twig
Executable file
@@ -0,0 +1,34 @@
|
||||
<a href="#" id="printView">{{ Util_getIcon('b_print', 'Print'|trans, true) }}</a>
|
||||
{% if not tbl_is_view and not db_is_system_schema %}
|
||||
{# Only display propose table structure for MySQL < 8.0 #}
|
||||
{% if mysql_int_version < 80000 or is_mariadb %}
|
||||
<a href="sql.php" data-post="{{ url_query|raw }}&session_max_rows=all&sql_query=
|
||||
{{- ('SELECT * FROM ' ~ Util_backquote(table) ~ ' PROCEDURE ANALYSE()')|url_encode -}}
|
||||
" style="margin-right: 0;">
|
||||
{{ Util_getIcon(
|
||||
'b_tblanalyse',
|
||||
'Propose table structure'|trans,
|
||||
true
|
||||
) }}
|
||||
</a>
|
||||
{{ Util_showMySQLDocu('procedure_analyse') }}
|
||||
{% endif %}
|
||||
{% if is_active %}
|
||||
<a href="tbl_tracking.php{{ url_query|raw }}">
|
||||
{{ Util_getIcon('eye', 'Track table'|trans, true) }}
|
||||
</a>
|
||||
{% endif %}
|
||||
<a href="#" id="move_columns_anchor">
|
||||
{{ Util_getIcon('b_move', 'Move columns'|trans, true) }}
|
||||
</a>
|
||||
<a href="normalization.php{{ url_query|raw }}">
|
||||
{{ Util_getIcon('normalize', 'Normalize'|trans, true) }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if tbl_is_view and not db_is_system_schema %}
|
||||
{% if is_active %}
|
||||
<a href="tbl_tracking.php{{ url_query|raw }}">
|
||||
{{ Util_getIcon('eye', 'Track view'|trans, true) }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
14
phpMyAdmin/templates/table/structure/partition_definition_form.twig
Executable file
14
phpMyAdmin/templates/table/structure/partition_definition_form.twig
Executable file
@@ -0,0 +1,14 @@
|
||||
<form action="tbl_structure.php" method="post">
|
||||
{{ Url_getHiddenInputs(db, table) }}
|
||||
<input type="hidden" name="edit_partitioning" value="true" />
|
||||
|
||||
<fieldset>
|
||||
<legend>{% trans 'Edit partitioning' %}</legend>
|
||||
{% include 'columns_definitions/partitions.twig' with {
|
||||
'partition_details': partition_details
|
||||
} only %}
|
||||
</fieldset>
|
||||
<fieldset class="tblFooters">
|
||||
<input type="submit" name="save_partitioning" value="{% trans 'Save' %}">
|
||||
</fieldset>
|
||||
</form>
|
||||
95
phpMyAdmin/templates/table/structure/row_stats_table.twig
Executable file
95
phpMyAdmin/templates/table/structure/row_stats_table.twig
Executable file
@@ -0,0 +1,95 @@
|
||||
<table id="tablerowstats" class="width100 data">
|
||||
<caption class="tblHeaders">{% trans 'Row statistics' %}</caption>
|
||||
<tbody>
|
||||
{% if showtable['Row_format'] is defined %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Format' %}</th>
|
||||
{% if showtable['Row_format'] == 'Fixed' %}
|
||||
<td class="value">{% trans 'static' %}</td>
|
||||
{% elseif showtable['Row_format'] == 'Dynamic' %}
|
||||
<td class="value">{% trans 'dynamic' %}</td>
|
||||
{% else %}
|
||||
<td class="value">{{ showtable['Row_format'] }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{% if showtable['Create_options'] is not empty %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Options' %}</th>
|
||||
{% if showtable['Create_options'] == 'partitioned' %}
|
||||
<td class="value">{% trans 'partitioned' %}</td>
|
||||
{% else %}
|
||||
<td class="value">{{ showtable['Create_options'] }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{% if tbl_collation is not empty %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Collation' %}</th>
|
||||
<td class="value">
|
||||
<dfn title="{{ Charsets_getCollationDescr(tbl_collation) }}">
|
||||
{{ tbl_collation }}
|
||||
</dfn>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{% if not is_innodb and showtable['Rows'] is defined %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Rows' %}</th>
|
||||
<td class="value">{{ Util_formatNumber(showtable['Rows'], 0) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{% if not is_innodb
|
||||
and showtable['Avg_row_length'] is defined
|
||||
and showtable['Avg_row_length'] > 0 %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Row length' %}</th>
|
||||
{% set avg_row_length = Util_formatByteDown(showtable['Avg_row_length'], 6, 1) %}
|
||||
<td class="value">{{ avg_row_length[0] }} {{ avg_row_length[1] }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{% if not is_innodb
|
||||
and showtable['Data_length'] is defined
|
||||
and showtable['Rows'] is defined
|
||||
and showtable['Rows'] > 0
|
||||
and mergetable == false %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Row size' %}</th>
|
||||
<td class="value">{{ avg_size }} {{ avg_unit }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{% if showtable['Auto_increment'] is defined %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Next autoindex' %}</th>
|
||||
<td class="value">{{ Util_formatNumber(showtable['Auto_increment'], 0) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{% if showtable['Create_time'] is defined %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Creation' %}</th>
|
||||
<td class="value">{{ Util_localisedDate(showtable['Create_time']|date('U')) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{% if showtable['Update_time'] is defined %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Last update' %}</th>
|
||||
<td class="value">{{ Util_localisedDate(showtable['Update_time']|date('U')) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
{% if showtable['Check_time'] is defined %}
|
||||
<tr>
|
||||
<th class="name">{% trans 'Last check' %}</th>
|
||||
<td class="value">{{ Util_localisedDate(showtable['Check_time']|date('U')) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
21
phpMyAdmin/templates/table/structure/table_structure_header.twig
Executable file
21
phpMyAdmin/templates/table/structure/table_structure_header.twig
Executable file
@@ -0,0 +1,21 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="print_ignore"></th>
|
||||
<th>#</th>
|
||||
<th>{% trans 'Name' %}</th>
|
||||
<th>{% trans 'Type' %}</th>
|
||||
<th>{% trans 'Collation' %}</th>
|
||||
<th>{% trans 'Attributes' %}</th>
|
||||
<th>{% trans 'Null' %}</th>
|
||||
<th>{% trans 'Default' %}</th>
|
||||
{% if show_column_comments -%}
|
||||
<th>{% trans 'Comments' %}</th>
|
||||
{%- endif %}
|
||||
<th>{% trans 'Extra' %}</th>
|
||||
{# @see tbl_structure.js, function moreOptsMenuResize() #}
|
||||
{% if not db_is_system_schema and not tbl_is_view %}
|
||||
<th colspan="{{ Util_showIcons('ActionLinksMode') ? '8' : '9' -}}
|
||||
" class="action print_ignore">{% trans 'Action' %}</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
59
phpMyAdmin/templates/table/structure/table_structure_row.twig
Executable file
59
phpMyAdmin/templates/table/structure/table_structure_row.twig
Executable file
@@ -0,0 +1,59 @@
|
||||
<td class="center print_ignore">
|
||||
<input type="checkbox" class="checkall" name="selected_fld[]" value="{{ row['Field'] }}" id="checkbox_row_{{ rownum }}"/>
|
||||
</td>
|
||||
<td class="right">{{ rownum }}</td>
|
||||
<th class="nowrap">
|
||||
<label for="checkbox_row_{{ rownum }}">
|
||||
{{ displayed_field_name|raw }}
|
||||
</label>
|
||||
</th>
|
||||
<td {{ type_nowrap }}>
|
||||
<bdo dir="ltr" lang="en">
|
||||
{{ extracted_columnspec['displayed_type']|raw }}
|
||||
{% if relation_commwork and relation_mimework and browse_mime
|
||||
and mime_map[row['Field']]['mimetype'] is defined %}
|
||||
<br />MIME: {{ mime_map[row['Field']]['mimetype']|replace({'_': '/'})|lower }}
|
||||
{% endif %}
|
||||
</bdo>
|
||||
</td>
|
||||
<td>
|
||||
{% if field_charset is not empty %}
|
||||
<dfn title="{{ Charsets_getCollationDescr(field_charset) }}">{{ field_charset }}</dfn>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="column_attribute nowrap">{{ attribute }}</td>
|
||||
<td>{{ row['Null'] == 'YES' ? 'Yes'|trans : 'No'|trans }}</td>
|
||||
<td class="nowrap">
|
||||
{% if row['Default'] is not null %}
|
||||
{% if extracted_columnspec['type'] == 'bit' %}
|
||||
{{ Util_convertBitDefaultValue(row['Default']) }}
|
||||
{% else %}
|
||||
{{ row['Default']|raw }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<em>{% trans %}None{% context %}None for default{% endtrans %}</em>
|
||||
{% endif %}
|
||||
</td>
|
||||
{% if show_column_comments %}
|
||||
<td>
|
||||
{{ comments }}
|
||||
</td>
|
||||
{% endif %}
|
||||
<td class="nowrap">{{ row['Extra']|upper }}</td>
|
||||
{% if not tbl_is_view and not db_is_system_schema %}
|
||||
<td class="edit center print_ignore">
|
||||
<a class="change_column_anchor ajax" href="tbl_structure.php
|
||||
{{- url_query }}&field={{ row['Field']|url_encode }}&change_column=1">
|
||||
{{ titles['Change']|raw }}
|
||||
</a>
|
||||
</td>
|
||||
<td class="drop center print_ignore">
|
||||
<a class="drop_column_anchor ajax" href="sql.php" data-post="{{ url_query }}&sql_query=
|
||||
{{- ('ALTER TABLE ' ~ Util_backquote(table)
|
||||
~ ' DROP ' ~ Util_backquote(row['Field']) ~ ';')|url_encode -}}
|
||||
&dropped_column={{ row['Field']|url_encode }}&purge=1&message_to_show=
|
||||
{{- ('Column %s has been dropped.'|trans|format(row['Field']|e))|url_encode }}">
|
||||
{{ titles['Drop']|raw }}
|
||||
</a>
|
||||
</td>
|
||||
{% endif %}
|
||||
Reference in New Issue
Block a user