diff options
-rw-r--r-- | share/www/script/futon.browse.js | 12 | ||||
-rw-r--r-- | share/www/script/jquery.editinline.js | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/share/www/script/futon.browse.js b/share/www/script/futon.browse.js index e9a6ff98..538a747b 100644 --- a/share/www/script/futon.browse.js +++ b/share/www/script/futon.browse.js @@ -885,6 +885,15 @@ if (keyCode == 9) { // tab, move to editing the value row.find("td").dblclick(); } + }, + validate: function(newName, oldName) { + $("div.error", this).remove(); + if (newName != oldName && doc[newName] !== undefined) { + $("<div class='error'>Already have field with that name.</div>") + .appendTo(this); + return false; + } + return true; } }); } @@ -918,12 +927,13 @@ return $.futon.formatJSON(doc[row.data("name")]); }, validate: function(value) { + $("div.error", this).remove(); try { JSON.parse(value); return true; } catch (err) { var msg = err.message; - if (msg == "parseJSON") { + if (msg == "parseJSON" || msg == "JSON.parse") { msg = "Please enter a valid JSON value (for example, \"string\")."; } $("<div class='error'></div>").text(msg).appendTo(this); diff --git a/share/www/script/jquery.editinline.js b/share/www/script/jquery.editinline.js index e3a33155..e677b982 100644 --- a/share/www/script/jquery.editinline.js +++ b/share/www/script/jquery.editinline.js @@ -50,7 +50,7 @@ return true; } if ((!options.allowEmpty && !newText.length) || - !options.validate.apply(elem, [newText])) { + !options.validate.apply(elem, [newText, origText])) { input.addClass("invalid"); return false; } |