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:
parent
ddbf04c267
commit
d229269a69
7 changed files with 45 additions and 25 deletions
services/web
|
@ -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)->
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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) =>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue