diff --git a/ChangeLog b/ChangeLog index c59a9f0169..b4bc4087dd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -54,6 +54,7 @@ phpMyAdmin - ChangeLog 3.4.8.0 (not yet released) - bug #3425230 [interface] enum data split at space char (more space to edit) +- bug #3426840 [interface] ENUM/SET editor can't handle commas in values 3.4.7.0 (not yet released) - bug #3418610 [interface] Links in navigation when $cfg['MainPageIconic'] = false diff --git a/js/functions.js b/js/functions.js index d39e387edf..dcd8f0f257 100644 --- a/js/functions.js +++ b/js/functions.js @@ -2609,24 +2609,48 @@ $(document).ready(function() { var h3_text = $("#enum_editor h3").html(); $("#enum_editor h3").html(h3_text.split('"')[0]+'"'+column_name+'"'); - // Get the values - var values = $(this).parent().prev("input").attr("value").split(","); - $.each(values, function(index, val) { - if(jQuery.trim(val) != "") { - // enclose the string in single quotes if it's not already - if(val.substr(0, 1) != "'") { - val = "'" + val; - } - if(val.substr(val.length-1, val.length) != "'") { - val = val + "'"; - } - // escape the single quotes, except the mandatory ones enclosing the entire string - val = val.substr(1, val.length-2).replace(/''/g, "'").replace(/\\\\/g, '\\').replace(/\\'/g, "'").replace(/'/g, "'"); - // escape the greater-than symbol - val = val.replace(/>/g, ">"); - $("#enum_editor #values").append(""); + // Get the values as a string + var inputstring = $(this) + .parent() + .prev("input") + .val(); + // Escape html entities + inputstring = $('
') + .text(inputstring) + .html(); + // Parse the values, escaping quotes and + // slashes on the fly, into an array + var values = []; + var in_string = false; + var curr, next, buffer = ''; + for (var i=0; i 0) { + values.push(buffer); + } + // Add the parsed values to the editor + for (var i=0; i" + ); + } // So we know which column's data is being edited $("#enum_editor").append(""); return false;