diff --git a/edit/OfflineStore.js b/edit/OfflineStore.js index fadca1c..499528e 100755 --- a/edit/OfflineStore.js +++ b/edit/OfflineStore.js @@ -74,6 +74,7 @@ var OfflineStore = function(/* Map */ map) { EDIT_EVENT: "editEvent", EDIT_EVENT_SUCCESS: true, EDIT_EVENT_FAILED: false, + OFFLINE_EDIT_ATTEMPT: "OfflineEditAttempt", //exactly what is says! ONLINE_STATUS_EVENT: "OnlineStatusEvent", REQUIRED_LIBS : [ "Hydrate.js", @@ -245,6 +246,7 @@ var OfflineStore = function(/* Map */ map) { } if(internet === false){ + this._sendEvent(true,this._localEnum().OFFLINE_EDIT_ATTEMPT); this._addToLocalStore(graphic,layer,enumValue,callback); this._startOfflineListener(); } @@ -372,7 +374,7 @@ console.log(localStore.toString()); this._startOfflineListener = function(){ function onlineStatusHandler(evt){ - if(evt.detail.message == true){ + if(evt.detail.message == "true"){ console.log("internet reestablished"); try{var arr = this._getLocalStorage()}catch(err){console.log("err " + err.toString())}; if(arr != null){ @@ -391,6 +393,9 @@ console.log(localStore.toString()); } console.log("starting offline listener."); + + document.removeEventListener("OnlineStatusEvent",onlineStatusHandler,false); + document.addEventListener("OnlineStatusEvent", onlineStatusHandler.bind(this), false); @@ -686,11 +691,13 @@ console.log(localStore.toString()); Offline.check(); Offline.on('up down', function(){ if(Offline.state === 'up'){ + console.log("internet is up."); this._sendEvent("true",this._localEnum().ONLINE_STATUS_EVENT); } else{ //There is a bug in firefox that prevents boolean false from propagating //that is why true and false are strings + console.log("internet is down."); this._sendEvent("false",this._localEnum().ONLINE_STATUS_EVENT); } }.bind(this)); diff --git a/samples/edit-basic.html b/samples/edit-basic.html index b84959d..95aa2c9 100644 --- a/samples/edit-basic.html +++ b/samples/edit-basic.html @@ -97,13 +97,17 @@ Sample demonstrates basic offline editing functionality for points, lines and po
Internet Connectivity
Storage used: 0 MBs
-
+
+
+
+ +
@@ -205,8 +209,8 @@ require([ ////////// offlineStore = new OfflineStore(map); - console.log("Storage used : " + offlineStore.getlocalStorageUsed()); - headerDiv.innerHTML = "Storage Used: " + offlineStore.getlocalStorageUsed() + " MBs"; + console.log(getStorageInfo()); + headerDiv.innerHTML = getStorageInfo(); try{ document.addEventListener("editEvent",function(evt){ if(evt.type == "editEvent" && evt.detail.message == true){ @@ -216,14 +220,18 @@ require([ alert("Not all edits were successfully pushed to the server"); } - headerDiv.innerHTML = "Storage Used: " + offlineStore.getlocalStorageUsed() + " MBs"; - }, - false); + headerDiv.innerHTML = getStorageInfo(); + }, + false); document.addEventListener("windowErrorEvent",function(evt){ alert("Error: " + evt.detail.message); - }, - false); + }, + false); + + document.addEventListener("OfflineEditAttempt",function(evt){ + headerDiv.innerHTML = getStorageInfo(); + },false) } catch(err){ @@ -237,13 +245,13 @@ require([ editToolbar.on("deactivate", function(evt) { if(updateFlag == true){ offlineStore.applyEdits(vertices.graphic,vertices.layer,offlineStore.enum().UPDATE,function(count,success,id){ - headerDiv.innerHTML = "Storage Used: " + offlineStore.getlocalStorageUsed() + " MBs"; + headerDiv.innerHTML = getStorageInfo(); }); updateFlag = false; } else{ offlineStore.applyEdits(evt.graphic,currentLayer,offlineStore.enum().UPDATE,function(count,success,id){ - headerDiv.innerHTML = "Storage Used: " + offlineStore.getlocalStorageUsed() + " MBs"; + headerDiv.innerHTML = getStorageInfo(); }); } }); @@ -276,7 +284,7 @@ require([ if (evt.ctrlKey === true || evt.metaKey === true) { //delete feature if ctrl key is depressed try{ offlineStore.applyEdits(evt.graphic,layer,offlineStore.enum().DELETE,function(count,success,id){ - headerDiv.innerHTML = "Storage Used: " + offlineStore.getlocalStorageUsed() + " MBs"; + headerDiv.innerHTML = getStorageInfo(); }); } catch(err){ @@ -331,10 +339,17 @@ require([ headerDiv.innerHTML = "Storage Used: " + offlineStore.getlocalStorageUsed() + " MBs"; }); }); + + function getStorageInfo(){ + return "Storage Used: " + offlineStore.getlocalStorageUsed() + " MBs"; + } } }); +function getLocalStorage(){ + console.log("LocalStorage: " + offlineStore._getLocalStorage()); +} function getGraphicsLayers(){ var layer1 = offlineStore._getGraphicsLayerById(6);