diff --git a/services/web/app/coffee/Features/Project/ProjectCreationHandler.coffee b/services/web/app/coffee/Features/Project/ProjectCreationHandler.coffee index ceddc2ad61..451f90865a 100644 --- a/services/web/app/coffee/Features/Project/ProjectCreationHandler.coffee +++ b/services/web/app/coffee/Features/Project/ProjectCreationHandler.coffee @@ -37,6 +37,8 @@ module.exports = ProjectCreationHandler = owner_ref : new ObjectId(owner_id) name : projectName project.overleaf.history.id = projectHistoryId + if Settings.apis?.project_history?.displayHistoryForNewProjects + project.overleaf.history.display = true if Settings.currentImageName? project.imageName = Settings.currentImageName project.rootFolder[0] = rootFolder diff --git a/services/web/config/settings.defaults.coffee b/services/web/config/settings.defaults.coffee index 844bffae3c..74b2904e5e 100644 --- a/services/web/config/settings.defaults.coffee +++ b/services/web/config/settings.defaults.coffee @@ -113,6 +113,7 @@ module.exports = settings = project_history: sendProjectStructureOps: process.env.PROJECT_HISTORY_ENABLED == 'true' or false initializeHistoryForNewProjects: process.env.PROJECT_HISTORY_ENABLED == 'true' or false + displayHistoryForNewProjects: process.env.PROJECT_HISTORY_ENABLED == 'true' or false url : "http://localhost:3054" docstore: url : "http://#{process.env['DOCSTORE_HOST'] or 'localhost'}:3016" diff --git a/services/web/test/unit/coffee/Project/ProjectCreationHandlerTests.coffee b/services/web/test/unit/coffee/Project/ProjectCreationHandlerTests.coffee index 378e909984..8fef737ed8 100644 --- a/services/web/test/unit/coffee/Project/ProjectCreationHandlerTests.coffee +++ b/services/web/test/unit/coffee/Project/ProjectCreationHandlerTests.coffee @@ -49,6 +49,9 @@ describe 'ProjectCreationHandler', -> @User = findById:sinon.stub().callsArgWith(2, null, @user) @callback = sinon.stub() + + @Settings = apis: { project_history: {} } + @handler = SandboxedModule.require modulePath, requires: '../../models/User': User:@User '../../models/Project':{Project:@ProjectModel} @@ -56,7 +59,7 @@ describe 'ProjectCreationHandler', -> '../History/HistoryManager': @HistoryManager './ProjectEntityHandler':@ProjectEntityHandler "./ProjectDetailsHandler":@ProjectDetailsHandler - "settings-sharelatex": @Settings = {} + "settings-sharelatex": @Settings 'logger-sharelatex': {log:->} "metrics-sharelatex": { inc: ()->, @@ -113,6 +116,18 @@ describe 'ProjectCreationHandler', -> expect(project.imageName).to.not.exist done() + it "should not set the overleaf.history.display if not configured in settings", (done) -> + @Settings.apis.project_history.displayHistoryForNewProjects = false + @handler.createBlankProject ownerId, projectName, (err, project)=> + expect(project.overleaf.history.display).to.not.exist + done() + + it "should set the overleaf.history.display if configured in settings", (done) -> + @Settings.apis.project_history.displayHistoryForNewProjects = true + @handler.createBlankProject ownerId, projectName, (err, project)=> + expect(project.overleaf.history.display).to.equal true + done() + describe "with an error", -> beforeEach -> @ProjectModel::save = sinon.stub().callsArgWith(0, new Error("something went wrong"))