init web ems all

This commit is contained in:
agtuser
2024-09-27 17:13:36 +08:00
parent 81c97acbe9
commit 5cc56f8078
4263 changed files with 798779 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
<div class="exportoptions" id="format">
<h3>{% trans 'Format:' %}</h3>
{{ dropdown|raw }}
</div>

View File

@@ -0,0 +1,23 @@
{% if export_type == 'server' %}
{{ Url_getHiddenInputs('', '', 1) }}
{% elseif export_type == 'database' %}
{{ Url_getHiddenInputs(db, '', 1) }}
{% else %}
{{ Url_getHiddenInputs(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 }}">

View File

@@ -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 %}

View File

@@ -0,0 +1,12 @@
<div class="exportoptions" id="header">
<h2>
{{ Util_getImage('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>

View File

@@ -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 type="submit" value="{% trans 'Go' %}" id="buttonGo"
{#- 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="check_time_out({{ exec_time_limit }})"
{%- endif %}>
</div>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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 %}

View File

@@ -0,0 +1,13 @@
<li>
<label for="filename_template" class="desc">
{% trans 'File name template:' %}
{{ Util_showHint(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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -0,0 +1,19 @@
<div>
<p>
<a href="#" onclick="setSelectOptions('dump', 'db_select[]', true); return false;">
{% trans 'Select all' %}
</a>
/
<a href="#" onclick="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>

View File

@@ -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>

View File

@@ -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 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 type="submit" name="updateTemplate" id="updateTemplate" value="{% trans 'Update' %}">
<input type="submit" name="deleteTemplate" id="deleteTemplate" value="{% trans 'Delete' %}">
</form>
</div>
<div class="clearfloat"></div>
</div>

View File

@@ -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 %}

View File

@@ -0,0 +1,194 @@
<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' %}
{{ Url_getHiddenInputs('', '', 1) }}
{% elseif import_type == 'database' %}
{{ Url_getHiddenInputs(db, '', 1) }}
{% else %}
{{ Url_getHiddenInputs(db, table, 1) }}
{% endif %}
<input type="hidden" name="import_type" value="{{ import_type }}" />
<div class="exportoptions" id="header">
<h2>
{{ Util_getImage('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" />
{{ Util_getBrowseUploadFileBlock(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 %} />
{{ Util_getSelectUploadFileBlock(
import_list,
upload_dir
) }}
</li>
</ul>
{% elseif is_upload %}
{{ Util_getBrowseUploadFileBlock(max_upload_size) }}
<p>{% trans 'You may also drag and drop a file on any page.' %}</p>
{% elseif not is_upload %}
{{ Message_notice('File uploads are not allowed on this server.'|trans) }}
{% elseif upload_dir is not empty %}
{{ Util_getSelectUploadFileBlock(
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 %}
{{ Charsets_getCharsetDropdownBox(
dbi,
disable_is,
'charset_of_file',
'charset_of_file',
'utf8',
false
) }}
{% 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"
{{ Plugins_checkboxCheck('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="
{{- Plugins_getDefault('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="
{{- Plugins_getDefault('Import', 'skip_queries') -}}
" id="text_skip_queries" />
{% endif %}
</div>
<div class="importoptions">
<h3>{% trans 'Other options:' %}</h3>
<div class="formelementrow">
{{ Util_getFKCheckbox() }}
</div>
</div>
<div class="importoptions">
<h3>{% trans 'Format:' %}</h3>
{{ Plugins_getChoice('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>
{{ Plugins_getOptions('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 type="submit" value="{% trans 'Go' %}" id="buttonGo" />
</div>
</form>
</div>

View File

@@ -0,0 +1,171 @@
$( function() {
{# Add event when user click on "Go" button #}
$("#buttonGo").bind("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 ~ Url_getCommonRaw({
'import_status': 1
}, '&') %}
{% set promot_str = Sanitize_jsFormat(
'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,
false
) %}
{% set statustext_str = Sanitize_escapeJsString('%s of %s'|trans) %}
{% set second_str = Sanitize_jsFormat('%s/sec.'|trans, false) %}
{% set remaining_min = Sanitize_jsFormat('About %MIN min. %SEC sec. remaining.'|trans, false) %}
{% set remaining_second = Sanitize_jsFormat('About %SEC sec. remaining.'|trans, false) %}
{% set processed_str = Sanitize_jsFormat(
'The file is being processed, please be patient.'|trans,
false
) %}
{% set import_url = Url_getCommonRaw({'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" /> {{ Sanitize_jsFormat('Uploading your import file…'|trans, 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 = PMA_sprintf(
"{{ statustext_str|raw }}",
formatBytes(
complete, 1, PMA_messages.strDecimalSeparator
),
formatBytes(
total, 1, PMA_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 = PMA_sprintf(
"{{ second_str|raw }}",
formatBytes(complete / used_time * 1000, 1, PMA_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 }}");
PMA_reloadNavigation();
{# 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" />
{{- Sanitize_jsFormat(
'Please be patient, the file is being uploaded. Details about the upload are not available.'|trans,
false
) -}}
{{- Util_showDocu('faq', 'faq2-9') -}}
{%- endset %}
$('#upload_form_status_info').html('{{ image_tag|raw }}');
$("#upload_form_status").css("display", "none");
{% endif %}
});
});

View File

@@ -0,0 +1,14 @@
<input type="hidden" name="sql_query" value="{{ sql_query|raw }}" />
<input type="hidden" name="goto" value="{{ goto }}" />
{# Do not change the position when changing the number of rows #}
<input type="hidden" name="pos" size="3" value="{{ pos }}" />
<input type="hidden" name="is_browse_distinct" value="{{ is_browse_distinct }}" />
{% trans 'Number of rows:' %}
{{ Util_getDropdown(
'session_max_rows',
number_of_rows_choices,
max_rows,
'',
'autosubmit',
number_of_rows_placeholder
) }}

View File

@@ -0,0 +1,10 @@
{% if comments_map[fields_meta.table] is defined
and comments_map[fields_meta.table][fields_meta.name] is defined %}
<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 %}

View File

@@ -0,0 +1 @@
<td {{ align }} class="{{ classes }}"></td>

View File

@@ -0,0 +1,12 @@
{% 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">
{{ Url_getHiddenInputs(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 }}">

View File

@@ -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>

View File

@@ -0,0 +1,117 @@
<form method="post" action="sql.php" name="displayOptionsForm" class="ajax print_ignore">
{{ Url_getHiddenInputs({
'db': db,
'table': table,
'sql_query': sql_query,
'goto': goto,
'display_options_form': 1
}) }}
{{ Util_getDivForSliderEffect('', 'Options'|trans) }}
<fieldset>
<div class="formelement">
{# pftext means "partial or full texts" (done to reduce line lengths #}
{{ Util_getRadioFields(
'pftext',
{
'P': 'Partial texts'|trans,
'F': 'Full texts'|trans
},
pftext,
true,
true,
'',
'pftext_' ~ unique_id
) }}
</div>
{% if relwork and displaywork %}
<div class="formelement">
{{ Util_getRadioFields(
'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">
{{ Util_getRadioFields(
'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 }}
{{ Util_getRadioFields(
'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 type="submit" value="{% trans 'Go' %}" />
</fieldset>
</div>{# slider effect div #}
</form>

View File

@@ -0,0 +1,13 @@
<td>
<form action="sql.php" method="post">
{{ Url_getHiddenInputs(db, table) }}
<input type="hidden" name="sql_query" value="{{ html_sql_query|raw }}" />
<input type="hidden" name="pos" value="0" />
<input type="hidden" name="is_browse_distinct" value="{{ is_browse_distinct }}" />
<input type="hidden" name="session_max_rows" value="{{ not showing_all ? 'all' : max_rows }}" />
<input type="hidden" name="goto" value="{{ goto }}" />
<input type="checkbox" name="navig" id="showAll_{{ unique_id }}" class="showAllRows"
{{- showing_all ? ' checked="checked"' }} value="all" />
<label for="showAll_{{ unique_id }}">{% trans 'Show all' %}</label>
</form>
</td>

View File

@@ -0,0 +1,12 @@
<td>
<form action="sql.php" method="post"{{ onsubmit|raw }}>
{{ Url_getHiddenInputs(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="ajax" value="{{ caption_output|raw }}" title="{{ title }}"
{{- onclick|raw }} />
</form>
</td>

View File

@@ -0,0 +1,3 @@
<td class="left {{ class }}{{ condition_field ? ' condition' }}">
{{ value|raw }}
</td>