mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
fixed bug with setting root doc which would fail if the document class isn't on the top line
This commit is contained in:
parent
175dfae085
commit
a570d05132
2 changed files with 7 additions and 5 deletions
|
@ -5,6 +5,7 @@ _ = require("underscore")
|
|||
|
||||
module.exports = ProjectRootDocManager =
|
||||
setRootDocAutomatically: (project_id, callback = (error) ->) ->
|
||||
|
||||
ProjectEntityHandler.getAllDocs project_id, (error, docs) ->
|
||||
return callback(error) if error?
|
||||
|
||||
|
@ -12,13 +13,14 @@ module.exports = ProjectRootDocManager =
|
|||
root_doc_id = null
|
||||
jobs = _.map docs, (doc, path)->
|
||||
return (cb)->
|
||||
rootDocId = null
|
||||
for line in doc.lines || []
|
||||
match = line.match /(.*)\\documentclass/ # no lookbehind in js regexp :(
|
||||
isRootDoc = Path.extname(path).match(/\.R?tex$/) and match and !match[1].match /%/
|
||||
if isRootDoc
|
||||
return cb(doc?._id)
|
||||
else
|
||||
return cb()
|
||||
rootDocId = doc?._id
|
||||
cb(rootDocId)
|
||||
|
||||
async.series jobs, (root_doc_id)->
|
||||
if root_doc_id?
|
||||
ProjectEntityHandler.setRootDoc project_id, root_doc_id, callback
|
||||
|
|
|
@ -18,10 +18,10 @@ describe 'ProjectRootDocManager', ->
|
|||
@docs =
|
||||
"/chapter1.tex":
|
||||
_id: "doc-id-1"
|
||||
lines: ["\\begin{document}", "Hello world", "\\end{document}"]
|
||||
lines: ["something else","\\begin{document}", "Hello world", "\\end{document}"]
|
||||
"/main.tex":
|
||||
_id: "doc-id-2"
|
||||
lines: ["\\documentclass{article}", "\\input{chapter1}"]
|
||||
lines: ["different line","\\documentclass{article}", "\\input{chapter1}"]
|
||||
"/nested/chapter1a.tex":
|
||||
_id: "doc-id-3"
|
||||
lines: ["Hello world"]
|
||||
|
|
Loading…
Reference in a new issue