Fix #4523 insert as new row submit type on multiple selected records does not set all AUTO_INCREMENTs to 0 value

Signed-off-by: Hugues Peccatte <hugues.peccatte@gmail.com>
This commit is contained in:
Hugues Peccatte 2014-09-14 20:44:25 +02:00
parent e38891f07a
commit fbf2e028f5
2 changed files with 15 additions and 6 deletions

View File

@ -10,6 +10,7 @@ phpMyAdmin - ChangeLog
4.2.8.1 (not yet released)
- bug #4530 [security] DOM based XSS that results to a CSRF that creates a
ROOT account in certain conditions
- bug #4523 tbl_change.js: insert as new row submit type on multiple selected records does not set all AUTO_INCREMENTs to 0 value
4.2.8.0 (2014-08-31)
- bug #4516 Odd export behavior

View File

@ -311,20 +311,28 @@ AJAX.registerOnload('tbl_change.js', function () {
* available).
*/
$('select[name="submit_type"]').bind('change', function (e) {
var $thisElemSubmitTypeField = $(this);
var $table = $('table.insertRowTable');
var auto_increment_column = $table.find('input[name^="auto_increment"]').attr('name');
if (auto_increment_column) {
var prev_value_field = $table.find('input[name="' + auto_increment_column.replace('auto_increment', 'fields_prev') + '"]');
var value_field = $table.find('input[name="' + auto_increment_column.replace('auto_increment', 'fields') + '"]');
var auto_increment_column = $table.find('input[name^="auto_increment"]');
auto_increment_column.each(function () {
var $thisElemAIField = $(this);
var thisElemName = $thisElemAIField.attr('name');
var prev_value_field = $table.find('input[name="' + thisElemName.replace('auto_increment', 'fields_prev') + '"]');
var value_field = $table.find('input[name="' + thisElemName.replace('auto_increment', 'fields') + '"]');
var previous_value = $(prev_value_field).val();
if (previous_value !== undefined) {
if ($(this).val() == 'insert' || $(this).val() == 'insertignore' || $(this).val() == 'showinsert') {
if ($thisElemSubmitTypeField.val() == 'insert'
|| $thisElemSubmitTypeField.val() == 'insertignore'
|| $thisElemSubmitTypeField.val() == 'showinsert'
) {
$(value_field).val(0);
} else {
$(value_field).val(previous_value);
}
}
}
});
});
/**