Changeset 7256
- Timestamp:
- 05/22/08 13:57:58 (6 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
sandbox/vector-behavior/lib/OpenLayers/Protocol/WFS/v1_0_0.js
r7218 r7256 96 96 97 97 /** 98 * Property: readRequestName 99 * {String} The tag name for read requests. 100 */ 101 readRequestName: "wfs:GetFeature", 102 103 /** 98 104 * Constructor: OpenLayers.Protocol.WFS 99 105 * A class for giving layers WFS protocol. … … 153 159 OpenLayers.Util.applyDefaults(params, this.params); 154 160 155 var root = this.createEnvelope( "wfs:GetFeature", params);161 var root = this.createEnvelope(this.readRequestName, params); 156 162 157 163 var query = this.format.createElementNSPlus("wfs:Query", { … … 298 304 var data = this.format.write(root); 299 305 300 var callback;301 306 if(options){ 302 307 callback = options.callback || function(){}; 303 308 } 309 310 var wfstCallback = function(request){ 311 //Insert results 312 var inserts = []; 313 var insertResult = request.responseXML.getElementsByTagName("InsertResult")[0]; 314 var featureIdNodes = insertResult.getElementsByTagName("FeatureId"); 315 316 for (var index = 0; index < featureIdNodes.length; index++) { 317 318 featureId = featureIdNodes[index]; 319 320 if (featureId) { 321 var fid = this.format.getAttributeNS(featureId, "", "fid"); 322 inserts.push(fid); 323 } 324 } 325 326 //Transaction result 327 var transactionResult = request.responseXML.getElementsByTagName("TransactionResult")[0]; 328 var status = transactionResult.getElementsByTagName("Status")[0]; 329 330 if(status.getElementsByTagName("SUCCESS").length > 0){ 331 callback({inserts : inserts, success : true}); 332 } else { 333 callback({success : false, request : request}); 334 } 335 336 } 337 304 338 305 339 return OpenLayers.Request.POST({ 306 340 url: this.url, 307 341 data: data, 308 callback: callback 342 callback: wfstCallback, 343 scope : this 309 344 }); 310 345 }, sandbox/vector-behavior/lib/OpenLayers/Strategy/Save.js
r7245 r7256 88 88 var strategy = this; 89 89 90 var saveCallback = function( request){90 var saveCallback = function(object){ 91 91 var state; 92 92 93 //Updates and deletes Deletes 94 for(var i = 0; i < features.length; i++){ 95 state = features[i].state; 96 97 if(state == OpenLayers.State.UPDATE){ 98 features[i].state = null; 93 if (object.success) { 94 //Updates and deletes Deletes 95 for (var i = 0; i < features.length; i++) { 96 state = features[i].state; 97 98 if (state == OpenLayers.State.UPDATE) { 99 features[i].state = null; 100 } 101 102 if (state == OpenLayers.State.DELETE) { 103 strategy.layer.destroyFeatures([features[i]]); 104 } 99 105 } 100 106 101 if(state == OpenLayers.State.DELETE){ 102 strategy.layer.destroyFeatures([features[i]]); 103 } 104 } 105 106 //Inserts 107 var xml = new OpenLayers.Format.XML(); 108 109 var inserts = []; 110 var insertResult = request.responseXML.getElementsByTagName("InsertResult")[0]; 111 var featureIdNodes = insertResult.getElementsByTagName("FeatureId"); 112 113 for (var index = 0; index < featureIdNodes.length; index++) { 107 var inserts = object.inserts; 114 108 115 featureId = featureIdNodes[index]; 116 117 if (featureId) { 118 var fid = xml.getAttributeNS(featureId, "", "fid"); 119 inserts.push(fid); 109 if (inserts[0] != "none") { 110 var j = 0; 111 112 for (var i = 0; i < features.length; i++) { 113 if (features[i].state == OpenLayers.State.INSERT) { 114 features[i].state = null; 115 features[i].fid = inserts[j]; 116 j++; 117 } 118 } 120 119 } 121 }122 123 if(inserts[0] != "none"){124 var fidFilter = new OpenLayers.Filter.FeatureId({fids: inserts});125 126 params = {127 filter: fidFilter,128 srsName: strategy.layer.projection.getCode()129 };130 131 strategy.layer.protocol.read({132 params: params,133 callback: function(resp) {134 strategy.remove();135 strategy.merge(resp.features);136 },137 scope: this138 });139 120 } 140 121 };
