From 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 9 Jan 2020 10:55:03 +0100 Subject: phpmyadmin working --- .../templates/display/import/import.twig | 195 +++++++++++++++++++++ .../templates/display/import/javascript.twig | 162 +++++++++++++++++ 2 files changed, 357 insertions(+) create mode 100644 srcs/phpmyadmin/templates/display/import/import.twig create mode 100644 srcs/phpmyadmin/templates/display/import/javascript.twig (limited to 'srcs/phpmyadmin/templates/display/import') 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 @@ + +
+
+ ajax clock + + + +
+ + + {% 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 %} + + + + +
+

{% trans 'File to import:' %}

+ + {# We don't have show anything about compression, when no supported #} + {% if compressions is not empty %} +
+

+ {{ 'File may be compressed (%s) or uncompressed.'|trans|format(compressions|join(', ')) }} +
+ {% trans 'A compressed file\'s name must end in .[format].[compression]. Example: .sql.zip' %} +

+
+ {% endif %} + +
+ {% if is_upload and upload_dir is not empty %} +
    +
  • + + {{ get_browse_upload_file_block(max_upload_size) }} + {% trans 'You may also drag and drop a file on any page.' %} +
  • +
  • + + {{ get_select_upload_file_block( + import_list, + upload_dir + ) }} +
  • +
+ {% elseif is_upload %} + {{ get_browse_upload_file_block(max_upload_size) }} +

{% trans 'You may also drag and drop a file on any page.' %}

+ {% 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 %} +
+ +
+ {# Charset of file #} + + {% if is_encoding_supported %} + + {% else %} + + {% endif %} +
+
+ +
+

{% trans 'Partial import:' %}

+ + {% if timeout_passed is defined and timeout_passed %} +
+ + {{ 'Previous import timed out, after resubmitting will continue from position %d.'|trans|format(offset) }} +
+ {% endif %} + +
+ + +
+ + {% if not (timeout_passed is defined and timeout_passed) %} +
+ + +
+ {% 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" #} + + {% endif %} +
+ +
+

{% trans 'Other options:' %}

+
+ {{ get_fk_checkbox() }} +
+
+ +
+

{% trans 'Format:' %}

+ {{ get_choice('Import', 'format', import_list) }} +
+
+ +
+

{% trans 'Format-specific options:' %}

+

+ {% trans 'Scroll down to fill in the options for the selected format and ignore the options for other formats.' %} +

+ {{ get_options('Import', import_list) }} +
+
+ + {# Japanese encoding setting #} + {% if can_convert_kanji %} +
+

{% trans 'Encoding Conversion:' %}

+ {% include 'encoding/kanji_encoding_form.twig' %} +
+ {% endif %} + +
+ +
+
+
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 %} +
+
+
+
+
+
+
+
+ ajax clock {{ 'Uploading your import file…'|trans|js_format(false) -}} +
+
+
+ {% 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('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 += "
" + speed + "

" + 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('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 -%} + 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 %} + }); +}); -- cgit