[Commits] r2563 - in core/trunk/geoext: lib/GeoExt/data tests/lib/GeoExt/data

commits at geoext.org commits at geoext.org
Fri Jan 14 17:09:31 CET 2011


Author: tschaub
Date: 2011-01-14 17:09:31 +0100 (Fri, 14 Jan 2011)
New Revision: 2563

Modified:
   core/trunk/geoext/lib/GeoExt/data/FeatureStore.js
   core/trunk/geoext/tests/lib/GeoExt/data/FeatureStore.html
Log:
Setting the feature state to update when a record is modified.  r=ahocevar (closes #397)

Modified: core/trunk/geoext/lib/GeoExt/data/FeatureStore.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/data/FeatureStore.js	2011-01-13 21:06:11 UTC (rev 2562)
+++ core/trunk/geoext/lib/GeoExt/data/FeatureStore.js	2011-01-14 16:09:31 UTC (rev 2563)
@@ -379,6 +379,9 @@
                   */
                 var defaultFields = new GeoExt.data.FeatureRecord().fields;
                 var feature = record.getFeature();
+                if (feature.state !== OpenLayers.State.INSERT) {
+                    feature.state = OpenLayers.State.UPDATE;
+                }
                 if(record.fields) {
                     var cont = this.layer.events.triggerEvent(
                         "beforefeaturemodified", {feature: feature}

Modified: core/trunk/geoext/tests/lib/GeoExt/data/FeatureStore.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/data/FeatureStore.html	2011-01-13 21:06:11 UTC (rev 2562)
+++ core/trunk/geoext/tests/lib/GeoExt/data/FeatureStore.html	2011-01-14 16:09:31 UTC (rev 2563)
@@ -206,7 +206,7 @@
         }
 
         function test_featuremodified_update(t) {
-            t.plan(10);
+            t.plan(14);
 
             /*
              * Set up
@@ -296,6 +296,19 @@
             
             t.eq(record.get("foo"), false, "false correctly set");
             t.eq(record.get("bar"), 0, "0 correctly set");
+            
+            
+            // confirm that updates work from the record
+            delete feature.state;
+            record.set("foo", "set from record");
+            t.eq(feature.attributes.foo, "set from record");
+            t.eq(feature.state, OpenLayers.State.UPDATE, "state properly set");
+            
+            // confirm that newly inserted features don't get update state
+            feature.state = OpenLayers.State.INSERT;
+            record.set("foo", "still insert");
+            t.eq(feature.attributes.foo, "still insert", "attribute set");
+            t.eq(feature.state, OpenLayers.State.INSERT, "insert state remains");
 
         }
     </script> 



More information about the Commits mailing list