aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/js/import.js
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/js/import.js
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/js/import.js')
-rw-r--r--srcs/phpmyadmin/js/import.js171
1 files changed, 171 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/js/import.js b/srcs/phpmyadmin/js/import.js
new file mode 100644
index 0000000..d882d6e
--- /dev/null
+++ b/srcs/phpmyadmin/js/import.js
@@ -0,0 +1,171 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * Functions used in the import tab
+ *
+ */
+
+
+/**
+ * Toggles the hiding and showing of each plugin's options
+ * according to the currently selected plugin from the dropdown list
+ */
+function changePluginOpts () {
+ $('#format_specific_opts').find('div.format_specific_options').each(function () {
+ $(this).hide();
+ });
+ var selectedPluginName = $('#plugins').find('option:selected').val();
+ $('#' + selectedPluginName + '_options').fadeIn('slow');
+ if (selectedPluginName === 'csv') {
+ $('#import_notification').text(Messages.strImportCSV);
+ } else {
+ $('#import_notification').text('');
+ }
+}
+
+/**
+ * Toggles the hiding and showing of each plugin's options and sets the selected value
+ * in the plugin dropdown list according to the format of the selected file
+ */
+function matchFile (fname) {
+ var fnameArray = fname.toLowerCase().split('.');
+ var len = fnameArray.length;
+ if (len !== 0) {
+ var extension = fnameArray[len - 1];
+ if (extension === 'gz' || extension === 'bz2' || extension === 'zip') {
+ len--;
+ }
+ // Only toggle if the format of the file can be imported
+ if ($('select[name=\'format\'] option').filterByValue(fnameArray[len - 1]).length === 1) {
+ $('select[name=\'format\'] option').filterByValue(fnameArray[len - 1]).prop('selected', true);
+ changePluginOpts();
+ }
+ }
+}
+
+/**
+ * Unbind all event handlers before tearing down a page
+ */
+AJAX.registerTeardown('import.js', function () {
+ $('#plugins').off('change');
+ $('#input_import_file').off('change');
+ $('#select_local_import_file').off('change');
+ $('#input_import_file').off('change').off('focus');
+ $('#select_local_import_file').off('focus');
+ $('#text_csv_enclosed').add('#text_csv_escaped').off('keyup');
+});
+
+AJAX.registerOnload('import.js', function () {
+ // import_file_form validation.
+ $(document).on('submit', '#import_file_form', function () {
+ var radioLocalImport = $('#radio_local_import_file');
+ var radioImport = $('#radio_import_file');
+ var fileMsg = '<div class="error"><img src="themes/dot.gif" title="" alt="" class="icon ic_s_error"> ' + Messages.strImportDialogMessage + '</div>';
+ var wrongTblNameMsg = '<div class="error"><img src="themes/dot.gif" title="" alt="" class="icon ic_s_error">' + Messages.strTableNameDialogMessage + '</div>';
+ var wrongDBNameMsg = '<div class="error"><img src="themes/dot.gif" title="" alt="" class="icon ic_s_error">' + Messages.strDBNameDialogMessage + '</div>';
+
+ if (radioLocalImport.length !== 0) {
+ // remote upload.
+
+ if (radioImport.is(':checked') && $('#input_import_file').val() === '') {
+ $('#input_import_file').trigger('focus');
+ Functions.ajaxShowMessage(fileMsg, false);
+ return false;
+ }
+
+ if (radioLocalImport.is(':checked')) {
+ if ($('#select_local_import_file').length === 0) {
+ Functions.ajaxShowMessage('<div class="error"><img src="themes/dot.gif" title="" alt="" class="icon ic_s_error"> ' + Messages.strNoImportFile + ' </div>', false);
+ return false;
+ }
+
+ if ($('#select_local_import_file').val() === '') {
+ $('#select_local_import_file').trigger('focus');
+ Functions.ajaxShowMessage(fileMsg, false);
+ return false;
+ }
+ }
+ } else {
+ // local upload.
+ if ($('#input_import_file').val() === '') {
+ $('#input_import_file').trigger('focus');
+ Functions.ajaxShowMessage(fileMsg, false);
+ return false;
+ }
+ if ($('#text_csv_new_tbl_name').length > 0) {
+ var newTblName = $('#text_csv_new_tbl_name').val();
+ if (newTblName.length > 0 && $.trim(newTblName).length === 0) {
+ Functions.ajaxShowMessage(wrongTblNameMsg, false);
+ return false;
+ }
+ }
+ if ($('#text_csv_new_db_name').length > 0) {
+ var newDBName = $('#text_csv_new_db_name').val();
+ if (newDBName.length > 0 && $.trim(newDBName).length === 0) {
+ Functions.ajaxShowMessage(wrongDBNameMsg, false);
+ return false;
+ }
+ }
+ }
+
+ // show progress bar.
+ $('#upload_form_status').css('display', 'inline');
+ $('#upload_form_status_info').css('display', 'inline');
+ });
+
+ // Initially display the options for the selected plugin
+ changePluginOpts();
+
+ // Whenever the selected plugin changes, change the options displayed
+ $('#plugins').on('change', function () {
+ changePluginOpts();
+ });
+
+ $('#input_import_file').on('change', function () {
+ matchFile($(this).val());
+ });
+
+ $('#select_local_import_file').on('change', function () {
+ matchFile($(this).val());
+ });
+
+ /*
+ * When the "Browse the server" form is clicked or the "Select from the web server upload directory"
+ * form is clicked, the radio button beside it becomes selected and the other form becomes disabled.
+ */
+ $('#input_import_file').on('focus change', function () {
+ $('#radio_import_file').prop('checked', true);
+ $('#radio_local_import_file').prop('checked', false);
+ });
+ $('#select_local_import_file').on('focus', function () {
+ $('#radio_local_import_file').prop('checked', true);
+ $('#radio_import_file').prop('checked', false);
+ });
+
+ /**
+ * Set up the interface for Javascript-enabled browsers since the default is for
+ * Javascript-disabled browsers
+ */
+ $('#scroll_to_options_msg').hide();
+ $('#format_specific_opts').find('div.format_specific_options')
+ .css({
+ 'border': 0,
+ 'margin': 0,
+ 'padding': 0
+ })
+ .find('h3')
+ .remove();
+ // $("form[name=import] *").unwrap();
+
+ /**
+ * for input element text_csv_enclosed and text_csv_escaped allow just one character to enter.
+ * as mysql allows just one character for these fields,
+ * if first character is escape then allow two including escape character.
+ */
+ $('#text_csv_enclosed').add('#text_csv_escaped').on('keyup', function () {
+ if ($(this).val().length === 2 && $(this).val().charAt(0) !== '\\') {
+ $(this).val($(this).val().substring(0, 1));
+ return false;
+ }
+ return true;
+ });
+});