Просмотр исходного кода

moved rename entity to proj entity handler

Henry Oswald 12 лет назад
Родитель
Сommit
5378890e57

+ 1 - 1
services/web/app/coffee/Features/Editor/EditorController.coffee

@@ -246,7 +246,7 @@ module.exports = EditorController =
 		newName = sanitize.escape(newName)
 		Metrics.inc "editor.rename-entity"
 		logger.log entity_id:entity_id, entity_id:entity_id, entity_id:entity_id, "reciving new name for entity for project"
-		ProjectHandler.renameEntity project_id, entity_id, entityType, newName, =>
+		ProjectEntityHandler.renameEntity project_id, entity_id, entityType, newName, =>
 			if newName.length > 0
 				EditorRealTimeController.emitToRoom project_id, 'reciveEntityRename', entity_id, newName
 				callback?()

+ 21 - 0
services/web/app/coffee/Features/Project/ProjectEntityHandler.coffee

@@ -283,6 +283,27 @@ module.exports = ProjectEntityHandler =
 							return callback(error) if error?
 							callback null
 
+
+	renameEntity: (project_id, entity_id, entityType, newName, callback)->
+		logger.log(entity_id: entity_id, project_id: project_id, ('renaming '+entityType))
+		if !entityType?
+			logger.err err: "No entityType set", project_id: project_id, entity_id: entity_id
+			return callback("No entityType set")
+		entityType = entityType.toLowerCase()
+		Project.findById project_id, (err, project)=>
+			projectLocator.findElement {project:project, element_id:entity_id, type:entityType}, (err, entity, path, folder)=>
+				if err?
+					return callback err
+				conditons = {_id:project_id}
+				update = "$set":{}
+				namePath = path.mongo+".name"
+				update["$set"][namePath] = newName
+				endPath = path.fileSystem.replace(entity.name, newName)
+				tpdsUpdateSender.moveEntity({project_id:project_id, startPath:path.fileSystem, endPath:endPath, project_name:project.name, rev:entity.rev})
+				Project.update conditons, update, {}, (err)->
+					if callback?
+						callback err
+
 	_cleanUpEntity: (project, entity, entityType, sl_req_id, callback = (error) ->) ->
 		{callback, sl_req_id} = slReqIdHelper.getCallbackAndReqId(callback, sl_req_id)
 

+ 1 - 19
services/web/app/coffee/handlers/ProjectHandler.coffee

@@ -19,25 +19,7 @@ tagsHandler = require('../Features/Tags/TagsHandler')
 
 module.exports = class ProjectHandler
 
-	renameEntity: (project_id, entity_id, entityType, newName, callback)->
-		logger.log(entity_id: entity_id, project_id: project_id, ('renaming '+entityType))
-		if !entityType?
-			logger.err err: "No entityType set", project_id: project_id, entity_id: entity_id
-			return callback("No entityType set")
-		entityType = entityType.toLowerCase()
-		Project.findById project_id, (err, project)=>
-			projectLocator.findElement {project:project, element_id:entity_id, type:entityType}, (err, entity, path, folder)=>
-				if err?
-					return callback err
-				conditons = {_id:project_id}
-				update = "$set":{}
-				namePath = path.mongo+".name"
-				update["$set"][namePath] = newName
-				endPath = path.fileSystem.replace(entity.name, newName)
-				tpdsUpdateSender.moveEntity({project_id:project_id, startPath:path.fileSystem, endPath:endPath, project_name:project.name, rev:entity.rev})
-				Project.update conditons, update, {}, (err)->
-					if callback?
-						callback err
+
 
 	renameProject: (project_id, window_id, newName, callback)->
 		logger.log project_id: project_id, "renaming project"

+ 2 - 2
services/web/test/UnitTests/coffee/Editor/EditorControllerTests.coffee

@@ -629,12 +629,12 @@ describe "EditorController", ->
 			@entity_id = "entity_id_here"
 			@entityType = "doc"
 			@newName = "bobsfile.tex"
-			@ProjectHandler::renameEntity = sinon.stub().callsArgWith(4, @err)
+			@ProjectEntityHandler.renameEntity = sinon.stub().callsArgWith(4, @err)
 			@EditorRealTimeController.emitToRoom = sinon.stub()
 
 		it "should call the project handler", (done)->
 			@EditorController.renameEntity @project_id, @entity_id, @entityType, @newName, =>
-				@ProjectHandler::renameEntity.calledWith(@project_id, @entity_id, @entityType, @newName).should.equal true
+				@ProjectEntityHandler.renameEntity.calledWith(@project_id, @entity_id, @entityType, @newName).should.equal true
 				done()
 
 

+ 21 - 0
services/web/test/UnitTests/coffee/Project/ProjectEntityHandlerTests.coffee

@@ -682,3 +682,24 @@ describe 'project entity handler', ->
 
 			@ProjectEntityHandler.copyFileFromExistingProject project_id, folder_id, oldProject_id, oldFileRef, (err, fileRef, parentFolder)->     
 
+
+	describe "renameEntity", ->
+		beforeEach ->
+			@entity_id = "4eecaffcbffa66588e000009"
+			@entityType = "doc"
+			@newName = "new.tex"
+			@path = mongo: "mongo.path", fileSystem: "/file/system/old.tex"
+			@projectLocator.findElement = sinon.stub().callsArgWith(1, null, @entity = { _id: @entity_id, name:"old.tex", rev:4 }, @path)
+			@ProjectModel.update = sinon.stub().callsArgWith(3)
+			@tpdsUpdateSender.moveEntity = sinon.stub()
+
+		it "should update the name in mongo", (done)->
+
+			@ProjectEntityHandler.renameEntity @project_id, @entity_id, @entityType, @newName, =>
+				@ProjectModel.update.calledWith({_id : @project_id}, {"$set":{"mongo.path.name":@newName}}).should.equal true
+				done()
+
+		it "should send the update to the tpds", (done)->
+			@ProjectEntityHandler.renameEntity @project_id, @entity_id, @entityType, @newName, =>
+				@tpdsUpdateSender.moveEntity.calledWith({project_id:@project_id, startPath:@path.fileSystem, endPath:"/file/system/new.tex", project_name:@project.name, rev:4}).should.equal true
+				done()