Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
b6ad7f6244
@ -2776,7 +2776,7 @@ AJAX.registerOnload('functions.js', function() {
|
||||
});
|
||||
});
|
||||
|
||||
function indexEditorDialog(url, title)
|
||||
function indexEditorDialog(url, title, callback_success, callback_failure)
|
||||
{
|
||||
/*Remove the hidden dialogs if there are*/
|
||||
if ($('#edit_index_dialog').length != 0) {
|
||||
@ -2820,6 +2820,9 @@ function indexEditorDialog(url, title)
|
||||
$("#edit_index_dialog").dialog("close");
|
||||
}
|
||||
$('div.no_indexes_defined').hide();
|
||||
if (callback_success) {
|
||||
callback_success();
|
||||
}
|
||||
PMA_reloadNavigation();
|
||||
} else {
|
||||
var $temp_div = $("<div id='temp_div'><div>").append(data.error);
|
||||
@ -2828,6 +2831,9 @@ function indexEditorDialog(url, title)
|
||||
} else {
|
||||
var $error = $temp_div;
|
||||
}
|
||||
if (callback_failure) {
|
||||
callback_failure();
|
||||
}
|
||||
PMA_ajaxShowMessage($error, false);
|
||||
}
|
||||
}); // end $.post()
|
||||
|
||||
107
js/indexes.js
107
js/indexes.js
@ -1,7 +1,11 @@
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* function used for index manipulation pages
|
||||
* @fileoverview function used for index manipulation pages
|
||||
* @name Table Structure
|
||||
*
|
||||
* @requires jQuery
|
||||
* @requires jQueryUI
|
||||
* @required js/functions.js
|
||||
*/
|
||||
|
||||
/**
|
||||
@ -81,6 +85,9 @@ function checkIndexType()
|
||||
*/
|
||||
AJAX.registerTeardown('indexes.js', function() {
|
||||
$('#select_index_type').die('change');
|
||||
$('a.drop_primary_key_index_anchor.ajax').die('click');
|
||||
$("#table_index tbody tr td.edit_index.ajax, #indexes .add_index.ajax").die('click');
|
||||
$('#index_frm input[type=submit]').die('click');
|
||||
});
|
||||
|
||||
/**
|
||||
@ -89,6 +96,7 @@ AJAX.registerTeardown('indexes.js', function() {
|
||||
* Actions ajaxified here:
|
||||
* <ul>
|
||||
* <li>Showing/hiding inputs depending on the index type chosen</li>
|
||||
* <li>create/edit/drop indexes</li>
|
||||
* </ul>
|
||||
*/
|
||||
AJAX.registerOnload('indexes.js', function() {
|
||||
@ -99,4 +107,101 @@ AJAX.registerOnload('indexes.js', function() {
|
||||
checkIndexType();
|
||||
checkIndexName("index_frm");
|
||||
});
|
||||
|
||||
/**
|
||||
* Ajax Event handler for 'Drop Index'
|
||||
*/
|
||||
$('a.drop_primary_key_index_anchor.ajax').live('click', function(event) {
|
||||
event.preventDefault();
|
||||
var $anchor = $(this);
|
||||
/**
|
||||
* @var $curr_row Object containing reference to the current field's row
|
||||
*/
|
||||
var $curr_row = $anchor.parents('tr');
|
||||
/** @var Number of columns in the key */
|
||||
var rows = $anchor.parents('td').attr('rowspan') || 1;
|
||||
/** @var Rows that should be hidden */
|
||||
var $rows_to_hide = $curr_row;
|
||||
for (var i = 1, $last_row = $curr_row.next(); i < rows; i++, $last_row = $last_row.next()) {
|
||||
$rows_to_hide = $rows_to_hide.add($last_row);
|
||||
}
|
||||
|
||||
var question = escapeHtml(
|
||||
$curr_row.children('td')
|
||||
.children('.drop_primary_key_index_msg')
|
||||
.val()
|
||||
);
|
||||
|
||||
$anchor.PMA_confirm(question, $anchor.attr('href'), function(url) {
|
||||
var $msg = PMA_ajaxShowMessage(PMA_messages['strDroppingPrimaryKeyIndex'], false);
|
||||
$.get(url, {'is_js_confirmed': 1, 'ajax_request': true}, function(data) {
|
||||
if (data.success == true) {
|
||||
PMA_ajaxRemoveMessage($msg);
|
||||
var $table_ref = $rows_to_hide.closest('table');
|
||||
if ($rows_to_hide.length == $table_ref.find('tbody > tr').length) {
|
||||
// We are about to remove all rows from the table
|
||||
$table_ref.hide('medium', function() {
|
||||
$('div.no_indexes_defined').show('medium');
|
||||
$rows_to_hide.remove();
|
||||
});
|
||||
$table_ref.siblings('div.notice').hide('medium');
|
||||
} else {
|
||||
// We are removing some of the rows only
|
||||
toggleRowColors($rows_to_hide.last().next());
|
||||
$rows_to_hide.hide("medium", function () {
|
||||
$(this).remove();
|
||||
});
|
||||
}
|
||||
if ($('#result_query').length) {
|
||||
$('#result_query').remove();
|
||||
}
|
||||
if (data.sql_query) {
|
||||
$('<div id="result_query"></div>')
|
||||
.html(data.sql_query)
|
||||
.prependTo('#page_content');
|
||||
}
|
||||
PMA_commonActions.refreshMain(false, function() {
|
||||
$("a.ajax[href^=#indexes]").click();
|
||||
});
|
||||
PMA_reloadNavigation();
|
||||
} else {
|
||||
PMA_ajaxShowMessage(PMA_messages['strErrorProcessingRequest'] + " : " + data.error, false);
|
||||
}
|
||||
}); // end $.get()
|
||||
}); // end $.PMA_confirm()
|
||||
}); //end Drop Primary Key/Index
|
||||
|
||||
/**
|
||||
*Ajax event handler for index edit
|
||||
**/
|
||||
$("#table_index tbody tr td.edit_index.ajax, #indexes .add_index.ajax").live('click', function(event) {
|
||||
event.preventDefault();
|
||||
if ($(this).find("a").length == 0) {
|
||||
// Add index
|
||||
var valid = checkFormElementInRange(
|
||||
$(this).closest('form')[0],
|
||||
'added_fields',
|
||||
'Column count has to be larger than zero.'
|
||||
);
|
||||
if (! valid) {
|
||||
return;
|
||||
}
|
||||
var url = $(this).closest('form').serialize();
|
||||
var title = PMA_messages['strAddIndex'];
|
||||
} else {
|
||||
// Edit index
|
||||
var url = $(this).find("a").attr("href");
|
||||
if (url.substring(0, 16) == "tbl_indexes.php?") {
|
||||
url = url.substring(16, url.length);
|
||||
}
|
||||
var title = PMA_messages['strEditIndex'];
|
||||
}
|
||||
url += "&ajax_request=true";
|
||||
indexEditorDialog(url, title, function() {
|
||||
// refresh the page using ajax
|
||||
PMA_commonActions.refreshMain(false, function() {
|
||||
$("a.ajax[href^=#indexes]").click();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -26,9 +26,6 @@ AJAX.registerTeardown('tbl_structure.js', function() {
|
||||
$("button.change_columns_anchor.ajax, input.change_columns_anchor.ajax").die('click');
|
||||
$("a.drop_column_anchor.ajax").die('click');
|
||||
$("a.add_primary_key_anchor.ajax").die('click');
|
||||
$('a.drop_primary_key_index_anchor.ajax').die('click');
|
||||
$("#table_index tbody tr td.edit_index.ajax, #indexes .add_index.ajax").die('click');
|
||||
$('#index_frm input[type=submit]').die('click');
|
||||
$("#move_columns_anchor").die('click');
|
||||
$(".append_fields_form.ajax").unbind('submit');
|
||||
});
|
||||
@ -219,95 +216,6 @@ AJAX.registerOnload('tbl_structure.js', function() {
|
||||
}); // end $.PMA_confirm()
|
||||
}); //end Add Primary Key
|
||||
|
||||
/**
|
||||
* Ajax Event handler for 'Drop Primary Key/Index'
|
||||
*/
|
||||
$('a.drop_primary_key_index_anchor.ajax').live('click', function(event) {
|
||||
event.preventDefault();
|
||||
var $anchor = $(this);
|
||||
/**
|
||||
* @var $curr_row Object containing reference to the current field's row
|
||||
*/
|
||||
var $curr_row = $anchor.parents('tr');
|
||||
/** @var Number of columns in the key */
|
||||
var rows = $anchor.parents('td').attr('rowspan') || 1;
|
||||
/** @var Rows that should be hidden */
|
||||
var $rows_to_hide = $curr_row;
|
||||
for (var i = 1, $last_row = $curr_row.next(); i < rows; i++, $last_row = $last_row.next()) {
|
||||
$rows_to_hide = $rows_to_hide.add($last_row);
|
||||
}
|
||||
|
||||
var question = escapeHtml(
|
||||
$curr_row.children('td')
|
||||
.children('.drop_primary_key_index_msg')
|
||||
.val()
|
||||
);
|
||||
|
||||
$anchor.PMA_confirm(question, $anchor.attr('href'), function(url) {
|
||||
var $msg = PMA_ajaxShowMessage(PMA_messages['strDroppingPrimaryKeyIndex'], false);
|
||||
$.get(url, {'is_js_confirmed': 1, 'ajax_request': true}, function(data) {
|
||||
if (data.success == true) {
|
||||
PMA_ajaxRemoveMessage($msg);
|
||||
var $table_ref = $rows_to_hide.closest('table');
|
||||
if ($rows_to_hide.length == $table_ref.find('tbody > tr').length) {
|
||||
// We are about to remove all rows from the table
|
||||
$table_ref.hide('medium', function() {
|
||||
$('div.no_indexes_defined').show('medium');
|
||||
$rows_to_hide.remove();
|
||||
});
|
||||
$table_ref.siblings('div.notice').hide('medium');
|
||||
} else {
|
||||
// We are removing some of the rows only
|
||||
toggleRowColors($rows_to_hide.last().next());
|
||||
$rows_to_hide.hide("medium", function () {
|
||||
$(this).remove();
|
||||
});
|
||||
}
|
||||
if ($('#result_query').length) {
|
||||
$('#result_query').remove();
|
||||
}
|
||||
if (data.sql_query) {
|
||||
$('<div id="result_query"></div>')
|
||||
.html(data.sql_query)
|
||||
.prependTo('#page_content');
|
||||
}
|
||||
PMA_reloadNavigation();
|
||||
} else {
|
||||
PMA_ajaxShowMessage(PMA_messages['strErrorProcessingRequest'] + " : " + data.error, false);
|
||||
}
|
||||
}); // end $.get()
|
||||
}); // end $.PMA_confirm()
|
||||
}); //end Drop Primary Key/Index
|
||||
|
||||
/**
|
||||
*Ajax event handler for index edit
|
||||
**/
|
||||
$("#table_index tbody tr td.edit_index.ajax, #indexes .add_index.ajax").live('click', function(event) {
|
||||
event.preventDefault();
|
||||
if ($(this).find("a").length == 0) {
|
||||
// Add index
|
||||
var valid = checkFormElementInRange(
|
||||
$(this).closest('form')[0],
|
||||
'added_fields',
|
||||
'Column count has to be larger than zero.'
|
||||
);
|
||||
if (! valid) {
|
||||
return;
|
||||
}
|
||||
var url = $(this).closest('form').serialize();
|
||||
var title = PMA_messages['strAddIndex'];
|
||||
} else {
|
||||
// Edit index
|
||||
var url = $(this).find("a").attr("href");
|
||||
if (url.substring(0, 16) == "tbl_indexes.php?") {
|
||||
url = url.substring(16, url.length);
|
||||
}
|
||||
var title = PMA_messages['strEditIndex'];
|
||||
}
|
||||
url += "&ajax_request=true";
|
||||
indexEditorDialog(url, title);
|
||||
});
|
||||
|
||||
/**
|
||||
* Inline move columns
|
||||
**/
|
||||
|
||||
44
libraries/index.lib.php
Normal file
44
libraries/index.lib.php
Normal file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* set of functions for structure section in pma
|
||||
*
|
||||
* @package PhpMyAdmin
|
||||
*/
|
||||
if (!defined('PHPMYADMIN')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
require_once 'libraries/Index.class.php';
|
||||
|
||||
/**
|
||||
* Get HTML for display indexes
|
||||
*
|
||||
* @return string $html_output
|
||||
*/
|
||||
function PMA_getHtmlForDisplayIndexes()
|
||||
{
|
||||
$html_output = PMA_Util::getDivForSliderEffect(
|
||||
'indexes', __('Indexes')
|
||||
);
|
||||
$html_output .= PMA_Index::getView($GLOBALS['table'], $GLOBALS['db']);
|
||||
$html_output .= '<fieldset class="tblFooters" style="text-align: left;">'
|
||||
. '<form action="tbl_indexes.php" method="post">';
|
||||
$html_output .= PMA_generate_common_hidden_inputs($GLOBALS['db'], $GLOBALS['table'])
|
||||
. sprintf(
|
||||
__('Create an index on %s columns'),
|
||||
'<input type="text" size="2" name="added_fields" value="1" />'
|
||||
);
|
||||
$html_output .= '<input type="hidden" name="create_index" value="1" />'
|
||||
. '<input class="add_index ajax"'
|
||||
. ' type="submit" value="' . __('Go') . '" />';
|
||||
|
||||
$html_output .= '</form>'
|
||||
. '</fieldset>'
|
||||
. '</div>'
|
||||
. '</div>';
|
||||
|
||||
return $html_output;
|
||||
}
|
||||
|
||||
@ -1585,36 +1585,6 @@ function PMA_getHtmlForAddColumn($columns_list)
|
||||
return $html_output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get HTML for display indexes
|
||||
*
|
||||
* @return string $html_output
|
||||
*/
|
||||
function PMA_getHtmlForDisplayIndexes()
|
||||
{
|
||||
$html_output = PMA_Util::getDivForSliderEffect(
|
||||
'indexes', __('Indexes')
|
||||
);
|
||||
$html_output .= PMA_Index::getView($GLOBALS['table'], $GLOBALS['db']);
|
||||
$html_output .= '<fieldset class="tblFooters" style="text-align: left;">'
|
||||
. '<form action="tbl_indexes.php" method="post">';
|
||||
$html_output .= PMA_generate_common_hidden_inputs($GLOBALS['db'], $GLOBALS['table'])
|
||||
. sprintf(
|
||||
__('Create an index on %s columns'),
|
||||
'<input type="text" size="2" name="added_fields" value="1" />'
|
||||
);
|
||||
$html_output .= '<input type="hidden" name="create_index" value="1" />'
|
||||
. '<input class="add_index ajax"'
|
||||
. ' type="submit" value="' . __('Go') . '" />';
|
||||
|
||||
$html_output .= '</form>'
|
||||
. '</fieldset>'
|
||||
. '</div>'
|
||||
. '</div>';
|
||||
|
||||
return $html_output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get HTML snippet for table rows in the Information ->Space usage table
|
||||
*
|
||||
|
||||
@ -20,13 +20,13 @@
|
||||
* Gets some core libraries
|
||||
*/
|
||||
require_once 'libraries/common.inc.php';
|
||||
require_once 'libraries/index.lib.php';
|
||||
|
||||
$response = PMA_Response::getInstance();
|
||||
$header = $response->getHeader();
|
||||
$scripts = $header->getScripts();
|
||||
$scripts->addFile('tbl_relation.js');
|
||||
|
||||
require_once 'libraries/tbl_common.inc.php';
|
||||
$url_query .= '&goto=tbl_sql.php';
|
||||
$scripts->addFile('indexes.js');
|
||||
|
||||
/**
|
||||
* Sets globals from $_POST
|
||||
@ -566,7 +566,7 @@ if (count($columns) > 0) {
|
||||
);
|
||||
$html_output .= '</span>' . "\n";
|
||||
} else {
|
||||
$html_output .= __('No index defined!');
|
||||
$html_output .= __('No index defined! Create one below');
|
||||
} // end if (a key exists)
|
||||
$html_output .= '</td>';
|
||||
} // end if (InnoDB)
|
||||
@ -605,6 +605,7 @@ if (count($columns) > 0) {
|
||||
. '</form>';
|
||||
} // end if (we have columns in this table)
|
||||
|
||||
$html_output .= '<div id="index_div" class="ajax" >'. PMA_getHtmlForDisplayIndexes();
|
||||
// Render HTML output
|
||||
PMA_Response::getInstance()->addHTML($html_output);
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@ require_once 'libraries/mysql_charsets.lib.php';
|
||||
* Function implementations for this script
|
||||
*/
|
||||
require_once 'libraries/structure.lib.php';
|
||||
require_once 'libraries/index.lib.php';
|
||||
|
||||
$response = PMA_Response::getInstance();
|
||||
$header = $response->getHeader();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user