From dd896d167fa6680801908abf76a7cfa99f44e015 Mon Sep 17 00:00:00 2001 From: andygup Date: Wed, 8 Jan 2014 10:48:25 -0700 Subject: [PATCH] fixes #36 --- lib/edit/OfflineStore.js | 50 +++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/lib/edit/OfflineStore.js b/lib/edit/OfflineStore.js index 68d8db7..d399e4e 100755 --- a/lib/edit/OfflineStore.js +++ b/lib/edit/OfflineStore.js @@ -251,6 +251,16 @@ var OfflineStore = function(/* Map */ map) { } } + /** + * Directly implements the applyEdits() method for ADDS, UPDATES and DELETES + * @param graphic + * @param layer + * @param value + * @param localEnum + * @param count + * @param mCallback + * @private + */ this._layerEditManager = function( /* Graphic */ graphic, /* FeatureLayer */ layer, @@ -263,17 +273,13 @@ var OfflineStore = function(/* Map */ map) { case localEnum.DELETE: layer.applyEdits(null,null,[graphic],function(addResult,updateResult,deleteResult){ console.log("deleteResult ObjectId: " + deleteResult[0].objectId + ", Success: " + deleteResult[0].success); - if(mCallback != null && count != null) { + if(mCallback != null && count != null) { console.log("id " + deleteResult[0].objectId) mCallback(count,deleteResult[0].success,deleteResult[0].objectId,null); } - else{ - this._setItemLocalStoreIndex(layer.layerId, deleteResult[0].objectId,value,true); - } - }.bind(this), function(error){ console.log("_layer: " + error.stack); mCallback(count,false,null,error); - this._setItemLocalStoreIndex(layer.layerId, deleteResult[0].objectId,value,false); + mCallback(count,deleteResult[0].success,deleteResult[0].objectId,false); }.bind(this) ); break; @@ -283,13 +289,10 @@ var OfflineStore = function(/* Map */ map) { if(mCallback != null && count != null) { mCallback(count,addResult[0].success,addResult[0].objectId,null); } - else{ - this._setItemLocalStoreIndex(layer.layerId, addResult[0].objectId,value,true); - } }.bind(this), function(error){ console.log("_layer: " + error.stack); mCallback(count,false,null,error); - this._setItemLocalStoreIndex(layer.layerId, addResult[0].objectId,value,false); + mCallback(count,deleteResult[0].success,deleteResult[0].objectId,false); }.bind(this) ); break; @@ -299,13 +302,10 @@ var OfflineStore = function(/* Map */ map) { if(mCallback != null && count != null) { mCallback(count,deleteResult[0].success,updateResult[0].objectId,null); } - else{ - this._setItemLocalStoreIndex(layer.layerId, updateResult[0].objectId,value,true); - } }.bind(this), function(error){ console.log("_layer: " + error.stack); mCallback(count,false,null,error) - this._setItemLocalStoreIndex(layer.layerId, updateResult[0].objectId,value,false); + mCallback(count,deleteResult[0].success,deleteResult[0].objectId,false); }.bind(this) ); break; @@ -451,32 +451,30 @@ console.log(localStore.toString()); this._layerEditManager(obj1.graphic,layer,obj1.enumValue,this.enum(),i,function(/* Number */ num, /* boolean */ success, /* String */ id,error){ check.push(num); - var objectId = obj1.graphic.attributes.objectid; - if(success == true && check.length == graphicsArr.length){ if(errCnt == 0){ - this._setItemLocalStoreIndex(obj1.layer,objectId,obj1.enumValue,true); - callback(true,true,obj1.enumValue,obj1.layer,objectId); + this._setItemLocalStoreIndex(obj1.layer,id,obj1.enumValue,true); + callback(true,true,obj1.enumValue,obj1.layer,id); } - else{ + else{ //this could cause a bug since it doesn't set item in local store. Not verified! console.log("_reestablishedInternet: there were errors. LocalStore still available."); - callback(false,true,obj1.enumValue,obj1.layer,objectId); + callback(false,true,obj1.enumValue,obj1.layer,id); } } //Don't return anything yet else if(success == true && check.length < graphicsArr.length){ - this._setItemLocalStoreIndex(obj1.layer,objectId,obj1.enumValue,true); + this._setItemLocalStoreIndex(obj1.layer,id,obj1.enumValue,true); } else if(success == false && check.length == graphicsArr.length){ - this._setItemLocalStoreIndex(obj1.layer,objectId,obj1.enumValue,false); - console.log("_reestablishedInternet: error sending edit on " + objectId); - callback(false,true,obj1.enumValue,obj1.layer,objectId,error); + this._setItemLocalStoreIndex(obj1.layer,id,obj1.enumValue,false); + console.log("_reestablishedInternet: error sending edit on " + id); + callback(false,true,obj1.enumValue,obj1.layer,id,error); } //Don't return anything yet else if(success == false && check.length < graphicsArr.length){ - this._setItemLocalStoreIndex(obj1.layer,objectId,obj1.enumValue,false,error); + this._setItemLocalStoreIndex(obj1.layer,id,obj1.enumValue,false,error); errCnt++; - console.log("_reestablishedInternet: error sending edit on " + objectId); + console.log("_reestablishedInternet: error sending edit on " + id); } }.bind(this)); }