From fbf2e028f55a59b307022b0c79cf1b6f4df65cf5 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 14 Sep 2014 20:44:25 +0200 Subject: [PATCH 1/2] 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 --- ChangeLog | 1 + js/tbl_change.js | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index baba21244e..08bc77c36f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 diff --git a/js/tbl_change.js b/js/tbl_change.js index b95efc48ef..bab668dbad 100644 --- a/js/tbl_change.js +++ b/js/tbl_change.js @@ -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); } } - } + }); + }); /** From 41c02512c7af351231f4ec280e146eef597be2db Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 14 Sep 2014 20:47:24 +0200 Subject: [PATCH 2/2] Code style improvements. Signed-off-by: Hugues Peccatte --- js/tbl_change.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/js/tbl_change.js b/js/tbl_change.js index bab668dbad..d73e4edc50 100644 --- a/js/tbl_change.js +++ b/js/tbl_change.js @@ -311,7 +311,7 @@ AJAX.registerOnload('tbl_change.js', function () { * available). */ $('select[name="submit_type"]').bind('change', function (e) { - var $thisElemSubmitTypeField = $(this); + var thisElemSubmitTypeVal = $(this).val(); var $table = $('table.insertRowTable'); var auto_increment_column = $table.find('input[name^="auto_increment"]'); auto_increment_column.each(function () { @@ -322,9 +322,9 @@ AJAX.registerOnload('tbl_change.js', function () { var value_field = $table.find('input[name="' + thisElemName.replace('auto_increment', 'fields') + '"]'); var previous_value = $(prev_value_field).val(); if (previous_value !== undefined) { - if ($thisElemSubmitTypeField.val() == 'insert' - || $thisElemSubmitTypeField.val() == 'insertignore' - || $thisElemSubmitTypeField.val() == 'showinsert' + if (thisElemSubmitTypeVal == 'insert' + || thisElemSubmitTypeVal == 'insertignore' + || thisElemSubmitTypeVal == 'showinsert' ) { $(value_field).val(0); } else {