Update website

This commit is contained in:
Guilhem Lavaux 2024-11-19 08:02:04 +01:00
parent 4413528994
commit 1d90fbf296
6865 changed files with 1091082 additions and 0 deletions

View file

@ -0,0 +1,15 @@
<form id="ajax_form" action="{{ url('/database/structure/add-prefix-table') }}" method="post">
{{ get_hidden_inputs(url_params) }}
<fieldset class="pma-fieldset input">
<table>
<tr>
<td>{% trans 'Add prefix' %}</td>
<td>
<input type="text" name="add_prefix" id="txtPrefix" aria-label="{% trans 'Add prefix' %}">
</td>
</tr>
<tr>
</table>
</fieldset>
</form>

View file

@ -0,0 +1,93 @@
<tfoot id="tbl_summary_row">
<tr>
<th class="d-print-none"></th>
<th class="tbl_num text-nowrap">
{% set num_tables_trans -%}
{% trans %}%s table{% plural num_tables %}%s tables{% endtrans %}
{%- endset %}
{{ num_tables_trans|format(format_number(num_tables, 0)) }}
</th>
{% if server_replica_status %}
<th>{% trans 'Replication' %}</th>
{% endif %}
{% set sum_colspan = db_is_system_schema ? 4 : 7 %}
{% if num_favorite_tables == 0 %}
{% set sum_colspan = sum_colspan - 1 %}
{% endif %}
<th colspan="{{ sum_colspan }}" class="d-print-none">{% trans 'Sum' %}</th>
{% set row_count_sum = format_number(sum_entries, 0) %}
{# If a table shows approximate rows count, display update-all-real-count anchor. #}
{% set row_sum_url = [] %}
{% if approx_rows is defined %}
{% set row_sum_url = {
'ajax_request': true,
'db': db,
'real_row_count_all': 'true'
} %}
{% endif %}
{% if approx_rows %}
{% set cell_text -%}
<a href="{{ url('/database/structure/real-row-count', row_sum_url) }}" class="ajax row_count_sum">~
{{- row_count_sum -}}
</a>
{%- endset %}
{% else %}
{% set cell_text = row_count_sum %}
{% endif %}
<th class="value tbl_rows font-monospace text-end">{{ cell_text }}</th>
{% if not (properties_num_columns > 1) %}
{# MySQL <= 5.5.2 #}
{% set default_engine = dbi.fetchValue('SELECT @@storage_engine;') %}
{% if default_engine is empty %}
{# MySQL >= 5.5.3 #}
{% set default_engine = dbi.fetchValue('SELECT @@default_storage_engine;') %}
{% endif %}
<th class="text-center">
<dfn title="{{ '%s is the default storage engine on this MySQL server.'|trans|format(default_engine) }}">
{{ default_engine }}
</dfn>
</th>
<th>
{% if database_collation is not empty %}
<dfn title="{{ database_collation.description }} ({% trans 'Default' %})">
{{ database_collation.name }}
</dfn>
{% endif %}
</th>
{% endif %}
{% if is_show_stats %}
{% set sum = format_byte_down(sum_size, 3, 1) %}
{% set sum_formatted = sum[0] %}
{% set sum_unit = sum[1] %}
<th class="value tbl_size font-monospace text-end">{{ sum_formatted }} {{ sum_unit }}</th>
{% set overhead = format_byte_down(overhead_size, 3, 1) %}
{% set overhead_formatted = overhead[0] %}
{% set overhead_unit = overhead[1] %}
<th class="value tbl_overhead font-monospace text-end">{{ overhead_formatted }} {{ overhead_unit }}</th>
{% endif %}
{% if show_charset %}
<th>{{ database_charset }}</th>
{% endif %}
{% if show_comment %}
<th></th>
{% endif %}
{% if show_creation %}
<th class="value tbl_creation font-monospace text-end">
{{ create_time_all }}
</th>
{% endif %}
{% if show_last_update %}
<th class="value tbl_last_update font-monospace text-end">
{{ update_time_all }}
</th>
{% endif %}
{% if show_last_check %}
<th class="value tbl_last_check font-monospace text-end">
{{ check_time_all }}
</th>
{% endif %}
</tr>
</tfoot>

View file

@ -0,0 +1,16 @@
<div class="modal fade" id="bulkActionModal" data-bs-backdrop="static" data-bs-keyboard="false"
tabindex="-1" aria-labelledby="bulkActionLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="bulkActionLabel"></h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{% trans 'Cancel' %}"></button>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{% trans 'Cancel' %}</button>
<button type="button" class="btn btn-primary" id="bulkActionContinue">{% trans 'Continue' %}</button>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,20 @@
<form id="ajax_form" action="{{ url(route) }}" method="post">
{{ get_hidden_inputs(url_params) }}
<fieldset class="pma-fieldset input">
<table>
<tr>
<td>{% trans 'From' %}</td>
<td>
<input type="text" name="from_prefix" id="initialPrefix">
</td>
</tr>
<tr>
<td>{% trans 'To' %}</td>
<td>
<input type="text" name="to_prefix" id="newPrefix">
</td>
</tr>
</table>
</fieldset>
</form>

View file

@ -0,0 +1,61 @@
<div class="clearfloat d-print-none">
<img class="selectallarrow" src="{{ image('arrow_' ~ text_dir ~ '.png') }}" width="38" height="22" alt="{% trans 'With selected:' %}">
<input type="checkbox" id="tablesForm_checkall" class="checkall_box" title="{% trans 'Check all' %}">
<label for="tablesForm_checkall">{% trans 'Check all' %}</label>
{% if overhead_check != '' %}
/ <a href="#" class="checkall-filter" data-checkall-selector=".tbl-overhead">{% trans 'Check tables having overhead' %}</a>
{% endif %}
<select name="submit_mult" style="margin: 0 3em 0 3em;">
<option value="{% trans 'With selected:' %}" selected="selected">{% trans 'With selected:' %}</option>
<option value="copy_tbl">{% trans 'Copy table' %}</option>
<option value="show_create">{% trans 'Show create' %}</option>
<option value="export">{% trans 'Export' %}</option>
{% if not db_is_system_schema and not disable_multi_table %}
<optgroup label="{% trans 'Delete data or table' %}">
<option value="empty_tbl">{% trans 'Empty' %}</option>
<option value="drop_tbl">{% trans 'Drop' %}</option>
</optgroup>
<optgroup label="{% trans 'Table maintenance' %}">
<option value="analyze_tbl">{% trans 'Analyze table' %}</option>
<option value="check_tbl">{% trans 'Check table' %}</option>
<option value="checksum_tbl">{% trans 'Checksum table' %}</option>
<option value="optimize_tbl">{% trans 'Optimize table' %}</option>
<option value="repair_tbl">{% trans 'Repair table' %}</option>
</optgroup>
<optgroup label="{% trans 'Prefix' %}">
<option value="add_prefix_tbl">{% trans 'Add prefix to table' %}</option>
<option value="replace_prefix_tbl">{% trans 'Replace table prefix' %}</option>
<option value="copy_tbl_change_prefix">{% trans 'Copy table with prefix' %}</option>
</optgroup>
{% endif %}
{% if central_columns_work is defined and central_columns_work %}
<optgroup label="{% trans 'Central columns' %}">
<option value="sync_unique_columns_central_list">{% trans 'Add columns to central list' %}</option>
<option value="delete_unique_columns_central_list">{% trans 'Remove columns from central list' %}</option>
<option value="make_consistent_with_central_list">{% trans 'Make consistent with central list' %}</option>
</optgroup>
{% endif %}
</select>
{{ hidden_fields|join('\n')|raw }}
</div>
{% if central_columns_work is defined and central_columns_work %}
<div class="modal fade" id="makeConsistentWithCentralListModal" data-bs-backdrop="static" data-bs-keyboard="false"
tabindex="-1" aria-labelledby="makeConsistentWithCentralListModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="makeConsistentWithCentralListModalLabel">{% trans 'Are you sure?' %}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{% trans 'Cancel' %}"></button>
</div>
<div class="modal-body">
{{ 'This action may change some of the columns definition.[br]Are you sure you want to continue?'|trans|sanitize }}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{% trans 'Cancel' %}</button>
<button type="button" class="btn btn-primary" id="makeConsistentWithCentralListContinue">{% trans 'Continue' %}</button>
</div>
</div>
</div>
</div>
{% endif %}

View file

@ -0,0 +1 @@
<dfn title="{{ valueTitle }}">{{ value }}</dfn>

View file

@ -0,0 +1,54 @@
<form id="ajax_form" action="{{ url('/database/structure/copy-table') }}" method="post">
{{ get_hidden_inputs(url_params) }}
<fieldset class="pma-fieldset">
<strong><label for="db_name_dropdown">{% trans 'Database:' %}</label></strong>
<select id="db_name_dropdown" name="target_db">
{% for each_db in options %}
<option value="{{ each_db.name }}"{{ each_db.is_selected ? ' selected' }}>{{ each_db.name }}</option>
{% endfor %}
</select>
<br><br>
<strong><label>{% trans 'Options:' %}</label></strong>
<br>
<input type="radio" id="what_structure" value="structure" name="what">
<label for="what_structure">{% trans 'Structure only' %}</label>
<br>
<input type="radio" id="what_data" value="data" name="what" checked>
<label for="what_data">{% trans 'Structure and data' %}</label>
<br>
<input type="radio" id="what_dataonly" value="dataonly" name="what">
<label for="what_dataonly">{% trans 'Data only' %}</label>
<br><br>
<input type="checkbox" id="checkbox_drop" value="true" name="drop_if_exists">
<label for="checkbox_drop">{% trans 'Add DROP TABLE' %}</label>
<br>
<input type="checkbox" id="checkbox_auto_increment_cp" value="1" name="sql_auto_increment">
<label for="checkbox_auto_increment_cp">{% trans 'Add AUTO INCREMENT value' %}</label>
<br>
<input type="checkbox" id="checkbox_constraints" value="1" name="sql_auto_increment" checked>
<label for="checkbox_constraints">{% trans 'Add constraints' %}</label>
<br><br>
<input type="checkbox" name="adjust_privileges" value="1" id="checkbox_adjust_privileges" checked>
<label for="checkbox_adjust_privileges">
{% trans 'Adjust privileges' %}
{{ show_docu('faq', 'faq6-39') }}
</label>
</fieldset>
</form>

View file

@ -0,0 +1,23 @@
<form action="{{ url('/database/structure/drop-table') }}" method="post">
{{ get_hidden_inputs(url_params) }}
<fieldset class="pma-fieldset confirmation">
<legend>
{% trans 'Do you really want to execute the following query?' %}
</legend>
<code>{{ full_query|raw }}</code>
</fieldset>
<fieldset class="pma-fieldset tblFooters">
<div id="foreignkeychk" class="float-start">
<input type="hidden" name="fk_checks" value="0">
<input type="checkbox" name="fk_checks" id="fk_checks" value="1"{{ is_foreign_key_check ? ' checked' }}>
<label for="fk_checks">{% trans 'Enable foreign key checks' %}</label>
</div>
<div class="float-end">
<input id="buttonYes" class="btn btn-secondary" type="submit" name="mult_btn" value="{% trans 'Yes' %}">
<input id="buttonNo" class="btn btn-secondary" type="submit" name="mult_btn" value="{% trans 'No' %}">
</div>
</fieldset>
</form>

View file

@ -0,0 +1,23 @@
<form action="{{ url('/database/structure/empty-table') }}" class="disableAjax" method="post">
{{ get_hidden_inputs(url_params) }}
<fieldset class="pma-fieldset confirmation">
<legend>
{% trans 'Do you really want to execute the following query?' %}
</legend>
<code>{{ full_query|raw }}</code>
</fieldset>
<fieldset class="pma-fieldset tblFooters">
<div id="foreignkeychk" class="float-start">
<input type="hidden" name="fk_checks" value="0">
<input type="checkbox" name="fk_checks" id="fk_checks" value="1"{{ is_foreign_key_check ? ' checked' }}>
<label for="fk_checks">{% trans 'Enable foreign key checks' %}</label>
</div>
<div class="float-end">
<input id="buttonYes" class="btn btn-secondary" type="submit" name="mult_btn" value="{% trans 'Yes' %}">
<input id="buttonNo" class="btn btn-secondary" type="submit" name="mult_btn" value="{% trans 'No' %}">
</div>
</fieldset>
</form>

View file

@ -0,0 +1,7 @@
<a id="{{ table_name_hash }}_favorite_anchor"
class="ajax favorite_table_anchor"
href="{{ url('/database/structure/favorite-table', fav_params) }}"
title="{{ already_favorite ? 'Remove from Favorites'|trans : 'Add to Favorites'|trans }}"
data-favtargets="{{ db_table_name_hash }}">
{{ already_favorite ? get_icon('b_favorite') : get_icon('b_no_favorite') }}
</a>

View file

@ -0,0 +1,30 @@
{% for flash_key, flash_messages in flash() %}
{% for flash_message in flash_messages %}
<div class="alert alert-{{ flash_key }}" role="alert">
{{ flash_message }}
</div>
{% endfor %}
{% endfor %}
{% if has_tables %}
<div id="tableslistcontainer">
{{ list_navigator_html|raw }}
{{ table_list_html|raw }}
{{ list_navigator_html|raw }}
</div>
<hr>
<p class="d-print-none">
<button type="button" class="btn btn-link p-0 jsPrintButton">{{ get_icon('b_print', 'Print'|trans, true) }}</button>
<a href="{{ url('/database/data-dictionary', {'db': database, 'goto': url('/database/structure')}) }}">
{{ get_icon('b_tblanalyse', 'Data dictionary'|trans, true) }}
</a>
</p>
{% else %}
{{ 'No tables found in database.'|trans|notice }}
{% endif %}
{% if not is_system_schema %}
{{ create_table_html|raw }}
{% endif %}

View file

@ -0,0 +1,4 @@
<a href="{{ url('/table/structure', table_url_params) }}#showusage" id="overhead">
<span>{{ formatted_overhead }}</span>&nbsp;
<span class="unit">{{ overhead_unit }}</span>
</a>

View file

@ -0,0 +1,47 @@
<div class="show_create_results">
<h2>{% trans 'Showing create queries' %}</h2>
{% if tables.tables is not empty %}
<fieldset class="pma-fieldset">
<legend>{% trans 'Tables' %}</legend>
<table class="table table-striped show_create">
<thead>
<tr>
<th>{% trans 'Table' %}</th>
<th>{% trans 'Create table' %}</th>
</tr>
</thead>
<tbody>
{% for table in tables.tables %}
<tr>
<td><strong>{{ table.name|raw }}</strong></td>
<td>{{ table.show_create|raw }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</fieldset>
{% endif %}
{% if tables.views is not empty %}
<fieldset class="pma-fieldset">
<legend>{% trans 'Views' %}</legend>
<table class="table table-striped show_create">
<thead>
<tr>
<th>{% trans 'View' %}</th>
<th>{% trans 'Create view' %}</th>
</tr>
</thead>
<tbody>
{% for view in tables.views %}
<tr>
<td><strong>{{ view.name }}</strong></td>
<td>{{ view.show_create|raw }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</fieldset>
{% endif %}
</div>

View file

@ -0,0 +1,226 @@
<tr id="row_tbl_{{ curr }}"{{ table_is_view ? ' class="is_view"' }} data-filter-row="{{ current_table['TABLE_NAME']|upper }}">
<td class="text-center d-print-none">
<input type="checkbox"
name="selected_tbl[]"
class="{{ input_class }}"
value="{{ current_table['TABLE_NAME'] }}"
id="checkbox_tbl_{{ curr }}">
</td>
<th>
<a href="{{ url('/sql', table_url_params|merge({'pos': 0})) }}" title="{{ browse_table_label_title }}">
{{- browse_table_label_truename -}}
</a>
{{ tracking_icon|raw }}
</th>
{% if server_replica_status %}
<td class="text-center">
{{ ignored ? get_image('s_cancel', 'Not replicated'|trans) }}
{{ do ? get_image('s_success', 'Replicated'|trans) }}
</td>
{% endif %}
{# Favorite table anchor #}
{% if num_favorite_tables > 0 %}
<td class="text-center d-print-none">
{# Check if current table is already in favorite list #}
{% set fav_params = {
'db': db,
'ajax_request': true,
'favorite_table': current_table['TABLE_NAME'],
((already_favorite ? 'remove' : 'add') ~ '_favorite'): true
} %}
{% include 'database/structure/favorite_anchor.twig' with {
'table_name_hash': table_name_hash,
'db_table_name_hash': db_table_name_hash,
'fav_params': fav_params,
'already_favorite': already_favorite,
} only %}
</td>
{% endif %}
<td class="text-center d-print-none">
<a href="{{ url('/sql', table_url_params|merge({'pos': 0})) }}">
{{ may_have_rows ? get_icon('b_browse', 'Browse'|trans) : get_icon('bd_browse', 'Browse'|trans) }}
</a>
</td>
<td class="text-center d-print-none">
<a href="{{ url('/table/structure', table_url_params) }}">
{{ get_icon('b_props', 'Structure'|trans) }}
</a>
</td>
<td class="text-center d-print-none">
<a href="{{ url('/table/search', table_url_params) }}">
{{ may_have_rows ? get_icon('b_select', 'Search'|trans) : get_icon('bd_select', 'Search'|trans) }}
</a>
</td>
{% if not db_is_system_schema %}
<td class="insert_table text-center d-print-none">
<a href="{{ url('/table/change', table_url_params) }}">{{ get_icon('b_insrow', 'Insert'|trans) }}</a>
</td>
{% if table_is_view %}
<td class="text-center d-print-none">
<a href="{{ url('/view/create', {
'db': db,
'table': current_table['TABLE_NAME']
}) }}">{{ get_icon('b_edit', 'Edit'|trans) }}</a>
</td>
{% else %}
<td class="text-center d-print-none">
<a class="truncate_table_anchor ajax" href="{{ url('/sql') }}" data-post="{{ get_common(table_url_params|merge({
'sql_query': empty_table_sql_query,
'message_to_show': empty_table_message_to_show
}), '') }}">
{{ may_have_rows ? get_icon('b_empty', 'Empty'|trans) : get_icon('bd_empty', 'Empty'|trans) }}
</a>
</td>
{% endif %}
<td class="text-center d-print-none">
<a class="ajax drop_table_anchor
{{- table_is_view or current_table['ENGINE'] == null ? ' view' }}" href="{{ url('/sql') }}" data-post="
{{- get_common(table_url_params|merge({
'reload': 1,
'purge': 1,
'sql_query': drop_query,
'message_to_show': drop_message
}), '') }}">
{{ get_icon('b_drop', 'Drop'|trans) }}
</a>
</td>
{% endif %}
{% if current_table['TABLE_ROWS'] is defined
and (current_table['ENGINE'] != null or table_is_view) %}
{# Get the row count #}
{% set row_count = format_number(current_table['TABLE_ROWS'], 0) %}
{# Content to be appended into 'tbl_rows' cell.
If row count is approximate, display it as an anchor to get real count. #}
<td class="value tbl_rows font-monospace text-end"
data-table="{{ current_table['TABLE_NAME'] }}">
{% if approx_rows %}
<a href="{{ url('/database/structure/real-row-count', {
'ajax_request': true,
'db': db,
'table': current_table['TABLE_NAME']
}) }}" class="ajax real_row_count">
<bdi>
~{{ row_count }}
</bdi>
</a>
{% else %}
{{ row_count }}
{% endif %}
{{ show_superscript|raw }}
</td>
{% if not (properties_num_columns > 1) %}
<td class="text-nowrap">
{% if current_table['ENGINE'] is not empty %}
{{ current_table['ENGINE'] }}
{% elseif table_is_view %}
{% trans 'View' %}
{% endif %}
</td>
{% if collation|length > 0 %}
<td class="text-nowrap">
{{ collation|raw }}
</td>
{% endif %}
{% endif %}
{% if is_show_stats %}
<td class="value tbl_size font-monospace text-end">
<a href="{{ url('/table/structure', table_url_params) }}#showusage">
<span>{{ formatted_size }}</span>&nbsp;<span class="unit">{{ unit }}</span>
</a>
</td>
<td class="value tbl_overhead font-monospace text-end">
{{ overhead|raw }}
</td>
{% endif %}
{% if not (show_charset > 1) %}
{% if charset|length > 0 %}
<td class="text-nowrap">
{{ charset|raw }}
</td>
{% endif %}
{% endif %}
{% if show_comment %}
{% set comment = current_table['Comment'] %}
<td>
{% if comment|length > limit_chars %}
<abbr title="{{ comment }}">
{{ comment|slice(0, limit_chars) }}
...
</abbr>
{% else %}
{{ comment }}
{% endif %}
</td>
{% endif %}
{% if show_creation %}
<td class="value tbl_creation font-monospace text-end">
{{ create_time }}
</td>
{% endif %}
{% if show_last_update %}
<td class="value tbl_last_update font-monospace text-end">
{{ update_time }}
</td>
{% endif %}
{% if show_last_check %}
<td class="value tbl_last_check font-monospace text-end">
{{ check_time }}
</td>
{% endif %}
{% elseif table_is_view %}
<td class="value tbl_rows font-monospace text-end">-</td>
<td class="text-nowrap">
{% trans 'View' %}
</td>
<td class="text-nowrap">---</td>
{% if is_show_stats %}
<td class="value tbl_size font-monospace text-end">-</td>
<td class="value tbl_overhead font-monospace text-end">-</td>
{% endif %}
{% if show_charset %}
<td></td>
{% endif %}
{% if show_comment %}
<td></td>
{% endif %}
{% if show_creation %}
<td class="value tbl_creation font-monospace text-end">-</td>
{% endif %}
{% if show_last_update %}
<td class="value tbl_last_update font-monospace text-end">-</td>
{% endif %}
{% if show_last_check %}
<td class="value tbl_last_check font-monospace text-end">-</td>
{% endif %}
{% else %}
{% if db_is_system_schema %}
{% set action_colspan = 3 %}
{% else %}
{% set action_colspan = 6 %}
{% endif %}
{% if num_favorite_tables > 0 %}
{% set action_colspan = action_colspan + 1 %}
{% endif %}
{% set colspan_for_structure = action_colspan + 3 %}
<td colspan="{{ colspan_for_structure - db_is_system_schema ? 6 : 9 }}"
class="text-center">
{% trans 'in use' %}
</td>
{% endif %}
</tr>

