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:
parent
b2a37f7b5d
commit
785123b643
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -2121,7 +2121,6 @@ function PMA_executeQueryAndSendQueryResponse($analyzed_sql_results,
|
||||
|
||||
$response = PMA_Response::getInstance();
|
||||
$response->addHTML($html_output);
|
||||
exit();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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 . '&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
|
||||
. '&add_key=1&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
|
||||
. '&sql_query='
|
||||
$html_output .= '<a rel="samepage" class="ajax add_key add_fulltext_anchor" '
|
||||
. 'href="tbl_structure.php' . $url_query
|
||||
. '&add_key=1&sql_query='
|
||||
. urlencode(
|
||||
'ALTER TABLE ' . PMA_Util::backquote($GLOBALS['table'])
|
||||
. ' ADD FULLTEXT(' . PMA_Util::backquote($row['Field'])
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user