mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Initialise full project history for old projects (in background) when project opened (#4345)
Co-authored-by: Brian Gough <brian.gough@overleaf.com> GitOrigin-RevId: 2da493c6023b362ced197b0533fa684c654a3827
This commit is contained in:
parent
51546b29c4
commit
812b4b549f
2 changed files with 35 additions and 0 deletions
|
@ -9,6 +9,7 @@ const { ObjectId } = require('mongodb')
|
|||
const ProjectDeleter = require('./ProjectDeleter')
|
||||
const ProjectDuplicator = require('./ProjectDuplicator')
|
||||
const ProjectCreationHandler = require('./ProjectCreationHandler')
|
||||
const ProjectHistoryHandler = require('./ProjectHistoryHandler')
|
||||
const EditorController = require('../Editor/EditorController')
|
||||
const ProjectHelper = require('./ProjectHelper')
|
||||
const metrics = require('@overleaf/metrics')
|
||||
|
@ -680,6 +681,24 @@ const ProjectController = {
|
|||
activate(cb) {
|
||||
InactiveProjectManager.reactivateProjectIfRequired(projectId, cb)
|
||||
},
|
||||
ensureHistoryExists(cb) {
|
||||
// enable full project history in background for older projects
|
||||
if (!Settings.apis.project_history || !Features.hasFeature('saas')) {
|
||||
return cb()
|
||||
}
|
||||
ProjectHistoryHandler.ensureHistoryExistsForProject(
|
||||
projectId,
|
||||
err => {
|
||||
if (err) {
|
||||
logger.error(
|
||||
{ err, projectId },
|
||||
'error ensuring history exists for project'
|
||||
)
|
||||
}
|
||||
cb()
|
||||
}
|
||||
)
|
||||
},
|
||||
markAsOpened(cb) {
|
||||
// don't need to wait for this to complete
|
||||
ProjectUpdateHandler.markAsOpened(projectId, () => {})
|
||||
|
|
|
@ -54,6 +54,9 @@ describe('ProjectController', function () {
|
|||
.stub()
|
||||
.callsArgWith(2, null, { _id: this.project_id }),
|
||||
}
|
||||
this.ProjectHistoryHandler = {
|
||||
ensureHistoryExistsForProject: sinon.stub().callsArg(1),
|
||||
}
|
||||
this.SubscriptionLocator = { getUsersSubscription: sinon.stub() }
|
||||
this.LimitationsManager = { hasPaidSubscription: sinon.stub() }
|
||||
this.TagsHandler = { getAllTags: sinon.stub() }
|
||||
|
@ -140,6 +143,7 @@ describe('ProjectController', function () {
|
|||
'./ProjectDeleter': this.ProjectDeleter,
|
||||
'./ProjectDuplicator': this.ProjectDuplicator,
|
||||
'./ProjectCreationHandler': this.ProjectCreationHandler,
|
||||
'./ProjectHistoryHandler': this.ProjectHistoryHandler,
|
||||
'../Editor/EditorController': this.EditorController,
|
||||
'../User/UserController': this.UserController,
|
||||
'./ProjectHelper': this.ProjectHelper,
|
||||
|
@ -1024,6 +1028,18 @@ describe('ProjectController', function () {
|
|||
this.ProjectController.loadEditor(this.req, this.res)
|
||||
})
|
||||
|
||||
it('should ensureHistoryExistsForProject if saas and project_history enabled', function (done) {
|
||||
this.Features.hasFeature.withArgs('saas').returns(true)
|
||||
this.settings.apis.project_history = 'enabled'
|
||||
this.res.render = (pageName, opts) => {
|
||||
this.ProjectHistoryHandler.ensureHistoryExistsForProject
|
||||
.calledWith(this.project_id)
|
||||
.should.equal(true)
|
||||
done()
|
||||
}
|
||||
this.ProjectController.loadEditor(this.req, this.res)
|
||||
})
|
||||
|
||||
it('should mark project as opened', function (done) {
|
||||
this.res.render = (pageName, opts) => {
|
||||
this.ProjectUpdateHandler.markAsOpened
|
||||
|
|
Loading…
Reference in a new issue