still some issues pending

This commit is contained in:
Javier Abadia 2014-01-28 16:07:15 +01:00
parent 0bbf9ca83a
commit 6ca3dd28ee
2 changed files with 28 additions and 10 deletions

View File

@ -7,7 +7,9 @@
- try and fill localStorage to see what happens... OK, localStorage.setItem() throws error
- prevent attributeEditor to appear after replaying the stored edits, OK
- be careful with updates for features added offline (replace tmp id by final id), ONGOING
- updates/deletes of features added offline (not yet in the server) are not updated correctly in the local layer
- rename offlineFeatureService to offlineFeaturesManager
- goOnline()/goOffline() automatically
- unit tests
- feedback graphics layer

View File

@ -53,14 +53,16 @@ define([
addResults.push({success:success, objectId: objectId});
if(success)
layer.add(addEdit);
});
},this);
updates = updates || [];
updates.forEach(function(updateEdit)
{
var success = editsStore.pushEdit(editsStore.UPDATE, layer.url, updateEdit);
updateResults.push({success:success, objectId: updateEdit.attributes[ layer.objectIdField ]});
});
if(success)
layer.add(updateEdit);
},this);
deletes = deletes || [];
deletes.forEach(function(deleteEdit)
@ -69,7 +71,7 @@ define([
deleteResults.push({success:success, objectId: deleteEdit.attributes[ layer.objectIdField ]});
if( success )
layer.remove(deleteEdit);
});
},this);
deferred.resolve([addResults,updateResults,deleteResults])
@ -153,15 +155,24 @@ define([
layer._applyEdits(adds,updates,deletes,
function(addResults,updateResults,deleteResults) // success
{
// restore event handlers
layer["onEditsComplete"] = onEditsComplete;
layer["onBeforeApplyEdits"] = onBeforeApplyEdits;
editsStore.popFirstEdit();
if( addResults )
try
{
editsStore.replaceTempId(tempId, addResults[0].objectId, layer.objectIdField);
// restore event handlers
layer["onEditsComplete"] = onEditsComplete;
layer["onBeforeApplyEdits"] = onBeforeApplyEdits;
editsStore.popFirstEdit();
if( addResults && addResults.length > 0 )
{
console.log(arguments);
editsStore.replaceTempId(tempId, addResults[0].objectId, layer.objectIdField);
console.log("replaced!");
}
self.emit('edits-sent',arguments);
}
catch(err)
{
console.log(err);
}
self.emit('edits-sent',arguments);
self.replayStoredEdits();
},
function(err)
@ -173,6 +184,11 @@ define([
}
);
}
else
{
console.log("'finished!");
this.emit('all-edits-sent',{});
}
}, // replayStoredEdits()
}); // declare