View file

@ -0,0 +1,81 @@
<form method="post" action="{{ url('/database/structure') }}" name="tablesForm" id="tablesForm">
{{ get_hidden_inputs(db) }}
<div class="table-responsive">
<table class="table table-striped table-hover table-sm w-auto data">
<thead>
<tr>
<th class="d-print-none"></th>
<th>{{ sortable_table_header('Table'|trans, 'table') }}</th>
{% if replication %}
<th>{% trans 'Replication' %}</th>
{% endif %}
{% if db_is_system_schema %}
{% set action_colspan = 3 %}
{% else %}
{% set action_colspan = 6 %}
{% endif %}
{% if num_favorite_tables > 0 %}
{% set action_colspan = action_colspan + 1 %}
{% endif %}
<th colspan="{{ action_colspan }}" class="d-print-none">
{% trans 'Action' %}
</th>
{# larger values are more interesting so default sort order is DESC #}
<th>
{{ sortable_table_header('Rows'|trans, 'records', 'DESC') }}
{{ show_hint('May be approximate. Click on the number to get the exact count. See [doc@faq3-11]FAQ 3.11[/doc].'|trans|sanitize) }}
</th>
{% if not (properties_num_columns > 1) %}
<th>{{ sortable_table_header('Type'|trans, 'type') }}</th>
<th>{{ sortable_table_header('Collation'|trans, 'collation') }}</th>
{% endif %}
{% if is_show_stats %}
{# larger values are more interesting so default sort order is DESC #}
<th>{{ sortable_table_header('Size'|trans, 'size', 'DESC') }}</th>
{# larger values are more interesting so default sort order is DESC #}
<th>{{ sortable_table_header('Overhead'|trans, 'overhead', 'DESC') }}</th>
{% endif %}
{% if show_charset %}
<th>{{ sortable_table_header('Charset'|trans, 'charset') }}</th>
{% endif %}
{% if show_comment %}
<th>{{ sortable_table_header('Comment'|trans, 'comment') }}</th>
{% endif %}
{% if show_creation %}
{# newer values are more interesting so default sort order is DESC #}
<th>{{ sortable_table_header('Creation'|trans, 'creation', 'DESC') }}</th>
{% endif %}
{% if show_last_update %}
{# newer values are more interesting so default sort order is DESC #}
<th>{{ sortable_table_header('Last update'|trans, 'last_update', 'DESC') }}</th>
{% endif %}
{% if show_last_check %}
{# newer values are more interesting so default sort order is DESC #}
<th>{{ sortable_table_header('Last check'|trans, 'last_check', 'DESC') }}</th>
{% endif %}
</tr>
</thead>
<tbody>
{% for structure_table_row in structure_table_rows %}
{% include 'database/structure/structure_table_row.twig' with structure_table_row only %}
{% endfor %}
</tbody>
{% if body_for_table_summary %}
{% include 'database/structure/body_for_table_summary.twig' with body_for_table_summary only %}
{% endif %}
</table>
</div>
{% if check_all_tables %}
{% include 'database/structure/check_all_tables.twig' with check_all_tables only %}
{% endif %}
</form>
{% if check_all_tables %}
{% include 'database/structure/bulk_action_modal.twig' with check_all_tables only %}
{% endif %}

View file

@ -0,0 +1,7 @@
<a href="{{ url('/table/tracking', {'table': table, 'db': db}) }}">
{% if is_tracked -%}
{{ get_image('eye', 'Tracking is active.'|trans) }}
{%- else -%}
{{ get_image('eye_grey', 'Tracking is not active.'|trans) }}
{%- endif %}
</a>