diff --git a/js/makegrid.js b/js/makegrid.js index d8a8818bd1..773083164f 100644 --- a/js/makegrid.js +++ b/js/makegrid.js @@ -869,9 +869,9 @@ */ var full_where_clause = Array(); /** - * @var nonunique Boolean, whether the rows in this table is unique or not + * @var is_unique Boolean, whether the rows in this table is unique or not */ - var nonunique = $('.inline_edit_anchor').is('.nonunique') ? 0 : 1; + var is_unique = $('.inline_edit_anchor').is('.nonunique') ? 0 : 1; /** * multi edit variables */ @@ -973,7 +973,7 @@ 'server' : g.server, 'db' : g.db, 'table' : g.table, - 'clause_is_unique' : nonunique, + 'clause_is_unique' : is_unique, 'where_clause' : full_where_clause, 'fields[multi_edit]' : me_fields, 'fields_name[multi_edit]' : me_fields_name, @@ -1015,10 +1015,31 @@ 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() { $(this).attr('href', $(this).attr('href').replace(old_clause, new_clause)); + // update delete confirmation in Delete link + if ($(this).attr('href').indexOf('DELETE') > -1) { + $(this).removeAttr('onclick') + .unbind('click') + .bind('click', function() { + return confirmLink(this, 'DELETE FROM `' + g.db + '`.`' + g.table + '` WHERE ' + + 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)); }); } });