From bd9e66f4bc35f0e03fed4b06959cbdb00b3b4add Mon Sep 17 00:00:00 2001 From: Ashutosh Dhundhara Date: Sun, 27 Apr 2014 01:00:10 +0530 Subject: [PATCH] Bug Fix: #4366 Creating Index doesn't update index-list. Signed-off-by: Ashutosh Dhundhara --- js/tbl_structure.js | 21 ++++++++++++++++++--- libraries/sql.lib.php | 11 +++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/js/tbl_structure.js b/js/tbl_structure.js index b7890ed413..7bf2c769d4 100644 --- a/js/tbl_structure.js +++ b/js/tbl_structure.js @@ -260,7 +260,9 @@ AJAX.registerOnload('tbl_structure.js', function () { var question = $.sprintf(PMA_messages.strDoYouReally, 'ALTER TABLE `' + escapeHtml(curr_table_name) + '` ADD PRIMARY KEY(`' + escapeHtml(curr_column_name) + '`);'); $(this).PMA_confirm(question, $(this).attr('href'), function (url) { var $msg = PMA_ajaxShowMessage(PMA_messages.strAddingPrimaryKey, false); - $.get(url, {'is_js_confirmed' : 1, 'ajax_request' : true}, function (data) { + $.get(url + , {'is_js_confirmed' : 1, 'ajax_request' : true, 'index_change' : true} + , function (data) { if (data.success === true) { PMA_ajaxRemoveMessage($msg); $(this).remove(); @@ -278,6 +280,9 @@ AJAX.registerOnload('tbl_structure.js', function () { }); PMA_reloadNavigation(); } + if (data.indexes_list) { + $('.index_info').replaceWith(data.indexes_list); + } } else { PMA_ajaxShowMessage(PMA_messages.strErrorProcessingRequest + " : " + data.error, false); } @@ -304,7 +309,9 @@ AJAX.registerOnload('tbl_structure.js', function () { var question = $.sprintf(PMA_messages.strDoYouReally, 'ALTER TABLE `' + escapeHtml(curr_table_name) + '` ADD INDEX(`' + escapeHtml(curr_column_name) + '`);'); $(this).PMA_confirm(question, $(this).attr('href'), function (url) { var $msg = PMA_ajaxShowMessage(PMA_messages.strAddingIndex, false); - $.get(url, {'is_js_confirmed' : 1, 'ajax_request' : true}, function (data) { + $.get(url + , {'is_js_confirmed' : 1, 'ajax_request' : true, 'index_change' : true} + , function (data) { if (data.success === true) { PMA_ajaxRemoveMessage($msg); if ($('#result_query').length) { @@ -316,6 +323,9 @@ AJAX.registerOnload('tbl_structure.js', function () { .prependTo('#page_content'); PMA_highlightSQL($('#page_content')); } + if (data.indexes_list) { + $('.index_info').replaceWith(data.indexes_list); + } PMA_reloadNavigation(); } else { PMA_ajaxShowMessage(PMA_messages.strErrorProcessingRequest + " : " + data.error, false); @@ -343,7 +353,9 @@ AJAX.registerOnload('tbl_structure.js', function () { var question = $.sprintf(PMA_messages.strDoYouReally, 'ALTER TABLE `' + escapeHtml(curr_table_name) + '` ADD UNIQUE(`' + escapeHtml(curr_column_name) + '`);'); $(this).PMA_confirm(question, $(this).attr('href'), function (url) { var $msg = PMA_ajaxShowMessage(PMA_messages.strAddingUnique, false); - $.get(url, {'is_js_confirmed' : 1, 'ajax_request' : true}, function (data) { + $.get(url + , {'is_js_confirmed' : 1, 'ajax_request' : true, 'index_change' : true} + , function (data) { if (data.success === true) { PMA_ajaxRemoveMessage($msg); if ($('#result_query').length) { @@ -355,6 +367,9 @@ AJAX.registerOnload('tbl_structure.js', function () { .prependTo('#page_content'); PMA_highlightSQL($('#page_content')); } + if (data.indexes_list) { + $('.index_info').replaceWith(data.indexes_list); + } PMA_reloadNavigation(); } else { PMA_ajaxShowMessage(PMA_messages.strErrorProcessingRequest + " : " + data.error, false); diff --git a/libraries/sql.lib.php b/libraries/sql.lib.php index 838e77dbaa..fa3facb914 100644 --- a/libraries/sql.lib.php +++ b/libraries/sql.lib.php @@ -1363,10 +1363,8 @@ function PMA_cleanupRelations($db, $table, $dropped_column, $purge, $extra_data) && strlen($table) ) { PMA_relationsCleanupColumn($db, $table, $dropped_column); - if (isset($extra_data)) { - // to refresh the list of indexes (Ajax mode) - $extra_data['indexes_list'] = PMA_Index::getView($table, $db); - } + // to refresh the list of indexes (Ajax mode) + $extra_data['indexes_list'] = PMA_Index::getView($table, $db); } return $extra_data; @@ -1552,6 +1550,11 @@ function PMA_executeTheQuery($analyzed_sql_results, $full_sql_query, $is_gotofil isset($_REQUEST['purge']) ? $_REQUEST['purge'] : null, isset($extra_data) ? $extra_data : null ); + + // Update Indexes list. + if (isset($_REQUEST['index_change'])) { + $extra_data['indexes_list'] = PMA_Index::getView($table, $db); + } } return array($result, $num_rows, $unlim_num_rows,