1
0
Fork 0
mirror of https://github.com/overleaf/overleaf.git synced 2025-04-14 15:33:29 +00:00

moved rename project to project details handler

This commit is contained in:
Henry Oswald 2014-04-07 15:37:40 +01:00
parent ddbf04c267
commit d229269a69
7 changed files with 45 additions and 25 deletions

View file

@ -259,11 +259,11 @@ module.exports = EditorController =
EditorRealTimeController.emitToRoom project_id, 'reciveEntityMove', entity_id, folder_id
callback?()
renameProject: (project_id, window_id, newName, callback)->
renameProject: (project_id, newName, callback)->
newName = sanitize.escape(newName)
ProjectHandler.renameProject project_id, window_id, newName, =>
ProjectDetailsHandler.renameProject project_id, newName, =>
newName = sanitize.escape(newName)
EditorRealTimeController.emitToRoom project_id, 'projectNameUpdated', window_id, newName
EditorRealTimeController.emitToRoom project_id, 'projectNameUpdated', newName
callback?()
setPublicAccessLevel : (project_id, newAccessLevel, callback)->

View file

@ -2,6 +2,8 @@ ProjectGetter = require("./ProjectGetter")
UserGetter = require("../User/UserGetter")
Project = require('../../models/Project').Project
logger = require("logger-sharelatex")
tpdsUpdateSender = require '../ThirdPartyDataStore/TpdsUpdateSender'
module.exports =
@ -28,3 +30,15 @@ module.exports =
if err?
logger.err err:err, "something went wrong setting project description"
callback(err)
renameProject: (project_id, newName, callback = ->)->
logger.log project_id: project_id, newName:newName, "renaming project"
ProjectGetter.getProject project_id, {"name":1}, (err, project)->
if err? or !project?
logger.err err:err, project_id:project_id, "error getting project or could not find it todo project rename"
return callback(err)
oldProjectName = project.name
Project.update _id:project_id, {name: newName}, (err, project)=>
if err?
return callback(err)
tpdsUpdateSender.moveEntity {project_id:project_id, project_name:oldProjectName, newProjectName:newName}, callback

View file

@ -20,19 +20,6 @@ tagsHandler = require('../Features/Tags/TagsHandler')
module.exports = class ProjectHandler
renameProject: (project_id, window_id, newName, callback)->
logger.log project_id: project_id, "renaming project"
conditons = {_id:project_id}
Project.findOne conditons, "name", (err, project)->
oldProjectName = project.name
Project.update conditons, {name: newName}, {},(err, project)=>
tpdsUpdateSender.moveEntity {project_id:project_id, project_name:oldProjectName, newProjectName:newName}
if callback?
callback err
setPublicAccessLevel : (project_id, newAccessLevel, callback)->
logger.log project_id: project_id, level: newAccessLevel, "set public access level"
if project_id? && newAccessLevel?

View file

@ -294,9 +294,9 @@ module.exports = class Router
AuthorizationManager.ensureClientCanEditProject client, (error, project_id) =>
EditorController.moveEntity(project_id, entity_id, folder_id, entityType, callback)
client.on 'setProjectName', (window_id, newName, callback)->
client.on 'setProjectName', (newName, callback)->
AuthorizationManager.ensureClientCanEditProject client, (error, project_id) =>
EditorController.renameProject(project_id, window_id, newName, callback)
EditorController.renameProject(project_id, newName, callback)
client.on 'setRootDoc', (newRootDocID, callback)->
AuthorizationManager.ensureClientCanEditProject client, (error, project_id) =>

View file

@ -55,8 +55,8 @@ define [
remoteChange = false
@on "change:name", (project, name) =>
if !remoteChange
@get("ide").socket.emit "setProjectName", window.window_id, name
@get("ide").socket.on "projectNameUpdated", (senderWindowId, name) =>
@get("ide").socket.emit "setProjectName", name
@get("ide").socket.on "projectNameUpdated", (name) =>
remoteChange = true
@set("name", name)
remoteChange = false

View file

@ -670,18 +670,18 @@ describe "EditorController", ->
@err = "errro"
@window_id = "kdsjklj290jlk"
@newName = "new name here"
@ProjectHandler::renameProject = sinon.stub().callsArgWith(3, @err)
@ProjectDetailsHandler.renameProject = sinon.stub().callsArgWith(2, @err)
@EditorRealTimeController.emitToRoom = sinon.stub()
it "should call the ProjectHandler", (done)->
@EditorController.renameProject @project_id, @window_id, @newName, =>
@ProjectHandler::renameProject.calledWith(@project_id, @window_id, @newName).should.equal true
@EditorController.renameProject @project_id, @newName, =>
@ProjectDetailsHandler.renameProject.calledWith(@project_id, @newName).should.equal true
done()
it "should emit the update to the room", (done)->
@EditorController.renameProject @project_id, @window_id, @newName, =>
@EditorRealTimeController.emitToRoom.calledWith(@project_id, 'projectNameUpdated', @window_id, @newName).should.equal true
@EditorController.renameProject @project_id, @newName, =>
@EditorRealTimeController.emitToRoom.calledWith(@project_id, 'projectNameUpdated', @newName).should.equal true
done()

View file

@ -20,14 +20,18 @@ describe 'Project details handler', ->
features: "mock-features"
@ProjectGetter =
getProjectWithoutDocLines: sinon.stub().callsArgWith(1, null, @project)
getProject: sinon.stub().callsArgWith(2, null, @project)
@ProjectModel =
update: sinon.stub()
@UserGetter =
getUser: sinon.stub().callsArgWith(1, null, @user)
@tpdsUpdateSender =
moveEntity:sinon.stub().callsArgWith 1
@handler = SandboxedModule.require modulePath, requires:
"./ProjectGetter":@ProjectGetter
'../../models/Project': Project:@ProjectModel
"../User/UserGetter": @UserGetter
'../ThirdPartyDataStore/TpdsUpdateSender':@tpdsUpdateSender
'logger-sharelatex':
log:->
err:->
@ -61,4 +65,19 @@ describe 'Project details handler', ->
@ProjectModel.update.calledWith({_id:@project_id}, {description:@description}).should.equal true
done()
describe "renameProject", ->
beforeEach ->
@ProjectModel.update.callsArgWith(2)
@newName = "new name here"
it "should update the project with the new name", (done)->
newName = "new name here"
@handler.renameProject @project_id, @newName, =>
@ProjectModel.update.calledWith({_id: @project_id}, {name: @newName}).should.equal true
done()
it "should tell the tpdsUpdateSender", (done)->
@handler.renameProject @project_id, @newName, =>
@tpdsUpdateSender.moveEntity.calledWith({project_id:@project_id, project_name:@project.name, newProjectName:@newName}).should.equal true
done()