mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-27 02:51:57 +02:00
show an error if the main file cannot be found
also improve logic for detecting the main file, if there's only one file it must be the main file.
This commit is contained in:
@@ -29,7 +29,11 @@ module.exports = ClsiManager =
|
||||
|
||||
sendRequestOnce: (project_id, user_id, options = {}, callback = (error, status, outputFiles, clsiServerId, validationProblems) ->) ->
|
||||
ClsiManager._buildRequest project_id, options, (error, req) ->
|
||||
return callback(error) if error?
|
||||
if error?
|
||||
if error.message is "no main file specified"
|
||||
return callback(null, "validation-problems", null, null, {mainFile:error.message})
|
||||
else
|
||||
return callback(error)
|
||||
logger.log project_id: project_id, "sending compile to CLSI"
|
||||
ClsiFormatChecker.checkRecoursesForProblems req.compile?.resources, (err, validationProblems)->
|
||||
if err?
|
||||
@@ -206,9 +210,12 @@ module.exports = ClsiManager =
|
||||
resources = []
|
||||
rootResourcePath = null
|
||||
rootResourcePathOverride = null
|
||||
hasMainFile = false
|
||||
numberOfDocsInProject = 0
|
||||
|
||||
for path, doc of docs
|
||||
path = path.replace(/^\//, "") # Remove leading /
|
||||
numberOfDocsInProject++
|
||||
if doc.lines? # add doc to resources unless it is just a stub entry
|
||||
resources.push
|
||||
path: path
|
||||
@@ -217,11 +224,20 @@ module.exports = ClsiManager =
|
||||
rootResourcePath = path
|
||||
if options.rootDoc_id? and doc._id.toString() == options.rootDoc_id.toString()
|
||||
rootResourcePathOverride = path
|
||||
if path is "main.tex"
|
||||
hasMainFile = true
|
||||
|
||||
rootResourcePath = rootResourcePathOverride if rootResourcePathOverride?
|
||||
if !rootResourcePath?
|
||||
logger.warn {project_id}, "no root document found, setting to main.tex"
|
||||
rootResourcePath = "main.tex"
|
||||
if hasMainFile
|
||||
logger.warn {project_id}, "no root document found, setting to main.tex"
|
||||
rootResourcePath = "main.tex"
|
||||
else if numberOfDocsInProject is 1 # only one file, must be the main document
|
||||
for path, doc of docs
|
||||
rootResourcePath = path.replace(/^\//, "") # Remove leading /
|
||||
logger.warn {project_id, rootResourcePath: rootResourcePath}, "no root document found, single document in project"
|
||||
else
|
||||
return callback new Error("no main file specified")
|
||||
|
||||
for path, file of files
|
||||
path = path.replace(/^\//, "") # Remove leading /
|
||||
|
||||
@@ -317,6 +317,9 @@ div.full-size.pdf(ng-controller="PdfController")
|
||||
div
|
||||
li(ng-repeat="entry in pdf.validation.conflictedPaths") {{ '/'+entry['path'] }}
|
||||
|
||||
.alert.alert-danger(ng-show="pdf.validation.mainFile")
|
||||
strong #{translate("main_file_not_found")}
|
||||
span #{translate("please_set_main_file")}
|
||||
|
||||
.pdf-errors(ng-switch-when="errors")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user