aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/js/normalization.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/normalization.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/normalization.js')
-rw-r--r--srcs/phpmyadmin/js/normalization.js757
1 files changed, 757 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/js/normalization.js b/srcs/phpmyadmin/js/normalization.js
new file mode 100644
index 0000000..982ce6e
--- /dev/null
+++ b/srcs/phpmyadmin/js/normalization.js
@@ -0,0 +1,757 @@
+/* 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" value="' + Messages.strBack + '" id="backEditPd"><input type="button" 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" value="' + Messages.strBack + '" id="backEditPd"><input type="button" 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);
+ }
+ }
+ });
+});