You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by cm...@apache.org on 2009/07/21 23:42:59 UTC

svn commit: r796548 - in /couchdb/trunk/share/www/script: futon.browse.js jquery.editinline.js

Author: cmlenz
Date: Tue Jul 21 21:42:59 2009
New Revision: 796548

URL: http://svn.apache.org/viewvc?rev=796548&view=rev
Log:
Fix for COUCHDB-318: when adding or renaming a field in Futon, check that a field with the same name does not already exist.

Modified:
    couchdb/trunk/share/www/script/futon.browse.js
    couchdb/trunk/share/www/script/jquery.editinline.js

Modified: couchdb/trunk/share/www/script/futon.browse.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/futon.browse.js?rev=796548&r1=796547&r2=796548&view=diff
==============================================================================
--- couchdb/trunk/share/www/script/futon.browse.js [utf-8] (original)
+++ couchdb/trunk/share/www/script/futon.browse.js [utf-8] Tue Jul 21 21:42:59 2009
@@ -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);

Modified: couchdb/trunk/share/www/script/jquery.editinline.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/www/script/jquery.editinline.js?rev=796548&r1=796547&r2=796548&view=diff
==============================================================================
--- couchdb/trunk/share/www/script/jquery.editinline.js (original)
+++ couchdb/trunk/share/www/script/jquery.editinline.js Tue Jul 21 21:42:59 2009
@@ -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;
       }