Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
819a520744
@ -25,7 +25,9 @@ phpMyAdmin - ChangeLog
|
||||
+ [display] More options for browsing GIS data
|
||||
+ [interface] Support for spatial indexes
|
||||
+ [display] GIS data visualization
|
||||
+ AJAX for table structure multiple-columns change
|
||||
+ AJAX for table structure multiple-column change
|
||||
+ AJAX for table structure index edit
|
||||
+ Show/hide indexes in table structure
|
||||
|
||||
3.4.4.0 (not yet released)
|
||||
- bug #3323060 [parser] SQL parser breaks AJAX requests if query has unclosed quotes
|
||||
|
||||
@ -110,6 +110,8 @@ $js_messages['strNo'] = __('No');
|
||||
|
||||
/* For db_stucture.js */
|
||||
$js_messages['strInsertTable'] = __('Insert Table');
|
||||
$js_messages['strHideIndexes'] = __('Hide indexes');
|
||||
$js_messages['strShowIndexes'] = __('Show indexes');
|
||||
|
||||
/* For db_search.js */
|
||||
$js_messages['strSearching'] = __('Searching');
|
||||
|
||||
10
js/sql.js
10
js/sql.js
@ -1163,7 +1163,7 @@ $(document).ready(function() {
|
||||
}) // end $.post()
|
||||
}) // end insert table button "Go"
|
||||
|
||||
/**
|
||||
/**$("#buttonYes.ajax").live('click'
|
||||
* Click action for #buttonYes button in ajax dialog insertForm
|
||||
*/
|
||||
$("#buttonYes.ajax").live('click', function(event){
|
||||
@ -1370,22 +1370,22 @@ $(document).ready(function() {
|
||||
$("#sqlqueryresults").trigger('makegrid');
|
||||
});
|
||||
|
||||
/*
|
||||
/*
|
||||
* Profiling Chart
|
||||
*/
|
||||
function createProfilingChart() {
|
||||
if($('#profilingchart').length==0) return;
|
||||
|
||||
|
||||
var cdata = new Array();
|
||||
$.each(jQuery.parseJSON($('#profilingchart').html()),function(key,value) {
|
||||
cdata.push([key,parseFloat(value)]);
|
||||
});
|
||||
|
||||
|
||||
// Prevent the user from seeing the JSON code
|
||||
$('div#profilingchart').html('').show();
|
||||
|
||||
PMA_createChart({
|
||||
chart: {
|
||||
chart: {
|
||||
renderTo: 'profilingchart',
|
||||
backgroundColor: $('#sqlqueryresults fieldset').css('background-color')
|
||||
},
|
||||
|
||||
@ -250,4 +250,146 @@ $(document).ready(function() {
|
||||
}) // end $.post()
|
||||
}) // end insert table button "do_save_data"
|
||||
|
||||
/**
|
||||
*Ajax event handler for index edit
|
||||
**/
|
||||
$("#table_index tbody tr td.edit_index.ajax").live('click', function(event){
|
||||
event.preventDefault();
|
||||
var url = $(this).find("a").attr("href");
|
||||
if (url.substring(0, 16) == "tbl_indexes.php?") {
|
||||
url = url.substring(16, url.length );
|
||||
}
|
||||
url = url + "&ajax_request=true";
|
||||
|
||||
var div = $('<div id="edit_index_dialog"></div>');
|
||||
|
||||
/**
|
||||
* @var button_options Object that stores the options passed to jQueryUI
|
||||
* dialog
|
||||
*/
|
||||
var button_options = {};
|
||||
// in the following function we need to use $(this)
|
||||
button_options[PMA_messages['strCancel']] = function() {$(this).parent().dialog('close').remove();}
|
||||
|
||||
var button_options_error = {};
|
||||
button_options_error[PMA_messages['strOK']] = function() {$(this).parent().dialog('close').remove();}
|
||||
var $msgbox = PMA_ajaxShowMessage();
|
||||
|
||||
$.get( "tbl_indexes.php" , url , function(data) {
|
||||
//in the case of an error, show the error message returned.
|
||||
if (data.success != undefined && data.success == false) {
|
||||
div
|
||||
.append(data.error)
|
||||
.dialog({
|
||||
title: PMA_messages['strEdit'],
|
||||
height: 230,
|
||||
width: 900,
|
||||
open: PMA_verifyTypeOfAllColumns,
|
||||
buttons : button_options_error
|
||||
})// end dialog options
|
||||
} else {
|
||||
div
|
||||
.append(data)
|
||||
.dialog({
|
||||
title: PMA_messages['strEdit'],
|
||||
height: 600,
|
||||
width: 900,
|
||||
open: PMA_verifyTypeOfAllColumns,
|
||||
buttons : button_options
|
||||
})
|
||||
//Remove the top menu container from the dialog
|
||||
.find("#topmenucontainer").hide()
|
||||
; // end dialog options
|
||||
}
|
||||
PMA_ajaxRemoveMessage($msgbox);
|
||||
}) // end $.get()
|
||||
});
|
||||
|
||||
/**
|
||||
*Ajax action for submiting the index form
|
||||
**/
|
||||
$("#index_frm.ajax input[name=do_save_data]").live('click', function(event) {
|
||||
event.preventDefault();
|
||||
/**
|
||||
* @var the_form object referring to the export form
|
||||
*/
|
||||
var $form = $("#index_frm");
|
||||
|
||||
PMA_prepareForAjaxRequest($form);
|
||||
//User wants to submit the form
|
||||
$.post($form.attr('action'), $form.serialize()+"&do_save_data=Save", function(data) {
|
||||
if ($("#sqlqueryresults").length != 0) {
|
||||
$("#sqlqueryresults").remove();
|
||||
}
|
||||
if (data.success == true) {
|
||||
PMA_ajaxShowMessage(data.message);
|
||||
$("<div id='sqlqueryresults'></div>").insertAfter("#topmenucontainer");
|
||||
$("#sqlqueryresults").html(data.sql_query);
|
||||
$("#result_query .notice").remove();
|
||||
$("#result_query").prepend((data.message));
|
||||
|
||||
/*Reload the field form*/
|
||||
$("#table_index").remove();
|
||||
var temp_div = $("<div id='temp_div'><div>").append(data.index_table);
|
||||
$(temp_div).find("#table_index").insertAfter("#index_header");
|
||||
if ($("#edit_index_dialog").length > 0) {
|
||||
$("#edit_index_dialog").dialog("close").remove();
|
||||
}
|
||||
|
||||
} else {
|
||||
var temp_div = $("<div id='temp_div'><div>").append(data.error);
|
||||
var error = $(temp_div).find(".error code").addClass("error");
|
||||
PMA_ajaxShowMessage(error);
|
||||
}
|
||||
|
||||
}) // end $.post()
|
||||
}) // end insert table button "do_save_data"
|
||||
|
||||
/**
|
||||
*Ajax action for submiting the index form for add more columns
|
||||
**/
|
||||
$("#index_frm.ajax input[name=add_fields]").live('click', function(event) {
|
||||
event.preventDefault();
|
||||
/**
|
||||
* @var the_form object referring to the export form
|
||||
*/
|
||||
var $form = $("#index_frm");
|
||||
|
||||
PMA_prepareForAjaxRequest($form);
|
||||
//User wants to submit the form
|
||||
$.post($form.attr('action'), $form.serialize()+"&add_fields=Go", function(data) {
|
||||
$("#index_columns").remove();
|
||||
var temp_div = $("<div id='temp_div'><div>").append(data);
|
||||
$(temp_div).find("#index_columns").insertAfter("#index_frm fieldset .error");
|
||||
}) // end $.post()
|
||||
}) // end insert table button "Go"
|
||||
|
||||
/**Add the show/hide index table option if the index is available*/
|
||||
if ($("#index_div.ajax").find("#table_index").length != 0) {
|
||||
/**
|
||||
*Prepare a div containing a link for toggle the index table
|
||||
*/
|
||||
$('<div id="toggletableindexdiv"><a id="toggletableindexlink"></a></div>')
|
||||
.insertAfter('#index_div')
|
||||
/** don't show it until we have index table on-screen */
|
||||
.show();
|
||||
|
||||
/** Changing the displayed text according to the hide/show criteria in table index*/
|
||||
|
||||
$('#toggletableindexlink')
|
||||
.html(PMA_messages['strHideIndexes'])
|
||||
.bind('click', function() {
|
||||
var $link = $(this);
|
||||
$('#index_div').slideToggle();
|
||||
if ($link.text() == PMA_messages['strHideIndexes']) {
|
||||
$link.text(PMA_messages['strShowIndexes']);
|
||||
} else {
|
||||
$link.text(PMA_messages['strHideIndexes']);
|
||||
}
|
||||
/** avoid default click action */
|
||||
return false;
|
||||
});
|
||||
} //end show/hide table index
|
||||
|
||||
|
||||
}) // end $(document).ready()
|
||||
|
||||
@ -419,10 +419,10 @@ class PMA_Index
|
||||
|
||||
$r = '';
|
||||
|
||||
$r .= '<h2>' . __('Indexes') . ': ';
|
||||
$r .= '<h2 id="index_header">' . __('Indexes') . ': ';
|
||||
$r .= PMA_showMySQLDocu('optimization', 'optimizing-database-structure');
|
||||
$r .= '</h2>';
|
||||
$r .= '<table>';
|
||||
$r .= '<table id="table_index">';
|
||||
$r .= '<thead>';
|
||||
$r .= '<tr>';
|
||||
if (! $print_mode) {
|
||||
@ -450,7 +450,11 @@ class PMA_Index
|
||||
if (! $print_mode) {
|
||||
$this_params = $GLOBALS['url_params'];
|
||||
$this_params['index'] = $index->getName();
|
||||
$r .= '<td ' . $row_span . '>'
|
||||
$r .= '<td class="edit_index ';
|
||||
if ($GLOBALS['cfg']['AjaxEnable']) {
|
||||
$r .= 'ajax" ';
|
||||
}
|
||||
$r .= '" ' . $row_span . '>'
|
||||
. ' <a href="tbl_indexes.php' . PMA_generate_common_url($this_params)
|
||||
. '">' . PMA_getIcon('b_edit.png', __('Edit')) . '</a>'
|
||||
. '</td>' . "\n";
|
||||
|
||||
@ -97,7 +97,13 @@ if (isset($_REQUEST['do_save_data'])) {
|
||||
PMA_DBI_query($sql_query);
|
||||
$message = PMA_Message::success(__('Table %1$s has been altered successfully'));
|
||||
$message->addParam($table);
|
||||
|
||||
|
||||
if( $GLOBALS['is_ajax_request'] == true) {
|
||||
$extra_data['index_table'] = PMA_Index::getView($table, $db);
|
||||
$extra_data['sql_query'] = PMA_showMessage(NULL, $sql_query);
|
||||
PMA_ajaxResponse($message, $message->isSuccess(), $extra_data);
|
||||
}
|
||||
|
||||
$active_page = 'tbl_structure.php';
|
||||
require './tbl_structure.php';
|
||||
exit;
|
||||
@ -133,7 +139,7 @@ if (isset($_REQUEST['index']) && is_array($_REQUEST['index'])) {
|
||||
// end preparing form values
|
||||
?>
|
||||
|
||||
<form action="./tbl_indexes.php" method="post" name="index_frm"
|
||||
<form action="./tbl_indexes.php" method="post" name="index_frm" id="index_frm" <?php echo ($GLOBALS['cfg']['AjaxEnable'] ? ' class="ajax"' : ''); ?>
|
||||
onsubmit="if (typeof(this.elements['index'].disabled) != 'undefined') {
|
||||
this.elements['index'].disabled = false}">
|
||||
<?php
|
||||
@ -183,7 +189,7 @@ if (isset($_REQUEST['create_index'])) {
|
||||
PMA_Message::error(__('("PRIMARY" <b>must</b> be the name of and <b>only of</b> a primary key!)'))->display();
|
||||
?>
|
||||
|
||||
<table>
|
||||
<table id="index_columns">
|
||||
<thead>
|
||||
<tr><th><?php echo __('Column'); ?></th>
|
||||
<th><?php echo __('Size'); ?></th>
|
||||
|
||||
@ -14,7 +14,7 @@ require_once './libraries/mysql_charsets.lib.php';
|
||||
|
||||
$GLOBALS['js_include'][] = 'jquery/jquery-ui-1.8.custom.js';
|
||||
$GLOBALS['js_include'][] = 'tbl_structure.js';
|
||||
|
||||
$GLOBALS['js_include'][] = 'indexes.js';
|
||||
/**
|
||||
* handle multiple field commands if required
|
||||
*
|
||||
@ -699,6 +699,7 @@ if (! $tbl_is_view && ! $db_is_information_schema) {
|
||||
</form>
|
||||
<iframe class="IE_hack" scrolling="no"></iframe>
|
||||
<hr />
|
||||
<div id="index_div" <?php echo ($GLOBALS['cfg']['AjaxEnable'] ? ' class="ajax"' : ''); ?> >
|
||||
<?php
|
||||
}
|
||||
|
||||
@ -720,7 +721,7 @@ if (! $tbl_is_view && ! $db_is_information_schema && 'ARCHIVE' != $tbl_type) {
|
||||
*/
|
||||
echo PMA_Index::getView($table, $db);
|
||||
?>
|
||||
<br />
|
||||
</div>
|
||||
<form action="./tbl_indexes.php" method="post"
|
||||
onsubmit="return checkFormElementInRange(this, 'idx_num_fields',
|
||||
'<?php echo str_replace('\'', '\\\'', __('Column count has to be larger than zero.')); ?>',
|
||||
|
||||
Loading…
Reference in New Issue
Block a user