aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/templates/display
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/templates/display
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/templates/display')
-rw-r--r--srcs/phpmyadmin/templates/display/export/format_dropdown.twig4
-rw-r--r--srcs/phpmyadmin/templates/display/export/hidden_inputs.twig23
-rw-r--r--srcs/phpmyadmin/templates/display/export/method.twig22
-rw-r--r--srcs/phpmyadmin/templates/display/export/option_header.twig12
-rw-r--r--srcs/phpmyadmin/templates/display/export/options_format.twig24
-rw-r--r--srcs/phpmyadmin/templates/display/export/options_output.twig54
-rw-r--r--srcs/phpmyadmin/templates/display/export/options_output_charset.twig16
-rw-r--r--srcs/phpmyadmin/templates/display/export/options_output_compression.twig24
-rw-r--r--srcs/phpmyadmin/templates/display/export/options_output_format.twig13
-rw-r--r--srcs/phpmyadmin/templates/display/export/options_output_radio.twig7
-rw-r--r--srcs/phpmyadmin/templates/display/export/options_output_save_dir.twig15
-rw-r--r--srcs/phpmyadmin/templates/display/export/options_output_separate_files.twig12
-rw-r--r--srcs/phpmyadmin/templates/display/export/options_quick_export.twig20
-rw-r--r--srcs/phpmyadmin/templates/display/export/options_rows.twig35
-rw-r--r--srcs/phpmyadmin/templates/display/export/select_options.twig19
-rw-r--r--srcs/phpmyadmin/templates/display/export/selection.twig10
-rw-r--r--srcs/phpmyadmin/templates/display/export/template_loading.twig27
-rw-r--r--srcs/phpmyadmin/templates/display/export/template_options.twig7
-rw-r--r--srcs/phpmyadmin/templates/display/import/import.twig195
-rw-r--r--srcs/phpmyadmin/templates/display/import/javascript.twig162
-rw-r--r--srcs/phpmyadmin/templates/display/results/comment_for_row.twig10
-rw-r--r--srcs/phpmyadmin/templates/display/results/data_for_resetting_column_order.twig9
-rw-r--r--srcs/phpmyadmin/templates/display/results/empty_display.twig1
-rw-r--r--srcs/phpmyadmin/templates/display/results/null_display.twig7
-rw-r--r--srcs/phpmyadmin/templates/display/results/options_block.twig121
-rw-r--r--srcs/phpmyadmin/templates/display/results/page_selector.twig6
-rw-r--r--srcs/phpmyadmin/templates/display/results/sort_by_key.twig9
-rw-r--r--srcs/phpmyadmin/templates/display/results/table.twig11
-rw-r--r--srcs/phpmyadmin/templates/display/results/table_headers.twig23
-rw-r--r--srcs/phpmyadmin/templates/display/results/table_navigation.twig82
-rw-r--r--srcs/phpmyadmin/templates/display/results/table_navigation_button.twig12
-rw-r--r--srcs/phpmyadmin/templates/display/results/value_display.twig3
32 files changed, 995 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/templates/display/export/format_dropdown.twig b/srcs/phpmyadmin/templates/display/export/format_dropdown.twig
new file mode 100644
index 0000000..adda19b
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/format_dropdown.twig
@@ -0,0 +1,4 @@
+<div class="exportoptions" id="format">
+ <h3>{% trans 'Format:' %}</h3>
+ {{ dropdown|raw }}
+</div>
diff --git a/srcs/phpmyadmin/templates/display/export/hidden_inputs.twig b/srcs/phpmyadmin/templates/display/export/hidden_inputs.twig
new file mode 100644
index 0000000..fc7c04e
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/hidden_inputs.twig
@@ -0,0 +1,23 @@
+{% if export_type == 'server' %}
+ {{ get_hidden_inputs('', '', 1) }}
+{% elseif export_type == 'database' %}
+ {{ get_hidden_inputs(db, '', 1) }}
+{% else %}
+ {{ get_hidden_inputs(db, table, 1) }}
+{% endif %}
+
+{# Just to keep this value for possible next display of this form after saving on server #}
+{% if single_table is not empty %}
+ <input type="hidden" name="single_table" value="TRUE">
+{% endif %}
+
+<input type="hidden" name="export_type" value="{{ export_type }}">
+
+{# The export method (quick, custom or custom-no-form) #}
+<input type="hidden" name="export_method" value="{{ export_method }}">
+
+{% if sql_query is not empty %}
+ <input type="hidden" name="sql_query" value="{{ sql_query }}">
+{% endif %}
+
+<input type="hidden" name="template_id" value="{{ template_id }}">
diff --git a/srcs/phpmyadmin/templates/display/export/method.twig b/srcs/phpmyadmin/templates/display/export/method.twig
new file mode 100644
index 0000000..5521f57
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/method.twig
@@ -0,0 +1,22 @@
+{% if export_method != 'custom-no-form' %}
+ <div class="exportoptions" id="quick_or_custom">
+ <h3>{% trans 'Export method:' %}</h3>
+ <ul>
+ <li>
+ <input type="radio" name="quick_or_custom" value="quick" id="radio_quick_export"
+ {{- export_method == 'quick' ? ' checked' }}>
+ <label for="radio_quick_export">
+ {% trans 'Quick - display only the minimal options' %}
+ </label>
+ </li>
+
+ <li>
+ <input type="radio" name="quick_or_custom" value="custom" id="radio_custom_export"
+ {{- export_method == 'custom' ? ' checked' }}>
+ <label for="radio_custom_export">
+ {% trans 'Custom - display all possible options' %}
+ </label>
+ </li>
+ </ul>
+ </div>
+{% endif %}
diff --git a/srcs/phpmyadmin/templates/display/export/option_header.twig b/srcs/phpmyadmin/templates/display/export/option_header.twig
new file mode 100644
index 0000000..03e4f6b
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/option_header.twig
@@ -0,0 +1,12 @@
+<div class="exportoptions" id="header">
+ <h2>
+ {{ get_image('b_export', 'Export'|trans) }}
+ {% if export_type == 'server' %}
+ {% trans 'Exporting databases from the current server' %}
+ {% elseif export_type == 'database' %}
+ {{ 'Exporting tables from "%s" database'|trans|format(db) }}
+ {% else %}
+ {{ 'Exporting rows from "%s" table'|trans|format(table) }}
+ {% endif %}
+ </h2>
+</div>
diff --git a/srcs/phpmyadmin/templates/display/export/options_format.twig b/srcs/phpmyadmin/templates/display/export/options_format.twig
new file mode 100644
index 0000000..6b09814
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/options_format.twig
@@ -0,0 +1,24 @@
+<div class="exportoptions" id="format_specific_opts">
+ <h3>{% trans 'Format-specific options:' %}</h3>
+ <p class="no_js_msg" id="scroll_to_options_msg">
+ {% trans 'Scroll down to fill in the options for the selected format and ignore the options for other formats.' %}
+ </p>
+ {{ options|raw }}
+</div>
+
+{% if can_convert_kanji %}
+ {# Japanese encoding setting #}
+ <div class="exportoptions" id="kanji_encoding">
+ <h3>{% trans 'Encoding Conversion:' %}</h3>
+ {% include 'encoding/kanji_encoding_form.twig' %}
+ </div>
+{% endif %}
+
+<div class="exportoptions" id="submit">
+ <input id="buttonGo" class="btn btn-primary" type="submit" value="{% trans 'Go' %}"
+ {#- If the time limit set is zero, then time out won't occur so no need
+ to check for time out. -#}
+ {%- if exec_time_limit > 0 %}
+ onclick="Export.checkTimeOut({{ exec_time_limit }})"
+ {%- endif %}>
+</div>
diff --git a/srcs/phpmyadmin/templates/display/export/options_output.twig b/srcs/phpmyadmin/templates/display/export/options_output.twig
new file mode 100644
index 0000000..60d721c
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/options_output.twig
@@ -0,0 +1,54 @@
+<div class="exportoptions" id="output">
+ <h3>{% trans 'Output:' %}</h3>
+ <ul id="ul_output">
+ <li>
+ <input type="checkbox" id="btn_alias_config"{{ has_aliases ? ' checked' }}>
+ <label for="btn_alias_config">
+ {% trans 'Rename exported databases/tables/columns' %}
+ </label>
+ </li>
+
+ {% if export_type != 'server' %}
+ <li>
+ <input type="checkbox" name="lock_tables"
+ value="something" id="checkbox_lock_tables"
+ {{- (not repopulate and is_checked_lock_tables) or lock_tables ? ' checked' }}>
+ <label for="checkbox_lock_tables">
+ {{ 'Use %s statement'|trans|format('<code>LOCK TABLES</code>')|raw }}
+ </label>
+ </li>
+ {% endif %}
+
+ <li>
+ <input type="radio" name="output_format" value="sendit" id="radio_dump_asfile"
+ {{- not repopulate and is_checked_asfile ? ' checked' }}>
+ <label for="radio_dump_asfile">
+ {% trans 'Save output to a file' %}
+ </label>
+ <ul id="ul_save_asfile">
+ {% if save_dir is not empty %}
+ {{ options_output_save_dir|raw }}
+ {% endif %}
+
+ {{ options_output_format|raw }}
+
+ {% if is_encoding_supported %}
+ {{ options_output_charset|raw }}
+ {% endif %}
+
+ {{ options_output_compression|raw }}
+
+ {% if export_type == 'server' or export_type == 'database' %}
+ {{ options_output_separate_files|raw }}
+ {% endif %}
+ </ul>
+ </li>
+
+ {{ options_output_radio|raw }}
+ </ul>
+
+ <label for="maxsize">
+ {{- 'Skip tables larger than %s MiB'|trans|format(
+ '</label><input type="text" id="maxsize" name="maxsize" size="4">'
+ )|raw }}
+</div>
diff --git a/srcs/phpmyadmin/templates/display/export/options_output_charset.twig b/srcs/phpmyadmin/templates/display/export/options_output_charset.twig
new file mode 100644
index 0000000..bd316bf
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/options_output_charset.twig
@@ -0,0 +1,16 @@
+<li>
+ <label for="select_charset" class="desc">
+ {% trans 'Character set of the file:' %}
+ </label>
+ <select id="select_charset" name="charset" size="1">
+ {% for charset in encodings %}
+ <option value="{{ charset }}"
+ {%- if (export_charset is empty and charset == 'utf-8')
+ or charset == export_charset %}
+ selected
+ {%- endif %}>
+ {{- charset -}}
+ </option>
+ {% endfor %}
+ </select>
+</li>
diff --git a/srcs/phpmyadmin/templates/display/export/options_output_compression.twig b/srcs/phpmyadmin/templates/display/export/options_output_compression.twig
new file mode 100644
index 0000000..1905981
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/options_output_compression.twig
@@ -0,0 +1,24 @@
+{% if is_zip or is_gzip %}
+ <li>
+ <label for="compression" class="desc">
+ {% trans 'Compression:' %}
+ </label>
+ <select id="compression" name="compression">
+ <option value="none">{% trans 'None' %}</option>
+ {% if is_zip %}
+ <option value="zip"
+ {{- selected_compression == 'zip' ? ' selected' }}>
+ {% trans 'zipped' %}
+ </option>
+ {% endif %}
+ {% if is_gzip %}
+ <option value="gzip"
+ {{- selected_compression == 'gzip' ? ' selected' }}>
+ {% trans 'gzipped' %}
+ </option>
+ {% endif %}
+ </select>
+ </li>
+{% else %}
+ <input type="hidden" name="compression" value="{{ selected_compression }}">
+{% endif %}
diff --git a/srcs/phpmyadmin/templates/display/export/options_output_format.twig b/srcs/phpmyadmin/templates/display/export/options_output_format.twig
new file mode 100644
index 0000000..d75d330
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/options_output_format.twig
@@ -0,0 +1,13 @@
+<li>
+ <label for="filename_template" class="desc">
+ {% trans 'File name template:' %}
+ {{ show_hint(message) }}
+ </label>
+ <input type="text" name="filename_template" id="filename_template" value="
+ {{- filename_template }}">
+ <input type="checkbox" name="remember_template" id="checkbox_remember_template"
+ {{- is_checked ? ' checked' }}>
+ <label for="checkbox_remember_template">
+ {% trans 'use this for future exports' %}
+ </label>
+</li>
diff --git a/srcs/phpmyadmin/templates/display/export/options_output_radio.twig b/srcs/phpmyadmin/templates/display/export/options_output_radio.twig
new file mode 100644
index 0000000..7adf21e
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/options_output_radio.twig
@@ -0,0 +1,7 @@
+<li>
+ <input type="radio" id="radio_view_as_text" name="output_format" value="astext"
+ {{- has_repopulate or export_asfile == false ? ' checked' }}>
+ <label for="radio_view_as_text">
+ {% trans 'View output as text' %}
+ </label>
+</li>
diff --git a/srcs/phpmyadmin/templates/display/export/options_output_save_dir.twig b/srcs/phpmyadmin/templates/display/export/options_output_save_dir.twig
new file mode 100644
index 0000000..b4526aa
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/options_output_save_dir.twig
@@ -0,0 +1,15 @@
+<li>
+ <input type="checkbox" name="onserver" value="saveit"
+ id="checkbox_dump_onserver"{{ export_is_checked ? ' checked' }}>
+ <label for="checkbox_dump_onserver">
+ {{ 'Save on server in the directory <strong>%s</strong>'|trans|format(save_dir|e)|raw }}
+ </label>
+</li>
+<li>
+ <input type="checkbox" name="onserver_overwrite"
+ value="saveitover" id="checkbox_dump_onserver_overwrite"
+ {{- export_overwrite_is_checked ? ' checked' }}>
+ <label for="checkbox_dump_onserver_overwrite">
+ {% trans 'Overwrite existing file(s)' %}
+ </label>
+</li>
diff --git a/srcs/phpmyadmin/templates/display/export/options_output_separate_files.twig b/srcs/phpmyadmin/templates/display/export/options_output_separate_files.twig
new file mode 100644
index 0000000..fec85c4
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/options_output_separate_files.twig
@@ -0,0 +1,12 @@
+<li>
+ <input type="checkbox" id="checkbox_as_separate_files"
+ name="as_separate_files" value="{{ export_type }}"
+ {{- is_checked ? ' checked' }}>
+ <label for="checkbox_as_separate_files">
+ {% if export_type == 'server' %}
+ {% trans 'Export databases as separate files' %}
+ {% elseif export_type == 'database' %}
+ {% trans 'Export tables as separate files' %}
+ {% endif %}
+ </label>
+</li>
diff --git a/srcs/phpmyadmin/templates/display/export/options_quick_export.twig b/srcs/phpmyadmin/templates/display/export/options_quick_export.twig
new file mode 100644
index 0000000..b3bd159
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/options_quick_export.twig
@@ -0,0 +1,20 @@
+<div class="exportoptions" id="output_quick_export">
+ <h3>{% trans 'Output:' %}</h3>
+ <ul>
+ <li>
+ <input type="checkbox" name="quick_export_onserver" value="saveit"
+ id="checkbox_quick_dump_onserver"{{ export_is_checked ? ' checked' }}>
+ <label for="checkbox_quick_dump_onserver">
+ {{ 'Save on server in the directory <strong>%s</strong>'|trans|format(save_dir|e)|raw }}
+ </label>
+ </li>
+ <li>
+ <input type="checkbox" name="quick_export_onserver_overwrite"
+ value="saveitover" id="checkbox_quick_dump_onserver_overwrite"
+ {{- export_overwrite_is_checked ? ' checked' }}>
+ <label for="checkbox_quick_dump_onserver_overwrite">
+ {% trans 'Overwrite existing file(s)' %}
+ </label>
+ </li>
+ </ul>
+</div>
diff --git a/srcs/phpmyadmin/templates/display/export/options_rows.twig b/srcs/phpmyadmin/templates/display/export/options_rows.twig
new file mode 100644
index 0000000..1d4f866
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/options_rows.twig
@@ -0,0 +1,35 @@
+<div class="exportoptions" id="rows">
+ <h3>{% trans 'Rows:' %}</h3>
+ <ul>
+ <li>
+ <input type="radio" name="allrows" value="0" id="radio_allrows_0"
+ {{- allrows is not null and allrows == 0 ? ' checked' }}>
+ <label for="radio_allrows_0">{% trans 'Dump some row(s)' %}</label>
+ <ul>
+ <li>
+ <label for="limit_to">{% trans 'Number of rows:' %}</label>
+ <input type="text" id="limit_to" name="limit_to" size="5" value="
+ {%- apply spaceless %}
+ {% if limit_to is not null %}
+ {{ limit_to }}
+ {% elseif unlim_num_rows is not empty and unlim_num_rows != 0 %}
+ {{ unlim_num_rows }}
+ {% else %}
+ {{ number_of_rows }}
+ {% endif %}
+ {% endapply %}" onfocus="this.select()">
+ </li>
+ <li>
+ <label for="limit_from">{% trans 'Row to begin at:' %}</label>
+ <input type="text" id="limit_from" name="limit_from" size="5" value="
+ {{- limit_from is not null ? limit_from : 0 }}" onfocus="this.select()">
+ </li>
+ </ul>
+ </li>
+ <li>
+ <input type="radio" name="allrows" value="1" id="radio_allrows_1"
+ {{- allrows is null or allrows == 1 ? ' checked' }}>
+ <label for="radio_allrows_1">{% trans 'Dump all rows' %}</label>
+ </li>
+ </ul>
+</div>
diff --git a/srcs/phpmyadmin/templates/display/export/select_options.twig b/srcs/phpmyadmin/templates/display/export/select_options.twig
new file mode 100644
index 0000000..4ca00ba
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/select_options.twig
@@ -0,0 +1,19 @@
+<div>
+ <p>
+ <a href="#" onclick="Functions.setSelectOptions('dump', 'db_select[]', true); return false;">
+ {% trans 'Select all' %}
+ </a>
+ /
+ <a href="#" onclick="Functions.setSelectOptions('dump', 'db_select[]', false); return false;">
+ {% trans 'Unselect all' %}
+ </a>
+ </p>
+
+ <select name="db_select[]" id="db_select" size="10" multiple>
+ {% for database in databases %}
+ <option value="{{ database.name }}"{{ database.is_selected ? ' selected' }}>
+ {{ database.name }}
+ </option>
+ {% endfor %}
+ </select>
+</div>
diff --git a/srcs/phpmyadmin/templates/display/export/selection.twig b/srcs/phpmyadmin/templates/display/export/selection.twig
new file mode 100644
index 0000000..6f691f5
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/selection.twig
@@ -0,0 +1,10 @@
+<div class="exportoptions" id="databases_and_tables">
+ {% if export_type == 'server' %}
+ <h3>{% trans 'Databases:' %}</h3>
+ {% elseif export_type == 'database' %}
+ <h3>{% trans 'Tables:' %}</h3>
+ {% endif %}
+ {% if multi_values is not empty %}
+ {{ multi_values|raw }}
+ {% endif %}
+</div>
diff --git a/srcs/phpmyadmin/templates/display/export/template_loading.twig b/srcs/phpmyadmin/templates/display/export/template_loading.twig
new file mode 100644
index 0000000..16eaa6d
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/template_loading.twig
@@ -0,0 +1,27 @@
+<div class="exportoptions" id="export_templates">
+ <h3>{% trans 'Export templates:' %}</h3>
+
+ <div class="floatleft">
+ <form method="post" action="tbl_export.php" id="newTemplateForm" class="ajax">
+ <h4>{% trans 'New template:' %}</h4>
+ <input type="text" name="templateName" id="templateName"
+ maxlength="64" placeholder="{% trans 'Template name' %}" required>
+ <input class="btn btn-secondary" type="submit" name="createTemplate" id="createTemplate"
+ value="{% trans 'Create' %}">
+ </form>
+ </div>
+
+ <div class="floatleft" style="margin-left: 50px;">
+ <form method="post" action="tbl_export.php" id="existingTemplatesForm" class="ajax">
+ <h4>{% trans 'Existing templates:' %}</h4>
+ <label for="template">{% trans 'Template:' %}</label>
+ <select name="template" id="template" required>
+ {{ options|raw }}
+ </select>
+ <input class="btn btn-secondary" type="submit" name="updateTemplate" id="updateTemplate" value="{% trans 'Update' %}">
+ <input class="btn btn-secondary" type="submit" name="deleteTemplate" id="deleteTemplate" value="{% trans 'Delete' %}">
+ </form>
+ </div>
+
+ <div class="clearfloat"></div>
+</div>
diff --git a/srcs/phpmyadmin/templates/display/export/template_options.twig b/srcs/phpmyadmin/templates/display/export/template_options.twig
new file mode 100644
index 0000000..ddcd4f5
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/export/template_options.twig
@@ -0,0 +1,7 @@
+<option value="">-- {% trans 'Select a template' %} --</option>
+
+{% for template in templates %}
+ <option value="{{ template.id }}"{{ template.id == selected_template ? ' selected' }}>
+ {{ template.name }}
+ </option>
+{% endfor %}
diff --git a/srcs/phpmyadmin/templates/display/import/import.twig b/srcs/phpmyadmin/templates/display/import/import.twig
new file mode 100644
index 0000000..dab14a3
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/import/import.twig
@@ -0,0 +1,195 @@
+<iframe id="import_upload_iframe" name="import_upload_iframe" width="1" height="1" class="hide"></iframe>
+<div id="import_form_status" class="hide"></div>
+<div id="importmain">
+ <img src="{{ pma_theme_image }}ajax_clock_small.gif" width="16" height="16" alt="ajax clock" class="hide">
+
+ <script type="text/javascript">
+ //<![CDATA[
+ {% include 'display/import/javascript.twig' with {
+ 'upload_id': upload_id,
+ 'handler': handler,
+ 'pma_theme_image': pma_theme_image
+ } only %}
+ //]]>
+ </script>
+
+ <form id="import_file_form"
+ action="import.php"
+ method="post"
+ enctype="multipart/form-data"
+ name="import"
+ class="ajax"
+ {%- if handler != 'PhpMyAdmin\\Plugins\\Import\\Upload\\UploadNoplugin' %}
+ target="import_upload_iframe"
+ {%- endif %}>
+
+ <input type="hidden" name="{{ id_key }}" value="{{ upload_id }}">
+ {% if import_type == 'server' %}
+ {{ get_hidden_inputs('', '', 1) }}
+ {% elseif import_type == 'database' %}
+ {{ get_hidden_inputs(db, '', 1) }}
+ {% else %}
+ {{ get_hidden_inputs(db, table, 1) }}
+ {% endif %}
+ <input type="hidden" name="import_type" value="{{ import_type }}">
+
+ <div class="exportoptions" id="header">
+ <h2>
+ {{ get_image('b_import', 'Import'|trans) }}
+ {% if import_type == 'server' %}
+ {% trans 'Importing into the current server' %}
+ {% elseif import_type == 'database' %}
+ {{ 'Importing into the database "%s"'|trans|format(db) }}
+ {% else %}
+ {{ 'Importing into the table "%s"'|trans|format(table) }}
+ {% endif %}
+ </h2>
+ </div>
+
+ <div class="importoptions">
+ <h3>{% trans 'File to import:' %}</h3>
+
+ {# We don't have show anything about compression, when no supported #}
+ {% if compressions is not empty %}
+ <div class="formelementrow" id="compression_info">
+ <p>
+ {{ 'File may be compressed (%s) or uncompressed.'|trans|format(compressions|join(', ')) }}
+ <br>
+ {% trans 'A compressed file\'s name must end in <strong>.[format].[compression]</strong>. Example: <strong>.sql.zip</strong>' %}
+ </p>
+ </div>
+ {% endif %}
+
+ <div class="formelementrow" id="upload_form">
+ {% if is_upload and upload_dir is not empty %}
+ <ul>
+ <li>
+ <input type="radio" name="file_location" id="radio_import_file" required="required">
+ {{ get_browse_upload_file_block(max_upload_size) }}
+ {% trans 'You may also drag and drop a file on any page.' %}
+ </li>
+ <li>
+ <input type="radio" name="file_location" id="radio_local_import_file"
+ {%- if timeout_passed_global is not empty and local_import_file is not empty %}
+ checked="checked"
+ {%- endif %}>
+ {{ get_select_upload_file_block(
+ import_list,
+ upload_dir
+ ) }}
+ </li>
+ </ul>
+ {% elseif is_upload %}
+ {{ get_browse_upload_file_block(max_upload_size) }}
+ <p>{% trans 'You may also drag and drop a file on any page.' %}</p>
+ {% elseif not is_upload %}
+ {{ 'File uploads are not allowed on this server.'|trans|notice }}
+ {% elseif upload_dir is not empty %}
+ {{ get_select_upload_file_block(
+ import_list,
+ upload_dir
+ ) }}
+ {% endif %}
+ </div>
+
+ <div class="formelementrow" id="charaset_of_file">
+ {# Charset of file #}
+ <label for="charset_of_file">{% trans 'Character set of the file:' %}</label>
+ {% if is_encoding_supported %}
+ <select id="charset_of_file" name="charset_of_file" size="1">
+ {% for charset in encodings %}
+ <option value="{{ charset }}"
+ {% if (import_charset is empty and charset == 'utf-8')
+ or charset == import_charset %}
+ selected="selected"
+ {% endif %}>
+ {{ charset }}
+ </option>
+ {% endfor %}
+ </select>
+ {% else %}
+ <select lang="en" dir="ltr" name="charset_of_file" id="charset_of_file">
+ <option value=""></option>
+ {% for charset in charsets %}
+ <option value="{{ charset.name }}" title="{{ charset.description }}"
+ {{- charset.name == 'utf8' ? ' selected' }}>
+ {{- charset.name -}}
+ </option>
+ {% endfor %}
+ </select>
+ {% endif %}
+ </div>
+ </div>
+
+ <div class="importoptions">
+ <h3>{% trans 'Partial import:' %}</h3>
+
+ {% if timeout_passed is defined and timeout_passed %}
+ <div class="formelementrow">
+ <input type="hidden" name="skip" value="{{ offset }}">
+ {{ 'Previous import timed out, after resubmitting will continue from position %d.'|trans|format(offset) }}
+ </div>
+ {% endif %}
+
+ <div class="formelementrow">
+ <input type="checkbox" name="allow_interrupt" value="yes" id="checkbox_allow_interrupt"
+ {{ checkbox_check('Import', 'allow_interrupt') }}>
+ <label for="checkbox_allow_interrupt">
+ {% trans 'Allow the interruption of an import in case the script detects it is close to the PHP timeout limit. <em>(This might be a good way to import large files, however it can break transactions.)</em>' %}
+ </label>
+ </div>
+
+ {% if not (timeout_passed is defined and timeout_passed) %}
+ <div class="formelementrow">
+ <label for="text_skip_queries">
+ {% trans 'Skip this number of queries (for SQL) starting from the first one:' %}
+ </label>
+ <input type="number" name="skip_queries" value="
+ {{- get_default_plugin('Import', 'skip_queries') -}}
+ " id="text_skip_queries" min="0">
+ </div>
+ {% else %}
+ {# If timeout has passed,
+ do not show the Skip dialog to avoid the risk of someone
+ entering a value here that would interfere with "skip" #}
+ <input type="hidden" name="skip_queries" value="
+ {{- get_default_plugin('Import', 'skip_queries') -}}
+ " id="text_skip_queries">
+ {% endif %}
+ </div>
+
+ <div class="importoptions">
+ <h3>{% trans 'Other options:' %}</h3>
+ <div class="formelementrow">
+ {{ get_fk_checkbox() }}
+ </div>
+ </div>
+
+ <div class="importoptions">
+ <h3>{% trans 'Format:' %}</h3>
+ {{ get_choice('Import', 'format', import_list) }}
+ <div id="import_notification"></div>
+ </div>
+
+ <div class="importoptions" id="format_specific_opts">
+ <h3>{% trans 'Format-specific options:' %}</h3>
+ <p class="no_js_msg" id="scroll_to_options_msg">
+ {% trans 'Scroll down to fill in the options for the selected format and ignore the options for other formats.' %}
+ </p>
+ {{ get_options('Import', import_list) }}
+ </div>
+ <div class="clearfloat"></div>
+
+ {# Japanese encoding setting #}
+ {% if can_convert_kanji %}
+ <div class="importoptions" id="kanji_encoding">
+ <h3>{% trans 'Encoding Conversion:' %}</h3>
+ {% include 'encoding/kanji_encoding_form.twig' %}
+ </div>
+ {% endif %}
+
+ <div class="importoptions" id="submit">
+ <input id="buttonGo" class="btn btn-primary" type="submit" value="{% trans 'Go' %}">
+ </div>
+ </form>
+</div>
diff --git a/srcs/phpmyadmin/templates/display/import/javascript.twig b/srcs/phpmyadmin/templates/display/import/javascript.twig
new file mode 100644
index 0000000..ec91e3c
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/import/javascript.twig
@@ -0,0 +1,162 @@
+$( function() {
+ {# Add event when user click on "Go" button #}
+ $("#buttonGo").on("click", function() {
+ {# Hide form #}
+ $("#upload_form_form").css("display", "none");
+
+ {% if handler != 'PhpMyAdmin\\Plugins\\Import\\Upload\\UploadNoplugin' %}
+ {# Some variable for javascript #}
+ {% set ajax_url = 'import_status.php?id=' ~ upload_id ~ get_common_raw({
+ 'import_status': 1
+ }, '&') %}
+ {% set promot_str = 'The file being uploaded is probably larger than the maximum allowed size or this is a known bug in webkit based (Safari, Google Chrome, Arora etc.) browsers.'|trans|js_format(false) %}
+ {% set statustext_str = '%s of %s'|trans|escape_js_string %}
+ {% set second_str = '%s/sec.'|trans|js_format(false) %}
+ {% set remaining_min = 'About %MIN min. %SEC sec. remaining.'|trans|js_format(false) %}
+ {% set remaining_second = 'About %SEC sec. remaining.'|trans|js_format(false) %}
+ {% set processed_str = 'The file is being processed, please be patient.'|trans|js_format(false) %}
+ {% set import_url = get_common_raw({'import_status': 1}, '&') %}
+
+ {% set upload_html %}
+ {% apply spaceless %}
+ <div class="upload_progress">
+ <div class="upload_progress_bar_outer">
+ <div class="percentage"></div>
+ <div id="status" class="upload_progress_bar_inner">
+ <div class="percentage"></div>
+ </div>
+ </div>
+ <div>
+ <img src="{{ pma_theme_image }}ajax_clock_small.gif" width="16" height="16" alt="ajax clock"> {{ 'Uploading your import file…'|trans|js_format(false) -}}
+ </div>
+ <div id="statustext"></div>
+ </div>
+ {% endapply %}
+ {% endset %}
+
+ {# Start output #}
+ var finished = false;
+ var percent = 0.0;
+ var total = 0;
+ var complete = 0;
+ var original_title = parent && parent.document ? parent.document.title : false;
+ var import_start;
+
+ var perform_upload = function () {
+ new $.getJSON(
+ "{{ ajax_url|raw }}",
+ {},
+ function(response) {
+ finished = response.finished;
+ percent = response.percent;
+ total = response.total;
+ complete = response.complete;
+
+ if (total==0 && complete==0 && percent==0) {
+ $("#upload_form_status_info").html('<img src="{{ pma_theme_image }}ajax_clock_small.gif" width="16" height="16" alt="ajax clock"> {{ promot_str|raw }}');
+ $("#upload_form_status").css("display", "none");
+ } else {
+ var now = new Date();
+ now = Date.UTC(
+ now.getFullYear(),
+ now.getMonth(),
+ now.getDate(),
+ now.getHours(),
+ now.getMinutes(),
+ now.getSeconds())
+ + now.getMilliseconds() - 1000;
+ var statustext = Functions.sprintf(
+ "{{ statustext_str|raw }}",
+ Functions.formatBytes(
+ complete, 1, Messages.strDecimalSeparator
+ ),
+ Functions.formatBytes(
+ total, 1, Messages.strDecimalSeparator
+ )
+ );
+
+ if ($("#importmain").is(":visible")) {
+ {# Show progress UI #}
+ $("#importmain").hide();
+ $("#import_form_status")
+ .html('{{ upload_html|raw }}')
+ .show();
+ import_start = now;
+ }
+ else if (percent > 9 || complete > 2000000) {
+ {# Calculate estimated time #}
+ var used_time = now - import_start;
+ var seconds = parseInt(((total - complete) / complete) * used_time / 1000);
+ var speed = Functions.sprintf(
+ "{{ second_str|raw }}",
+ Functions.formatBytes(complete / used_time * 1000, 1, Messages.strDecimalSeparator)
+ );
+
+ var minutes = parseInt(seconds / 60);
+ seconds %= 60;
+ var estimated_time;
+ if (minutes > 0) {
+ estimated_time = "{{ remaining_min|raw }}"
+ .replace("%MIN", minutes)
+ .replace("%SEC", seconds);
+ }
+ else {
+ estimated_time = "{{ remaining_second|raw }}"
+ .replace("%SEC", seconds);
+ }
+
+ statustext += "<br>" + speed + "<br><br>" + estimated_time;
+ }
+
+ var percent_str = Math.round(percent) + "%";
+ $("#status").animate({width: percent_str}, 150);
+ $(".percentage").text(percent_str);
+
+ {# Show percent in window title #}
+ if (original_title !== false) {
+ parent.document.title
+ = percent_str + " - " + original_title;
+ }
+ else {
+ document.title
+ = percent_str + " - " + original_title;
+ }
+ $("#statustext").html(statustext);
+ }
+
+ if (finished == true) {
+ if (original_title !== false) {
+ parent.document.title = original_title;
+ }
+ else {
+ document.title = original_title;
+ }
+ $("#importmain").hide();
+ {# Loads the message, either success or mysql error #}
+ $("#import_form_status")
+ .html('<img src="{{ pma_theme_image }}ajax_clock_small.gif" width="16" height="16" alt="ajax clock"> {{ processed_str|raw }}')
+ .show();
+ $("#import_form_status").load("import_status.php?message=true&{{ import_url|raw }}");
+ Navigation.reload();
+
+ {# If finished #}
+ }
+ else {
+ setTimeout(perform_upload, 1000);
+ }
+ });
+ };
+ setTimeout(perform_upload, 1000);
+ {% else %}
+ {# No plugin available #}
+ {% set image_tag -%}
+ <img src="{{ pma_theme_image -}}
+ ajax_clock_small.gif" width="16" height="16" alt="ajax clock">
+ {{- 'Please be patient, the file is being uploaded. Details about the upload are not available.'|trans|js_format(false) -}}
+ {{- show_docu('faq', 'faq2-9') -}}
+ {%- endset %}
+ $('#upload_form_status_info').html('{{ image_tag|raw }}');
+ $("#upload_form_status").css("display", "none");
+ {% endif %}
+ });
+});
diff --git a/srcs/phpmyadmin/templates/display/results/comment_for_row.twig b/srcs/phpmyadmin/templates/display/results/comment_for_row.twig
new file mode 100644
index 0000000..f232375
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/results/comment_for_row.twig
@@ -0,0 +1,10 @@
+{% if comments_map[fields_meta.table] is defined
+ and comments_map[fields_meta.table][fields_meta.name] is defined %}
+ <br><span class="tblcomment" title="{{ comments_map[fields_meta.table][fields_meta.name] }}">
+ {% if comments_map[fields_meta.table][fields_meta.name]|length > limit_chars %}
+ {{ comments_map[fields_meta.table][fields_meta.name]|slice(0, limit_chars) }}…
+ {% else %}
+ {{ comments_map[fields_meta.table][fields_meta.name] }}
+ {% endif %}
+ </span>
+{% endif %}
diff --git a/srcs/phpmyadmin/templates/display/results/data_for_resetting_column_order.twig b/srcs/phpmyadmin/templates/display/results/data_for_resetting_column_order.twig
new file mode 100644
index 0000000..6a345e7
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/results/data_for_resetting_column_order.twig
@@ -0,0 +1,9 @@
+{% if column_order %}
+ <input class="col_order" type="hidden" value="{{ column_order|join(',') }}">
+{% endif %}
+{% if column_visibility %}
+ <input class="col_visib" type="hidden" value="{{ column_visibility|join(',') }}">
+{% endif %}
+{% if not is_view %}
+ <input class="table_create_time" type="hidden" value="{{ table_create_time }}">
+{% endif %}
diff --git a/srcs/phpmyadmin/templates/display/results/empty_display.twig b/srcs/phpmyadmin/templates/display/results/empty_display.twig
new file mode 100644
index 0000000..cd43ebc
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/results/empty_display.twig
@@ -0,0 +1 @@
+<td {{ align }} class="{{ classes }}"></td>
diff --git a/srcs/phpmyadmin/templates/display/results/null_display.twig b/srcs/phpmyadmin/templates/display/results/null_display.twig
new file mode 100644
index 0000000..f2ea2e5
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/results/null_display.twig
@@ -0,0 +1,7 @@
+<td {{ align }}
+ data-decimals="{{ meta.decimals is defined ? meta.decimals : '-1' }}"
+ data-type="{{ meta.type }}"
+ {# The null class is needed for grid editing #}
+ class="{{ classes }} null">
+ <em>NULL</em>
+</td>
diff --git a/srcs/phpmyadmin/templates/display/results/options_block.twig b/srcs/phpmyadmin/templates/display/results/options_block.twig
new file mode 100644
index 0000000..d185fec
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/results/options_block.twig
@@ -0,0 +1,121 @@
+<form method="post" action="sql.php" name="displayOptionsForm" class="ajax print_ignore">
+ {{ get_hidden_inputs({
+ 'db': db,
+ 'table': table,
+ 'sql_query': sql_query,
+ 'goto': goto,
+ 'display_options_form': 1
+ }) }}
+
+ {% include 'div_for_slider_effect.twig' with {
+ 'id': '',
+ 'message': 'Options'|trans,
+ 'initial_sliders_state': default_sliders_state
+ } only %}
+ <fieldset>
+ <div class="formelement">
+ {# pftext means "partial or full texts" (done to reduce line lengths #}
+ {{ get_radio_fields(
+ 'pftext',
+ {
+ 'P': 'Partial texts'|trans,
+ 'F': 'Full texts'|trans
+ },
+ pftext,
+ true,
+ true,
+ '',
+ 'pftext_' ~ unique_id
+ ) }}
+ </div>
+
+ {% if relwork and displaywork %}
+ <div class="formelement">
+ {{ get_radio_fields(
+ 'relational_display',
+ {
+ 'K': 'Relational key'|trans,
+ 'D': 'Display column for relationships'|trans
+ },
+ relational_display,
+ true,
+ true,
+ '',
+ 'relational_display_' ~ unique_id
+ ) }}
+ </div>
+ {% endif %}
+
+ <div class="formelement">
+ {% include 'checkbox.twig' with {
+ 'html_field_name': 'display_binary',
+ 'label': 'Show binary contents'|trans,
+ 'checked': display_binary is not empty,
+ 'onclick': false,
+ 'html_field_id': 'display_binary_' ~ unique_id
+ } only %}
+ {% include 'checkbox.twig' with {
+ 'html_field_name': 'display_blob',
+ 'label': 'Show BLOB contents'|trans,
+ 'checked': display_blob is not empty,
+ 'onclick': false,
+ 'html_field_id': 'display_blob_' ~ unique_id
+ } only %}
+ </div>
+
+ {# I would have preferred to name this "display_transformation".
+ This is the only way I found to be able to keep this setting sticky
+ per SQL query, and at the same time have a default that displays
+ the transformations. #}
+ <div class="formelement">
+ {% include 'checkbox.twig' with {
+ 'html_field_name': 'hide_transformation',
+ 'label': 'Hide browser transformation'|trans,
+ 'checked': hide_transformation is not empty,
+ 'onclick': false,
+ 'html_field_id': 'hide_transformation_' ~ unique_id
+ } only %}
+ </div>
+
+
+ {% if possible_as_geometry %}
+ <div class="formelement">
+ {{ get_radio_fields(
+ 'geoOption',
+ {
+ 'GEOM': 'Geometry'|trans,
+ 'WKT': 'Well Known Text'|trans,
+ 'WKB': 'Well Known Binary'|trans
+ },
+ geo_option,
+ true,
+ true,
+ '',
+ 'geoOption_' ~ unique_id
+ ) }}
+ </div>
+ {% else %}
+ <div class="formelement">
+ {{ possible_as_geometry }}
+ {{ get_radio_fields(
+ 'geoOption',
+ {
+ 'WKT': 'Well Known Text'|trans,
+ 'WKB': 'Well Known Binary'|trans
+ },
+ geo_option,
+ true,
+ true,
+ '',
+ 'geoOption_' ~ unique_id
+ ) }}
+ </div>
+ {% endif %}
+ <div class="clearfloat"></div>
+ </fieldset>
+
+ <fieldset class="tblFooters">
+ <input class="btn btn-primary" type="submit" value="{% trans 'Go' %}">
+ </fieldset>
+ </div>{# slider effect div #}
+</form>
diff --git a/srcs/phpmyadmin/templates/display/results/page_selector.twig b/srcs/phpmyadmin/templates/display/results/page_selector.twig
new file mode 100644
index 0000000..1791270
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/results/page_selector.twig
@@ -0,0 +1,6 @@
+<td>
+ <form action="sql.php" method="post">
+ {{ get_hidden_inputs(url_params) }}
+ {{ page_selector|raw }}
+ </form>
+</td>
diff --git a/srcs/phpmyadmin/templates/display/results/sort_by_key.twig b/srcs/phpmyadmin/templates/display/results/sort_by_key.twig
new file mode 100644
index 0000000..fb26f10
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/results/sort_by_key.twig
@@ -0,0 +1,9 @@
+<form action="sql.php" method="post" class="print_ignore">
+ {{ get_hidden_fields(hidden_fields) }}
+ {% trans 'Sort by key:' %}
+ <select name="sql_query" class="autosubmit">
+ {% for option in options %}
+ <option value="{{ option.value }}"{{ option.is_selected ? ' selected' }}>{{ option.content }}</option>
+ {% endfor %}
+ </select>
+</form>
diff --git a/srcs/phpmyadmin/templates/display/results/table.twig b/srcs/phpmyadmin/templates/display/results/table.twig
new file mode 100644
index 0000000..760ca1c
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/results/table.twig
@@ -0,0 +1,11 @@
+{{ sql_query_message|raw }}
+{{ navigation|raw }}
+{{ headers|raw }}
+<tbody>
+ {{ body|raw }}
+</tbody>
+</table>
+</div>
+{{ multi_row_operation_links|raw }}
+{{ navigation|raw }}
+{{ operations|raw }}
diff --git a/srcs/phpmyadmin/templates/display/results/table_headers.twig b/srcs/phpmyadmin/templates/display/results/table_headers.twig
new file mode 100644
index 0000000..506a6c0
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/results/table_headers.twig
@@ -0,0 +1,23 @@
+<input class="save_cells_at_once" type="hidden" value="{{ save_cells_at_once }}">
+<div class="common_hidden_inputs">
+ {{ get_hidden_inputs(db, table) }}
+</div>
+
+{{ data_for_resetting_column_order|raw }}
+{{ options_block|raw }}
+
+{% if delete_link == delete_row or delete_link == kill_process %}
+ <form method="post" action="tbl_row_action.php" name="resultsForm" id="resultsForm_{{ unique_id }}" class="ajax">
+ {{ get_hidden_inputs(db, table, 1) }}
+ <input type="hidden" name="goto" value="sql.php">
+{% endif %}
+
+<div class="responsivetable">
+ <table class="table_results data ajax" data-uniqueId="{{ unique_id }}">
+
+ {{ button|raw }}
+ {{ table_headers_for_columns|raw }}
+ {{ column_at_right_side|raw }}
+
+ </tr>
+ </thead>
diff --git a/srcs/phpmyadmin/templates/display/results/table_navigation.twig b/srcs/phpmyadmin/templates/display/results/table_navigation.twig
new file mode 100644
index 0000000..0746243
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/results/table_navigation.twig
@@ -0,0 +1,82 @@
+<table class="navigation nospacing nopadding print_ignore">
+ <tr>
+ <td class="navigation_separator"></td>
+ {{ move_backward_buttons|raw }}
+ {{ page_selector|raw }}
+ {{ move_forward_buttons|raw }}
+ {% if number_total_page > 1 %}
+ <td><div class="navigation_separator">|</div></td>
+ {% endif %}
+ {% if has_show_all %}
+ <td>
+ <form action="sql.php" method="post">
+ {{ get_hidden_fields(hidden_fields|merge({
+ 'session_max_rows': session_max_rows,
+ 'pos': '0'
+ })) }}
+ <input type="checkbox" name="navig" id="showAll_{{ unique_id }}" class="showAllRows" value="all"
+ {{- is_showing_all ? ' checked' }}>
+ <label for="showAll_{{ unique_id }}">{% trans 'Show all' %}</label>
+ </form>
+ </td>
+ <td><div class="navigation_separator">|</div></td>
+ {% endif %}
+ <td>
+ <div class="save_edited hide">
+ <input class="btn btn-link" type="submit" value="{% trans 'Save edited data' %}">
+ <div class="navigation_separator">|</div>
+ </div>
+ </td>
+ <td>
+ <div class="restore_column hide">
+ <input class="btn btn-link" type="submit" value="{% trans 'Restore column order' %}">
+ <div class="navigation_separator">|</div>
+ </div>
+ </td>
+ <td class="navigation_goto">
+ {# if displaying a VIEW, $unlim_num_rows could be zero because #}
+ {# of $cfg['MaxExactCountViews']; in this case, avoid passing #}
+ {# the 5th parameter to Functions.checkFormElementInRange() #}
+ {# (this means we can't validate the upper limit) #}
+ <form action="sql.php" method="post" onsubmit="return (Functions.checkFormElementInRange(this, 'session_max_rows', '
+ {{- '%d is not valid row number.'|trans|replace({'\'': '\\\''}) -}}
+ ', 1) && Functions.checkFormElementInRange(this, 'pos', '
+ {{- '%d is not valid row number.'|trans|replace({'\'': '\\\''}) -}}
+ ', 0
+ {{- unlim_num_rows > 0 ? ', ' ~ (unlim_num_rows - 1) -}}
+ ));">
+
+ {{ get_hidden_fields(hidden_fields|merge({
+ 'pos': pos
+ })) }}
+
+ {% trans 'Number of rows:' %}
+
+ {{ get_dropdown(
+ 'session_max_rows',
+ {
+ '25': 25,
+ '50': 50,
+ '100': 100,
+ '250': 250,
+ '500': 500,
+ },
+ max_rows,
+ '',
+ 'autosubmit',
+ is_showing_all ? 'All'|trans
+ ) }}
+ </form>
+ </td>
+ <td class="navigation_separator"></td>
+ <td class="largescreenonly">
+ <span>{% trans 'Filter rows' %}:</span>
+ <input type="text" class="filter_rows" placeholder="
+ {%- trans 'Search this table' %}" data-for="{{ unique_id }}">
+ </td>
+ <td class="largescreenonly">
+ {{ sort_by_key|raw }}
+ </td>
+ <td class="navigation_separator"></td>
+ </tr>
+</table>
diff --git a/srcs/phpmyadmin/templates/display/results/table_navigation_button.twig b/srcs/phpmyadmin/templates/display/results/table_navigation_button.twig
new file mode 100644
index 0000000..2573c0c
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/results/table_navigation_button.twig
@@ -0,0 +1,12 @@
+<td>
+ <form action="sql.php" method="post"{{ onsubmit|raw }}>
+ {{ get_hidden_inputs(db, table) }}
+ <input type="hidden" name="sql_query" value="{{ sql_query|raw }}">
+ <input type="hidden" name="pos" value="{{ pos }}">
+ <input type="hidden" name="is_browse_distinct" value="{{ is_browse_distinct }}">
+ <input type="hidden" name="goto" value="{{ goto }}">
+ {{ input_for_real_end|raw }}
+ <input type="submit" name="navig" class="btn btn-secondary ajax" value="{{ caption_output|raw }}" title="{{ title }}"
+ {{- onclick|raw }}>
+ </form>
+</td>
diff --git a/srcs/phpmyadmin/templates/display/results/value_display.twig b/srcs/phpmyadmin/templates/display/results/value_display.twig
new file mode 100644
index 0000000..35640b9
--- /dev/null
+++ b/srcs/phpmyadmin/templates/display/results/value_display.twig
@@ -0,0 +1,3 @@
+<td class="left {{ class }}{{ condition_field ? ' condition' }}">
+ {{ value|raw }}
+</td>