update
authorJordan Augé <jordan.auge@lip6.fr>
Wed, 9 Jul 2014 11:52:07 +0000 (13:52 +0200)
committerJordan Augé <jordan.auge@lip6.fr>
Wed, 9 Jul 2014 11:52:07 +0000 (13:52 +0200)
manifoldapi/static/js/manifold.js
plugins/apply/static/js/apply.js

index e90622c..e261efe 100644 (file)
@@ -1732,7 +1732,9 @@ case TYPE_LIST_OF_VALUES:
                                 /* Process update query in parent */
                                 path =  this._get_query_path(query_ext);
                                 arr = update_query.params[path];
-                                arr = $.grep(arr, function(x) { return x != data.value; });
+                                
+                                var key = manifold.metadata.get_key(query.object);
+                                arr = $.grep(arr, function(x) { return (!(manifold._record_equals(x, data.value, key))); });
                                 if (update_query.params[path] === undefined)
                                     update_query.params[path] = Array();
                                 update_query.params[path] = arr;
index a664ce5..efc9345 100644 (file)
 
         },
 
-        find_row: function(key)
+        find_row: function(value)
         {
+            var KEY_POS, VALUE_POS, data, object_type, object_key;
+
+            TYPE_POS = 1;
             // key in third position, column id = 2
-            var KEY_POS = 2;
+            VALUE_POS = 2;
 
             var cols = $.grep(this.table.fnSettings().aoData, function(col) {
-                return (col._aData[KEY_POS] == key);
+                cur_value = col._aData[VALUE_POS];
+                object_type = col._aData[TYPE_POS];
+                object_key = manifold.metadata.get_key(object_type);
+
+                if (cur_value[0] == '{') {
+                    cur_value = JSON.parse(cur_value);
+                    return manifold._record_equals(cur_value, value, object_key);_
+                } else {
+                    return (cur_value == value);
+                }
             } );
 
             if (cols.length == 0)