Server IP : 85.214.239.14 / Your IP : 18.225.57.228 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /var/www/wordpress/phpMyAdmin/js/ |
Upload File : |
/* vim: set expandtab sw=4 ts=4 sts=4: */ /** * @fileoverview events handling from normalization page * @name normalization * * @requires jQuery */ // eslint-disable-next-line no-unused-vars /* global centralColumnList:writable */ // js/functions.js /** * AJAX scripts for normalization.php * */ var normalizeto = '1nf'; var primaryKey; var dataParsed = null; function appendHtmlColumnsList () { $.post( 'normalization.php', { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'getColumns': true }, function (data) { if (data.success === true) { $('select[name=makeAtomic]').html(data.message); } } ); } function goTo3NFStep1 (newTables) { var tables = newTables; if (Object.keys(tables).length === 1) { tables = [CommonParams.get('table')]; } $.post( 'normalization.php', { 'ajax_request': true, 'db': CommonParams.get('db'), 'server': CommonParams.get('server'), 'tables': tables, 'step': '3.1' }, function (data) { $('#page_content').find('h3').html(Messages.str3NFNormalization); $('#mainContent').find('legend').html(data.legendText); $('#mainContent').find('h4').html(data.headText); $('#mainContent').find('p').html(data.subText); $('#mainContent').find('#extra').html(data.extra); $('#extra').find('form').each(function () { var formId = $(this).attr('id'); var colName = $(this).data('colname'); $('#' + formId + ' input[value=\'' + colName + '\']').next().remove(); $('#' + formId + ' input[value=\'' + colName + '\']').remove(); }); $('#mainContent').find('#newCols').html(''); $('.tblFooters').html(''); if (data.subText !== '') { $('<input>') .attr({ type: 'button', value: Messages.strDone }) .on('click', function () { processDependencies('', true); }) .appendTo('.tblFooters'); } } ); } function goTo2NFStep1 () { $.post( 'normalization.php', { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'step': '2.1' }, function (data) { $('#page_content h3').html(Messages.str2NFNormalization); $('#mainContent legend').html(data.legendText); $('#mainContent h4').html(data.headText); $('#mainContent p').html(data.subText); $('#mainContent #extra').html(data.extra); $('#mainContent #newCols').html(''); if (data.subText !== '') { $('<input>') .attr({ type: 'submit', value: Messages.strDone, }) .on('click', function () { processDependencies(data.primary_key); }) .appendTo('.tblFooters'); } else { if (normalizeto === '3nf') { $('#mainContent #newCols').html(Messages.strToNextStep); setTimeout(function () { goTo3NFStep1([CommonParams.get('table')]); }, 3000); } } }); } function goToFinish1NF () { if (normalizeto !== '1nf') { goTo2NFStep1(); return true; } $('#mainContent legend').html(Messages.strEndStep); $('#mainContent h4').html( '<h3>' + Functions.sprintf(Messages.strFinishMsg, Functions.escapeHtml(CommonParams.get('table'))) + '</h3>' ); $('#mainContent p').html(''); $('#mainContent #extra').html(''); $('#mainContent #newCols').html(''); $('.tblFooters').html(''); } // eslint-disable-next-line no-unused-vars function goToStep4 () { $.post( 'normalization.php', { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'step4': true }, function (data) { $('#mainContent legend').html(data.legendText); $('#mainContent h4').html(data.headText); $('#mainContent p').html(data.subText); $('#mainContent #extra').html(data.extra); $('#mainContent #newCols').html(''); $('.tblFooters').html(''); for (var pk in primaryKey) { $('#extra input[value=\'' + Functions.escapeJsString(primaryKey[pk]) + '\']').attr('disabled','disabled'); } } ); } function goToStep3 () { $.post( 'normalization.php', { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'step3': true }, function (data) { $('#mainContent legend').html(data.legendText); $('#mainContent h4').html(data.headText); $('#mainContent p').html(data.subText); $('#mainContent #extra').html(data.extra); $('#mainContent #newCols').html(''); $('.tblFooters').html(''); primaryKey = JSON.parse(data.primary_key); for (var pk in primaryKey) { $('#extra input[value=\'' + Functions.escapeJsString(primaryKey[pk]) + '\']').attr('disabled','disabled'); } } ); } function goToStep2 (extra) { $.post( 'normalization.php', { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'step2': true }, function (data) { $('#mainContent legend').html(data.legendText); $('#mainContent h4').html(data.headText); $('#mainContent p').html(data.subText); $('#mainContent #extra,#mainContent #newCols').html(''); $('.tblFooters').html(''); if (data.hasPrimaryKey === '1') { if (extra === 'goToStep3') { $('#mainContent h4').html(Messages.strPrimaryKeyAdded); $('#mainContent p').html(Messages.strToNextStep); } if (extra === 'goToFinish1NF') { goToFinish1NF(); } else { setTimeout(function () { goToStep3(); }, 3000); } } else { // form to select columns to make primary $('#mainContent #extra').html(data.extra); } } ); } function goTo2NFFinish (pd) { var tables = {}; for (var dependson in pd) { tables[dependson] = $('#extra input[name="' + dependson + '"]').val(); } var datastring = { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'pd': JSON.stringify(pd), 'newTablesName':JSON.stringify(tables), 'createNewTables2NF':1 }; $.ajax({ type: 'POST', url: 'normalization.php', data: datastring, async:false, success: function (data) { if (data.success === true) { if (data.queryError === false) { if (normalizeto === '3nf') { $('#pma_navigation_reload').trigger('click'); goTo3NFStep1(tables); return true; } $('#mainContent legend').html(data.legendText); $('#mainContent h4').html(data.headText); $('#mainContent p').html(''); $('#mainContent #extra').html(''); $('.tblFooters').html(''); } else { Functions.ajaxShowMessage(data.extra, false); } $('#pma_navigation_reload').trigger('click'); } else { Functions.ajaxShowMessage(data.error, false); } } }); } function goTo3NFFinish (newTables) { for (var table in newTables) { for (var newtbl in newTables[table]) { var updatedname = $('#extra input[name="' + newtbl + '"]').val(); newTables[table][updatedname] = newTables[table][newtbl]; if (updatedname !== newtbl) { delete newTables[table][newtbl]; } } } var datastring = { 'ajax_request': true, 'db': CommonParams.get('db'), 'server': CommonParams.get('server'), 'newTables':JSON.stringify(newTables), 'createNewTables3NF':1 }; $.ajax({ type: 'POST', url: 'normalization.php', data: datastring, async:false, success: function (data) { if (data.success === true) { if (data.queryError === false) { $('#mainContent legend').html(data.legendText); $('#mainContent h4').html(data.headText); $('#mainContent p').html(''); $('#mainContent #extra').html(''); $('.tblFooters').html(''); } else { Functions.ajaxShowMessage(data.extra, false); } $('#pma_navigation_reload').trigger('click'); } else { Functions.ajaxShowMessage(data.error, false); } } }); } var backup = ''; function goTo2NFStep2 (pd, primaryKey) { $('#newCols').html(''); $('#mainContent legend').html(Messages.strStep + ' 2.2 ' + Messages.strConfirmPd); $('#mainContent h4').html(Messages.strSelectedPd); $('#mainContent p').html(Messages.strPdHintNote); var extra = '<div class="dependencies_box">'; var pdFound = false; for (var dependson in pd) { if (dependson !== primaryKey) { pdFound = true; extra += '<p class="displayblock desc">' + Functions.escapeHtml(dependson) + ' -> ' + Functions.escapeHtml(pd[dependson].toString()) + '</p>'; } } if (!pdFound) { extra += '<p class="displayblock desc">' + Messages.strNoPdSelected + '</p>'; extra += '</div>'; } else { extra += '</div>'; var datastring = { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'pd': JSON.stringify(pd), 'getNewTables2NF':1 }; $.ajax({ type: 'POST', url: 'normalization.php', data: datastring, async:false, success: function (data) { if (data.success === true) { extra += data.message; } else { Functions.ajaxShowMessage(data.error, false); } } }); } $('#mainContent #extra').html(extra); $('.tblFooters').html('<input type="button" class="btn btn-primary" value="' + Messages.strBack + '" id="backEditPd"><input type="button" class="btn btn-primary" id="goTo2NFFinish" value="' + Messages.strGo + '">'); $('#goTo2NFFinish').on('click', function () { goTo2NFFinish(pd); }); } function goTo3NFStep2 (pd, tablesTds) { $('#newCols').html(''); $('#mainContent legend').html(Messages.strStep + ' 3.2 ' + Messages.strConfirmTd); $('#mainContent h4').html(Messages.strSelectedTd); $('#mainContent p').html(Messages.strPdHintNote); var extra = '<div class="dependencies_box">'; var pdFound = false; for (var table in tablesTds) { for (var i in tablesTds[table]) { var dependson = tablesTds[table][i]; if (dependson !== '' && dependson !== table) { pdFound = true; extra += '<p class="displayblock desc">' + Functions.escapeHtml(dependson) + ' -> ' + Functions.escapeHtml(pd[dependson].toString()) + '</p>'; } } } if (!pdFound) { extra += '<p class="displayblock desc">' + Messages.strNoTdSelected + '</p>'; extra += '</div>'; } else { extra += '</div>'; var datastring = { 'ajax_request': true, 'db': CommonParams.get('db'), 'tables': JSON.stringify(tablesTds), 'server': CommonParams.get('server'), 'pd': JSON.stringify(pd), 'getNewTables3NF':1 }; $.ajax({ type: 'POST', url: 'normalization.php', data: datastring, async:false, success: function (data) { dataParsed = data; if (data.success === true) { extra += dataParsed.html; } else { Functions.ajaxShowMessage(data.error, false); } } }); } $('#mainContent #extra').html(extra); $('.tblFooters').html('<input type="button" class="btn btn-primary" value="' + Messages.strBack + '" id="backEditPd"><input type="button" class="btn btn-primary" id="goTo3NFFinish" value="' + Messages.strGo + '">'); $('#goTo3NFFinish').on('click', function () { if (!pdFound) { goTo3NFFinish([]); } else { goTo3NFFinish(dataParsed.newTables); } }); } function processDependencies (primaryKey, isTransitive) { var pk = primaryKey; var pd = {}; var tablesTds = {}; var dependsOn; pd[pk] = []; $('#extra form').each(function () { var tblname; if (isTransitive === true) { tblname = $(this).data('tablename'); pk = tblname; if (!(tblname in tablesTds)) { tablesTds[tblname] = []; } tablesTds[tblname].push(pk); } var formId = $(this).attr('id'); $('#' + formId + ' input[type=checkbox]:not(:checked)').prop('checked', false); dependsOn = ''; $('#' + formId + ' input[type=checkbox]:checked').each(function () { dependsOn += $(this).val() + ', '; $(this).attr('checked','checked'); }); if (dependsOn === '') { dependsOn = pk; } else { dependsOn = dependsOn.slice(0, -2); } if (! (dependsOn in pd)) { pd[dependsOn] = []; } pd[dependsOn].push($(this).data('colname')); if (isTransitive === true) { if (!(tblname in tablesTds)) { tablesTds[tblname] = []; } if ($.inArray(dependsOn, tablesTds[tblname]) === -1) { tablesTds[tblname].push(dependsOn); } } }); backup = $('#mainContent').html(); if (isTransitive === true) { goTo3NFStep2(pd, tablesTds); } else { goTo2NFStep2(pd, pk); } return false; } function moveRepeatingGroup (repeatingCols) { var newTable = $('input[name=repeatGroupTable]').val(); var newColumn = $('input[name=repeatGroupColumn]').val(); if (!newTable) { $('input[name=repeatGroupTable]').trigger('focus'); return false; } if (!newColumn) { $('input[name=repeatGroupColumn]').trigger('focus'); return false; } var datastring = { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'repeatingColumns': repeatingCols, 'newTable':newTable, 'newColumn':newColumn, 'primary_columns':primaryKey.toString() }; $.ajax({ type: 'POST', url: 'normalization.php', data: datastring, async:false, success: function (data) { if (data.success === true) { if (data.queryError === false) { goToStep3(); } Functions.ajaxShowMessage(data.message, false); $('#pma_navigation_reload').trigger('click'); } else { Functions.ajaxShowMessage(data.error, false); } } }); } AJAX.registerTeardown('normalization.js', function () { $('#extra').off('click', '#selectNonAtomicCol'); $('#splitGo').off('click'); $('.tblFooters').off('click', '#saveSplit'); $('#extra').off('click', '#addNewPrimary'); $('.tblFooters').off('click', '#saveNewPrimary'); $('#extra').off('click', '#removeRedundant'); $('#mainContent p').off('click', '#createPrimaryKey'); $('#mainContent').off('click', '#backEditPd'); $('#mainContent').off('click', '#showPossiblePd'); $('#mainContent').off('click', '.pickPd'); }); AJAX.registerOnload('normalization.js', function () { var selectedCol; normalizeto = $('#mainContent').data('normalizeto'); $('#extra').on('click', '#selectNonAtomicCol', function () { if ($(this).val() === 'no_such_col') { goToStep2(); } else { selectedCol = $(this).val(); } }); $('#splitGo').on('click', function () { if (!selectedCol || selectedCol === '') { return false; } var numField = $('#numField').val(); $.post( 'normalization.php', { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'splitColumn': true, 'numFields': numField }, function (data) { if (data.success === true) { $('#newCols').html(data.message); $('.default_value').hide(); $('.enum_notice').hide(); $('<input>') .attr({ type: 'submit', id: 'saveSplit', value: Messages.strSave }) .appendTo('.tblFooters'); $('<input>') .attr({ type: 'submit', id: 'cancelSplit', value: Messages.strCancel }) .on('click', function () { $('#newCols').html(''); $(this).parent().html(''); }) .appendTo('.tblFooters'); } } ); return false; }); $('.tblFooters').on('click','#saveSplit', function () { centralColumnList = []; if ($('#newCols #field_0_1').val() === '') { $('#newCols #field_0_1').trigger('focus'); return false; } var argsep = CommonParams.get('arg_separator'); var datastring = $('#newCols :input').serialize(); datastring += argsep + 'ajax_request=1' + argsep + 'do_save_data=1' + argsep + 'field_where=last'; $.post('tbl_addfield.php', datastring, function (data) { if (data.success) { $.post( 'sql.php', { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'dropped_column': selectedCol, 'purge' : 1, 'sql_query': 'ALTER TABLE `' + CommonParams.get('table') + '` DROP `' + selectedCol + '`;', 'is_js_confirmed': 1 }, function (data) { if (data.success === true) { appendHtmlColumnsList(); $('#newCols').html(''); $('.tblFooters').html(''); } else { Functions.ajaxShowMessage(data.error, false); } selectedCol = ''; } ); } else { Functions.ajaxShowMessage(data.error, false); } }); }); $('#extra').on('click', '#addNewPrimary', function () { $.post( 'normalization.php', { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'addNewPrimary': true }, function (data) { if (data.success === true) { $('#newCols').html(data.message); $('.default_value').hide(); $('.enum_notice').hide(); $('<input>') .attr({ type: 'submit', id: 'saveNewPrimary', value: Messages.strSave }) .appendTo('.tblFooters'); $('<input>') .attr({ type: 'submit', id: 'cancelSplit', value: Messages.strCancel }) .on('click', function () { $('#newCols').html(''); $(this).parent().html(''); }) .appendTo('.tblFooters'); } else { Functions.ajaxShowMessage(data.error, false); } } ); return false; }); $('.tblFooters').on('click', '#saveNewPrimary', function () { var datastring = $('#newCols :input').serialize(); var argsep = CommonParams.get('arg_separator'); datastring += argsep + 'field_key[0]=primary_0' + argsep + 'ajax_request=1' + argsep + 'do_save_data=1' + argsep + 'field_where=last'; $.post('tbl_addfield.php', datastring, function (data) { if (data.success === true) { $('#mainContent h4').html(Messages.strPrimaryKeyAdded); $('#mainContent p').html(Messages.strToNextStep); $('#mainContent #extra').html(''); $('#mainContent #newCols').html(''); $('.tblFooters').html(''); setTimeout(function () { goToStep3(); }, 2000); } else { Functions.ajaxShowMessage(data.error, false); } }); }); $('#extra').on('click', '#removeRedundant', function () { var dropQuery = 'ALTER TABLE `' + CommonParams.get('table') + '` '; $('#extra input[type=checkbox]:checked').each(function () { dropQuery += 'DROP `' + $(this).val() + '`, '; }); dropQuery = dropQuery.slice(0, -2); $.post( 'sql.php', { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'sql_query': dropQuery, 'is_js_confirmed': 1 }, function (data) { if (data.success === true) { goToStep2('goToFinish1NF'); } else { Functions.ajaxShowMessage(data.error, false); } } ); }); $('#extra').on('click', '#moveRepeatingGroup', function () { var repeatingCols = ''; $('#extra input[type=checkbox]:checked').each(function () { repeatingCols += $(this).val() + ', '; }); if (repeatingCols !== '') { var newColName = $('#extra input[type=checkbox]:checked:first').val(); repeatingCols = repeatingCols.slice(0, -2); var confirmStr = Functions.sprintf(Messages.strMoveRepeatingGroup, Functions.escapeHtml(repeatingCols), Functions.escapeHtml(CommonParams.get('table'))); confirmStr += '<input type="text" name="repeatGroupTable" placeholder="' + Messages.strNewTablePlaceholder + '">' + '( ' + Functions.escapeHtml(primaryKey.toString()) + ', <input type="text" name="repeatGroupColumn" placeholder="' + Messages.strNewColumnPlaceholder + '" value="' + Functions.escapeHtml(newColName) + '">)' + '</ol>'; $('#newCols').html(confirmStr); $('<input>') .attr({ type: 'submit', value: Messages.strCancel }) .on('click', function () { $('#newCols').html(''); $('#extra input[type=checkbox]').prop('checked', false); }) .appendTo('.tblFooters'); $('<input>') .attr({ type: 'submit', value: Messages.strGo }) .on('click', function () { moveRepeatingGroup(repeatingCols); }) .appendTo('.tblFooters'); } }); $('#mainContent p').on('click', '#createPrimaryKey', function (event) { event.preventDefault(); var url = { 'create_index': 1, 'server': CommonParams.get('server'), 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'added_fields': 1, 'add_fields':1, 'index': { 'Key_name':'PRIMARY' }, 'ajax_request': true }; var title = Messages.strAddPrimaryKey; Functions.indexEditorDialog(url, title, function () { // on success $('.sqlqueryresults').remove(); $('.result_query').remove(); $('.tblFooters').html(''); goToStep2('goToStep3'); }); return false; }); $('#mainContent').on('click', '#backEditPd', function () { $('#mainContent').html(backup); }); $('#mainContent').on('click', '#showPossiblePd', function () { if ($(this).hasClass('hideList')) { $(this).html('+ ' + Messages.strShowPossiblePd); $(this).removeClass('hideList'); $('#newCols').slideToggle('slow'); return false; } if ($('#newCols').html() !== '') { $('#showPossiblePd').html('- ' + Messages.strHidePd); $('#showPossiblePd').addClass('hideList'); $('#newCols').slideToggle('slow'); return false; } $('#newCols').insertAfter('#mainContent h4'); $('#newCols').html('<div class="center">' + Messages.strLoading + '<br>' + Messages.strWaitForPd + '</div>'); $.post( 'normalization.php', { 'ajax_request': true, 'db': CommonParams.get('db'), 'table': CommonParams.get('table'), 'server': CommonParams.get('server'), 'findPdl': true }, function (data) { $('#showPossiblePd').html('- ' + Messages.strHidePd); $('#showPossiblePd').addClass('hideList'); $('#newCols').html(data.message); }); }); $('#mainContent').on('click', '.pickPd', function () { var strColsLeft = $(this).next('.determinants').html(); var colsLeft = strColsLeft.split(','); var strColsRight = $(this).next().next().html(); var colsRight = strColsRight.split(','); for (var i in colsRight) { $('form[data-colname="' + colsRight[i].trim() + '"] input[type="checkbox"]').prop('checked', false); for (var j in colsLeft) { $('form[data-colname="' + colsRight[i].trim() + '"] input[value="' + colsLeft[j].trim() + '"]').prop('checked', true); } } }); });