diff --git a/js/src/import.js b/js/src/import.js
index f4d58c7aa6..e8f97de4d5 100644
--- a/js/src/import.js
+++ b/js/src/import.js
@@ -1,6 +1,10 @@
import $ from 'jquery';
import { AJAX } from './ajax.js';
import { Functions } from './functions.js';
+import { Navigation } from './navigation.js';
+import { CommonParams } from './common.js';
+
+/* global themeImagePath */ // templates/javascript/variables.twig
/**
* Functions used in the import tab
@@ -58,6 +62,7 @@ AJAX.registerTeardown('import.js', function () {
$('#input_import_file').off('change').off('focus');
$('#select_local_import_file').off('focus');
$('#text_csv_enclosed').add('#text_csv_escaped').off('keyup');
+ $('#importmain #buttonGo').off('click');
});
AJAX.registerOnload('import.js', function () {
@@ -155,4 +160,133 @@ AJAX.registerOnload('import.js', function () {
}
return true;
});
+
+ $('#importmain #buttonGo').on('click', function () {
+ const uploadProgressInfo = document.getElementById('upload_progress_info');
+ const uploadId = uploadProgressInfo.dataset.uploadId;
+ const handler = uploadProgressInfo.dataset.handler;
+
+ $('#upload_form_form').css('display', 'none');
+
+ const clockImage = '
';
+
+ if (handler !== 'PhpMyAdmin\\Plugins\\Import\\Upload\\UploadNoplugin') {
+ var finished = false;
+ var percent = 0.0;
+ var total = 0;
+ var complete = 0;
+ var originalTitle = parent && parent.document ? parent.document.title : false;
+ var importStart;
+
+ var performUpload = function () {
+ $.getJSON(
+ 'index.php?route=/import-status',
+ { 'id': uploadId, 'import_status': 1, 'server': CommonParams.get('server') },
+ 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(clockImage + ' ' + window.Messages.uploadProgressMaximumAllowedSize);
+ $('#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(
+ window.Messages.uploadProgressStatusText,
+ Functions.formatBytes(
+ complete, 1, window.Messages.strDecimalSeparator
+ ),
+ Functions.formatBytes(
+ total, 1, window.Messages.strDecimalSeparator
+ )
+ );
+
+ if ($('#importmain').is(':visible')) {
+ // Show progress UI
+ $('#importmain').hide();
+ const uploadProgressDiv = '