Fix bug which breaks updates

This commit is contained in:
Pieter Vander Vennet 2021-07-08 10:24:43 +02:00
parent 56efafcabf
commit 68d66ffe62

View file

@ -136,7 +136,15 @@ export class Changes implements FeatureSource{
} }
private uploadChangesWithLatestVersions( private uploadChangesWithLatestVersions(
knownElements, newElements: OsmObject[], pending: { elementId: string; key: string; value: string }[]) { knownElements: OsmObject[], newElements: OsmObject[], pending: { elementId: string; key: string; value: string }[]) {
const knownById = new Map<string, OsmObject>();
knownElements.forEach(knownElement => {
console.log("Setting ",knownElement.type + knownElement.id, knownElement)
knownById.set(knownElement.type + "/" + knownElement.id, knownElement)
})
// Here, inside the continuation, we know that all 'neededIds' are loaded in 'knownElements', which maps the ids onto the elements // Here, inside the continuation, we know that all 'neededIds' are loaded in 'knownElements', which maps the ids onto the elements
// We apply the changes on them // We apply the changes on them
for (const change of pending) { for (const change of pending) {
@ -147,9 +155,10 @@ export class Changes implements FeatureSource{
newElement.addTag(change.key, change.value); newElement.addTag(change.key, change.value);
} }
} }
} else { } else {
knownElements[change.elementId].addTag(change.key, change.value); console.log(knownById, change.elementId)
knownById.get(change.elementId).addTag(change.key, change.value);
} }
} }
@ -230,6 +239,7 @@ export class Changes implements FeatureSource{
neededIds = Utils.Dedup(neededIds); neededIds = Utils.Dedup(neededIds);
OsmObject.DownloadAll(neededIds).addCallbackAndRunD(knownElements => { OsmObject.DownloadAll(neededIds).addCallbackAndRunD(knownElements => {
console.log("KnownElements:", knownElements)
self.uploadChangesWithLatestVersions(knownElements, newElements, pending) self.uploadChangesWithLatestVersions(knownElements, newElements, pending)
}) })
} }