From 65bea22f1faa7dda9ffa9bd04d00b7fb47a01907 Mon Sep 17 00:00:00 2001 From: Aris Feryanto Date: Tue, 2 Aug 2011 13:07:25 +0800 Subject: [PATCH] Grid edit: fix bug - multi rows edit not work correctly on grid edited rows, if the primary key changed (case if there is a primary key) or some field changed (case if there is no primary key) --- js/makegrid.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/js/makegrid.js b/js/makegrid.js index 81ee236481..e24c39ade8 100644 --- a/js/makegrid.js +++ b/js/makegrid.js @@ -1015,6 +1015,9 @@ if (new_clause != '') { var $where_clause = $(this).parent('tr').find('.where_clause'); var old_clause = $where_clause.attr('value'); + var decoded_old_clause = PMA_urldecode(old_clause); + var decoded_new_clause = PMA_urldecode(new_clause); + $where_clause.attr('value', new_clause); // update Edit, Copy, and Delete links also $(this).parent('tr').find('a').each(function() { @@ -1025,10 +1028,19 @@ .unbind('click') .bind('click', function() { return confirmLink(this, 'DELETE FROM `' + g.db + '`.`' + g.table + '` WHERE ' + - PMA_urldecode(new_clause) + (is_unique ? '' : ' LIMIT 1')); + decoded_new_clause + (is_unique ? '' : ' LIMIT 1')); }); } }); + // update the multi edit checkboxes + $(this).parent('tr').find('input[type=checkbox]').each(function() { + var $checkbox = $(this); + var checkbox_name = $checkbox.attr('name'); + var checkbox_value = $checkbox.attr('value'); + + $checkbox.attr('name', checkbox_name.replace(old_clause, new_clause)); + $checkbox.attr('value', checkbox_value.replace(decoded_old_clause, decoded_new_clause)); + }); } }); // remove possible previous feedback message