From edda24360aa7b9910a4ae2b1c52474df795cc644 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 3 Mar 2015 20:51:33 -0500 Subject: [PATCH] Fix undeletion version, don't undelete twice --- js/id/actions/merge_remote_changes.js | 4 ++-- js/id/modes/save.js | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/js/id/actions/merge_remote_changes.js b/js/id/actions/merge_remote_changes.js index 14d1ef481..21f5f22cd 100644 --- a/js/id/actions/merge_remote_changes.js +++ b/js/id/actions/merge_remote_changes.js @@ -95,7 +95,7 @@ iD.actions.MergeRemoteChanges = function(id, localGraph, remoteGraph, formatUser } else if (localNode && option === 'force_local') { targetNode = iD.Entity(localNode, - { version: (remoteNode ? remoteNode.version : localNode.version + 1) }); + { version: (remoteNode ? remoteNode.version : +localNode.version + 1) }); updates.replacements.push(targetNode); } else if (localNode && remoteNode && option === 'safe') { @@ -200,7 +200,7 @@ iD.actions.MergeRemoteChanges = function(id, localGraph, remoteGraph, formatUser return iD.actions.DeleteMultiple([id])(graph); } else if (option === 'force_local') { - target = iD.Entity(local, { version: local.version + 1 }); + target = iD.Entity(local, { version: +local.version + 1 }); if (target.type === 'way') { target = mergeChildren(target, _.uniq(local.nodes), updates, graph); graph = updateChildren(updates, graph); diff --git a/js/id/modes/save.js b/js/id/modes/save.js index 643d32e71..f1ec772a5 100644 --- a/js/id/modes/save.js +++ b/js/id/modes/save.js @@ -35,8 +35,10 @@ iD.modes.Save = function(context) { if (err) { if (err.status === 410) { // Status: Gone (contains no responseText) - remoteGraph.remove(remoteGraph.hasEntity(id)); - addDeleteConflict(id); + if (!tryAgain) { + remoteGraph.remove(remoteGraph.hasEntity(id)); + addDeleteConflict(id); + } } else { errors.push({ id: id,