mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 14:13:43 +01:00
Merge pull request #1719 from sharelatex/ja-restore-doc-snapshots
Show and restore doc snapshots from admin panel GitOrigin-RevId: 22339644d48a8698df97f7d5fc1eecfaf27c6fab
This commit is contained in:
@@ -13,10 +13,13 @@ _ = require('underscore')
|
||||
|
||||
module.exports = EditorController =
|
||||
addDoc: (project_id, folder_id, docName, docLines, source, user_id, callback = (error, doc)->)->
|
||||
EditorController.addDocWithRanges(project_id, folder_id, docName, docLines, {}, source, user_id, callback)
|
||||
|
||||
addDocWithRanges: (project_id, folder_id, docName, docLines, docRanges, source, user_id, callback = (error, doc)->)->
|
||||
docName = docName.trim()
|
||||
logger.log {project_id, folder_id, docName, source}, "sending new doc to project"
|
||||
Metrics.inc "editor.add-doc"
|
||||
ProjectEntityUpdateHandler.addDoc project_id, folder_id, docName, docLines, user_id, (err, doc, folder_id)=>
|
||||
ProjectEntityUpdateHandler.addDocWithRanges project_id, folder_id, docName, docLines, docRanges, user_id, (err, doc, folder_id)=>
|
||||
if err?
|
||||
logger.err err:err, project_id:project_id, docName:docName, "error adding doc without lock"
|
||||
return callback(err)
|
||||
|
||||
@@ -141,18 +141,21 @@ module.exports = ProjectEntityUpdateHandler = self =
|
||||
return callback(err) if err?
|
||||
callback(null, result, project)
|
||||
|
||||
addDoc: wrapWithLock
|
||||
addDoc: (project_id, folder_id, docName, docLines, userId, callback) ->
|
||||
self.addDocWithRanges(project_id, folder_id, docName, docLines, {}, userId, callback)
|
||||
|
||||
addDocWithRanges: wrapWithLock
|
||||
beforeLock: (next) ->
|
||||
(project_id, folder_id, docName, docLines, userId, callback = (error, doc, folder_id) ->) ->
|
||||
(project_id, folder_id, docName, docLines, ranges, userId, callback = (error, doc, folder_id) ->) ->
|
||||
if not SafePath.isCleanFilename docName
|
||||
return callback new Errors.InvalidNameError("invalid element name")
|
||||
# Put doc in docstore first, so that if it errors, we don't have a doc_id in the project
|
||||
# which hasn't been created in docstore.
|
||||
doc = new Doc name: docName
|
||||
DocstoreManager.updateDoc project_id.toString(), doc._id.toString(), docLines, 0, {}, (err, modified, rev) ->
|
||||
DocstoreManager.updateDoc project_id.toString(), doc._id.toString(), docLines, 0, ranges, (err, modified, rev) ->
|
||||
return callback(err) if err?
|
||||
next(project_id, folder_id, doc, docName, docLines, userId, callback)
|
||||
withLock: (project_id, folder_id, doc, docName, docLines, userId, callback = (error, doc, folder_id) ->) ->
|
||||
next(project_id, folder_id, doc, docName, docLines, ranges, userId, callback)
|
||||
withLock: (project_id, folder_id, doc, docName, docLines, ranges, userId, callback = (error, doc, folder_id) ->) ->
|
||||
ProjectEntityUpdateHandler._addDocAndSendToTpds project_id, folder_id, doc, (err, result, project) ->
|
||||
return callback(err) if err?
|
||||
docPath = result?.path?.fileSystem
|
||||
@@ -261,7 +264,7 @@ module.exports = ProjectEntityUpdateHandler = self =
|
||||
return callback(err) if err?
|
||||
callback null, existingDoc, !existingDoc?
|
||||
else
|
||||
self.addDoc.withoutLock project_id, folder_id, docName, docLines, userId, (err, doc) ->
|
||||
self.addDocWithRanges.withoutLock project_id, folder_id, docName, docLines, {}, userId, (err, doc) ->
|
||||
return callback(err) if err?
|
||||
callback null, doc, !existingDoc?
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Settings = require "settings-sharelatex"
|
||||
mongojs = require "mongojs"
|
||||
db = mongojs(Settings.mongo.url, ["projects", "users", "userstubs", "tokens"])
|
||||
db = mongojs(Settings.mongo.url, ["projects", "users", "userstubs", "tokens", "docSnapshots"])
|
||||
module.exports =
|
||||
db: db
|
||||
ObjectId: mongojs.ObjectId
|
||||
|
||||
Reference in New Issue
Block a user