bug #4705 Table structure: adding primary key doesn't refresh page

Signed-off-by: Madhura Jayaratne <madhura.cj@gmail.com>
This commit is contained in:
Madhura Jayaratne 2015-01-14 18:05:14 +05:30
parent b2a37f7b5d
commit 785123b643
5 changed files with 48 additions and 142 deletions

View File

@ -18,6 +18,7 @@ phpMyAdmin - ChangeLog
+ rfe #1525 Generate keys one per line
+ rfe #347 allow table with transformed column anywhere in FROM clause
+ rfe #1591 Shortcut link to search page
- bug #4705 Table structure: adding primary key doesn't refresh page
4.3.7.0 (not yet released)
- bug #4694 js error on marking table as favorite in Safari (in private mode)

View File

@ -71,9 +71,7 @@ function reloadFieldForm() {
*/
AJAX.registerTeardown('tbl_structure.js', function () {
$(document).off('click', "a.drop_column_anchor.ajax");
$(document).off('click', "a.add_primary_key_anchor.ajax");
$(document).off('click', "a.add_index_anchor.ajax");
$(document).off('click', "a.add_unique_anchor.ajax");
$(document).off('click', "a.add_key.ajax");
$(document).off('click', "#move_columns_anchor");
$(document).off('submit', ".append_fields_form.ajax");
$('body').off('click', '#fieldsForm.ajax button[name="submit_mult"], #fieldsForm.ajax input[name="submit_mult"]');
@ -201,141 +199,35 @@ AJAX.registerOnload('tbl_structure.js', function () {
}); //end of Drop Column Anchor action
/**
* Ajax Event handler for 'Add Primary Key'
* Ajax Event handler for adding keys
*/
$(document).on('click', "a.add_primary_key_anchor.ajax", function (event) {
$(document).on('click', "a.add_key.ajax", function (event) {
event.preventDefault();
/**
* @var curr_table_name String containing the name of the current table
*/
var curr_table_name = $(this).closest('form').find('input[name=table]').val();
/**
* @var curr_column_name String containing name of the field referred to by {@link curr_row}
*/
var curr_column_name = $(this).parents('tr').children('th').children('label').text();
/**
* @var question String containing the question to be asked for confirmation
*/
var question = PMA_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, 'index_change' : true},
function (data) {
if (typeof data !== 'undefined' && data.success === true) {
PMA_ajaxRemoveMessage($msg);
$(this).remove();
if (typeof data.reload != 'undefined') {
PMA_commonActions.refreshMain(false, function () {
if ($('.result_query').length) {
$('.result_query').remove();
}
if (data.sql_query) {
$('<div class="result_query"></div>')
.html(data.sql_query)
.prependTo('#page_content');
PMA_highlightSQL($('#page_content'));
}
});
PMA_reloadNavigation();
}
if (data.indexes_list) {
$('.index_info').replaceWith(data.indexes_list);
}
} else {
PMA_ajaxShowMessage(PMA_messages.strErrorProcessingRequest + " : " + data.error, false);
}
}); // end $.get()
}); // end $.PMA_confirm()
}); //end Add Primary Key
/**
* Ajax Event handler for 'Add Index'
*/
$(document).on('click', "a.add_index_anchor.ajax", function (event) {
event.preventDefault();
/**
* @var curr_table_name String containing the name of the current table
*/
var curr_table_name = $(this).closest('form').find('input[name=table]').val();
/**
* @var curr_column_name String containing name of the field referred to by {@link curr_row}
*/
var curr_column_name = $(this).parents('tr').children('th').children('label').text();
/**
* @var question String containing the question to be asked for confirmation
*/
var question = PMA_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, 'index_change' : true},
function (data) {
if (typeof data !== 'undefined' && data.success === true) {
PMA_ajaxRemoveMessage($msg);
if ($('.result_query').length) {
$('.result_query').remove();
}
if (data.sql_query) {
$('<div class="result_query"></div>')
.html(data.sql_query)
.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);
}
}); // end $.get()
}); // end $.PMA_confirm()
}); //end Add Index
$this = $(this);
var curr_table_name = $this.closest('form').find('input[name=table]').val();
var curr_column_name = $this.parents('tr').children('th').children('label').text();
var add_cluase = '';
if ($this.is('.add_primary_key_anchor')) {
add_cluase = 'ADD PRIMARY KEY';
} else if ($this.is('.add_index_anchor')) {
add_cluase = 'ADD INDEX';
} else if ($this.is('.add_unique_anchor')) {
add_cluase = 'ADD UNIQUE';
} else if ($this.is('.add_spatial_anchor')) {
add_cluase = 'ADD SPATIAL';
} else if ($this.is('.add_fulltext_anchor')) {
add_cluase = 'ADD FULLTEXT';
}
var question = PMA_sprintf(PMA_messages.strDoYouReally, 'ALTER TABLE `' +
escapeHtml(curr_table_name) + '` ' + add_cluase + '(`' + escapeHtml(curr_column_name) + '`);');
/**
* Ajax Event handler for 'Add Unique'
*/
$(document).on('click', "a.add_unique_anchor.ajax", function (event) {
event.preventDefault();
/**
* @var curr_table_name String containing the name of the current table
*/
var curr_table_name = $(this).closest('form').find('input[name=table]').val();
/**
* @var curr_column_name String containing name of the field referred to by {@link curr_row}
*/
var curr_column_name = $(this).parents('tr').children('th').children('label').text();
/**
* @var question String containing the question to be asked for confirmation
*/
var question = PMA_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, 'index_change' : true},
function (data) {
if (typeof data !== 'undefined' && data.success === true) {
PMA_ajaxRemoveMessage($msg);
if ($('.result_query').length) {
$('.result_query').remove();
}
if (data.sql_query) {
$('<div id="result_query"></div>')
.html(data.sql_query)
.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);
}
}); // end $.get()
PMA_ajaxShowMessage();
$.get(url, {'ajax_request' : true, 'ajax_page_request' : true}, AJAX.responseHandler);
}); // end $.PMA_confirm()
}); //end Add Unique
}); //end Add key
/**
* Inline move columns

View File

@ -2121,7 +2121,6 @@ function PMA_executeQueryAndSendQueryResponse($analyzed_sql_results,
$response = PMA_Response::getInstance();
$response->addHTML($html_output);
exit();
}
/**

View File

@ -1950,13 +1950,20 @@ function PMA_getHtmlForActionRowInStructureTable($type, $tbl_storage_engine,
) {
$html_output .= $titles['No' . $action];
} else {
$html_output .= '<a rel="samepage" '
. ($hasLinkClass ? 'class="ajax add_primary_key_anchor" ' :
($action=='Index' ? 'class="ajax add_index_anchor"' :
($action=='Unique' ? 'class="ajax add_unique_anchor"' : ' ')
)
)
. ' href="sql.php' . $url_query . '&amp;sql_query='
$html_output .= '<a rel="samepage" class="ajax add_key';
if ($hasLinkClass) {
$html_output .= ' add_primary_key_anchor"';
} else if ($action=='Index') {
$html_output .= ' add_index_anchor"';
} else if ($action=='Unique') {
$html_output .= ' add_unique_anchor"';
} else if ($action=='Spatial') {
$html_output .= ' add_spatial_anchor"';
} else {
$html_output .= '"';
}
$html_output .= ' href="tbl_structure.php' . $url_query
. '&amp;add_key=1&amp;sql_query='
. urlencode(
'ALTER TABLE ' . PMA_Util::backquote($GLOBALS['table'])
. ($isPrimary ? ($primary ? ' DROP PRIMARY KEY,' : '') : '')
@ -1999,8 +2006,9 @@ function PMA_getHtmlForFullTextAction($tbl_storage_engine, $type, $url_query,
&& (/*overload*/mb_strpos($type, 'text') !== false
|| /*overload*/mb_strpos($type, 'char') !== false)
) {
$html_output .= '<a rel="samepage" href="sql.php' . $url_query
. '&amp;sql_query='
$html_output .= '<a rel="samepage" class="ajax add_key add_fulltext_anchor" '
. 'href="tbl_structure.php' . $url_query
. '&amp;add_key=1&amp;sql_query='
. urlencode(
'ALTER TABLE ' . PMA_Util::backquote($GLOBALS['table'])
. ' ADD FULLTEXT(' . PMA_Util::backquote($row['Field'])

View File

@ -89,6 +89,12 @@ if (isset($_REQUEST['do_save_data'])) {
unset($_REQUEST['selected']);
}
}
/**
* Adding indexes
*/
if (isset($_REQUEST['add_key'])) {
include 'sql.php';
}
/**
* handle multiple field commands if required