/
usr
/
share
/
phpmyadmin
/
js
/
src
/
/usr/share/phpmyadmin/js/src
mkdir
upload
Name
Size
Mode
Actions
codemirror/
-
0755
rm
database/
-
0755
rm
designer/
-
0755
rm
jqplot/
-
0755
rm
server/
-
0755
rm
setup/
-
0755
rm
table/
-
0755
rm
transformations/
-
0755
rm
ajax.js
36709
0644
edit
dl
rm
chart.js
18728
0644
edit
dl
rm
common.js
5086
0644
edit
dl
rm
config.js
27193
0644
edit
dl
rm
console.js
57273
0644
edit
dl
rm
cross_framing_protection.js
423
0644
edit
dl
rm
doclinks.js
18970
0644
edit
dl
rm
drag_drop_import.js
14443
0644
edit
dl
rm
error_report.js
10874
0644
edit
dl
rm
export.js
37581
0644
edit
dl
rm
export_output.js
402
0644
edit
dl
rm
functions.js
180908
0644
edit
dl
rm
gis_data_editor.js
15005
0644
edit
dl
rm
import.js
6753
0644
edit
dl
rm
indexes.js
30440
0644
edit
dl
rm
jquery.sortable-table.js
11289
0644
edit
dl
rm
keyhandler.js
3341
0644
edit
dl
rm
makegrid.js
98000
0644
edit
dl
rm
menu_resizer.js
6452
0644
edit
dl
rm
microhistory.js
11598
0644
edit
dl
rm
multi_column_sort.js
1373
0644
edit
dl
rm
navigation.js
63334
0644
edit
dl
rm
normalization.js
29551
0644
edit
dl
rm
ol.mjs
1053
0644
edit
dl
rm
page_settings.js
1704
0644
edit
dl
rm
replication.js
3762
0644
edit
dl
rm
rte.js
48395
0644
edit
dl
rm
shortcuts_handler.js
3813
0644
edit
dl
rm
sql.js
40406
0644
edit
dl
rm
u2f.js
3475
0644
edit
dl
rm
Edit:
/usr/share/phpmyadmin/js/src/normalization.js
(29551B)
/** * @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 * */ var normalizeto = '1nf'; var primaryKey; var dataParsed = null; function appendHtmlColumnsList () { $.post( 'index.php?route=/normalization', { '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( 'index.php?route=/normalization', { '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, class: 'btn btn-primary' }) .on('click', function () { processDependencies('', true); }) .appendTo('.tblFooters'); } } ); } function goTo2NFStep1 () { $.post( 'index.php?route=/normalization', { '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, class: 'btn btn-primary' }) .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( 'index.php?route=/normalization', { '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( 'index.php?route=/normalization', { '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( 'index.php?route=/normalization', { '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: 'index.php?route=/normalization', 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: 'index.php?route=/normalization', 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: 'index.php?route=/normalization', 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: 'index.php?route=/normalization', 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: 'index.php?route=/normalization', 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( 'index.php?route=/normalization', { '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, class: 'btn btn-primary' }) .appendTo('.tblFooters'); $('<input>') .attr({ type: 'submit', id: 'cancelSplit', value: Messages.strCancel, class: 'btn btn-secondary' }) .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('index.php?route=/table/add-field', datastring, function (data) { if (data.success) { $.post( 'index.php?route=/sql', { '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( 'index.php?route=/normalization', { '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, class: 'btn btn-primary' }) .appendTo('.tblFooters'); $('<input>') .attr({ type: 'submit', id: 'cancelSplit', value: Messages.strCancel, class: 'btn btn-secondary' }) .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('index.php?route=/table/add-field', 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( 'index.php?route=/sql', { '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, class: 'btn btn-secondary' }) .on('click', function () { $('#newCols').html(''); $('#extra input[type=checkbox]').prop('checked', false); }) .appendTo('.tblFooters'); $('<input>') .attr({ type: 'submit', value: Messages.strGo, class: 'btn btn-primary' }) .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="text-center">' + Messages.strLoading + '<br>' + Messages.strWaitForPd + '</div>'); $.post( 'index.php?route=/normalization', { '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); } } }); });
Save
cmd:
run