diff --git a/services/web/app/coffee/Features/DocumentUpdater/DocumentUpdaterHandler.coffee b/services/web/app/coffee/Features/DocumentUpdater/DocumentUpdaterHandler.coffee index 77cbe379b9..3f5972bdc7 100644 --- a/services/web/app/coffee/Features/DocumentUpdater/DocumentUpdaterHandler.coffee +++ b/services/web/app/coffee/Features/DocumentUpdater/DocumentUpdaterHandler.coffee @@ -233,22 +233,23 @@ module.exports = DocumentUpdaterHandler = _getRenameUpdates: (entityType, oldEntities, newEntities) -> updates = [] - for oldEntity in oldEntities - id = oldEntity[entityType]._id - newEntity = _.find newEntities, (newEntity) -> - newEntity[entityType]._id.toString() == id.toString() + oldEntitiesHash = _.indexBy oldEntities, (entity) -> entity[entityType]._id.toString() + newEntitiesHash = _.indexBy newEntities, (entity) -> entity[entityType]._id.toString() + for id, oldEntity of oldEntitiesHash + newEntity = newEntitiesHash[id] + + # renamed entities if newEntity.path != oldEntity.path updates.push id: id pathname: oldEntity.path newPathname: newEntity.path - for newEntity in newEntities - id = newEntity[entityType]._id - oldEntity = _.find oldEntities, (oldEntity) -> - oldEntity[entityType]._id.toString() == id.toString() + for id, newEntity of newEntitiesHash + oldEntity = oldEntitiesHash[id] + # removed entities if !oldEntity? updates.push id: id diff --git a/services/web/test/unit/coffee/DocumentUpdater/DocumentUpdaterHandlerTests.coffee b/services/web/test/unit/coffee/DocumentUpdater/DocumentUpdaterHandlerTests.coffee index d0b9106ede..9f1e292b2c 100644 --- a/services/web/test/unit/coffee/DocumentUpdater/DocumentUpdaterHandlerTests.coffee +++ b/services/web/test/unit/coffee/DocumentUpdater/DocumentUpdaterHandlerTests.coffee @@ -427,7 +427,7 @@ describe 'DocumentUpdaterHandler', -> @newFiles = [] docUpdates = [ - id: @docIdB, + id: @docIdB.toString(), pathname: "/old_b" newPathname: "/new_b" ] @@ -449,7 +449,7 @@ describe 'DocumentUpdaterHandler', -> @newFiles = [] docUpdates = [ - id: @docId, + id: @docId.toString(), pathname: "/foo" docLines: 'a\nb' url: undefined @@ -472,7 +472,7 @@ describe 'DocumentUpdaterHandler', -> ] fileUpdates = [ - id: @fileId, + id: @fileId.toString(), pathname: "/bar" url: 'filestore.example.com/file' docLines: undefined