diff --git a/js/indexes.js b/js/indexes.js
index 3895bf7c85..d33046387e 100644
--- a/js/indexes.js
+++ b/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:
*
* - Showing/hiding inputs depending on the index type chosen
+ * - create/edit/drop indexes
*
*/
AJAX.registerOnload('indexes.js', function() {
@@ -99,4 +107,98 @@ 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) {
+ $('')
+ .html(data.sql_query)
+ .prependTo('#page_content');
+ }
+ PMA_reloadNavigation();
+ document.location.reload(true);
+ } 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() {
+ var location = document.location.href.split("#")[0];
+ // refresh the page using ajax
+ $('').click(AJAX.requestHandler).click();
+ });
+ });
});
diff --git a/js/tbl_structure.js b/js/tbl_structure.js
index ebbd6291cd..0f6e5f0bf6 100644
--- a/js/tbl_structure.js
+++ b/js/tbl_structure.js
@@ -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) {
- $('')
- .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
**/