mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-15 02:05:26 +00:00
Merge branch 'master' of github.com:sharelatex/web-sharelatex into pdfng
This commit is contained in:
commit
265ad4439c
9 changed files with 59 additions and 49 deletions
|
@ -8,11 +8,11 @@ logger = require "logger-sharelatex"
|
|||
url = require("url")
|
||||
|
||||
module.exports = ClsiManager =
|
||||
sendRequest: (project_id, settingsOverride = {}, callback = (error, success) ->) ->
|
||||
ClsiManager._buildRequest project_id, settingsOverride, (error, req) ->
|
||||
sendRequest: (project_id, options = {}, callback = (error, success) ->) ->
|
||||
ClsiManager._buildRequest project_id, options, (error, req) ->
|
||||
return callback(error) if error?
|
||||
logger.log project_id: project_id, "sending compile to CLSI"
|
||||
ClsiManager._postToClsi project_id, req, settingsOverride.compiler, (error, response) ->
|
||||
ClsiManager._postToClsi project_id, req, options.compileGroup, (error, response) ->
|
||||
return callback(error) if error?
|
||||
logger.log project_id: project_id, response: response, "received compile response from CLSI"
|
||||
callback(
|
||||
|
@ -21,19 +21,18 @@ module.exports = ClsiManager =
|
|||
ClsiManager._parseOutputFiles(project_id, response?.compile?.outputFiles)
|
||||
)
|
||||
|
||||
getLogLines: (project_id, callback = (error, lines) ->) ->
|
||||
request "#{Settings.apis.clsi.url}/project/#{project_id}/output/output.log", (error, response, body) ->
|
||||
return callback(error) if error?
|
||||
callback null, body?.split("\n") or []
|
||||
deleteAuxFiles: (project_id, options, callback = (error) ->) ->
|
||||
compilerUrl = @_getCompilerUrl(options?.compileGroup)
|
||||
request.del "#{compilerUrl}/project/#{project_id}", callback
|
||||
|
||||
deleteAuxFiles: (project_id, callback = (error) ->) ->
|
||||
request.del "#{Settings.apis.clsi.url}/project/#{project_id}", callback
|
||||
|
||||
_postToClsi: (project_id, req, compiler, callback = (error, response) ->) ->
|
||||
if compiler == "priority"
|
||||
compilerUrl = Settings.apis.clsi_priority.url
|
||||
_getCompilerUrl: (compileGroup) ->
|
||||
if compileGroup == "priority"
|
||||
return Settings.apis.clsi_priority.url
|
||||
else
|
||||
compilerUrl = Settings.apis.clsi.url
|
||||
return Settings.apis.clsi.url
|
||||
|
||||
_postToClsi: (project_id, req, compileGroup, callback = (error, response) ->) ->
|
||||
compilerUrl = @_getCompilerUrl(compileGroup)
|
||||
request.post {
|
||||
url: "#{compilerUrl}/project/#{project_id}/compile"
|
||||
json: req
|
||||
|
|
|
@ -48,7 +48,7 @@ module.exports = CompileController =
|
|||
|
||||
deleteAuxFiles: (req, res, next) ->
|
||||
project_id = req.params.Project_id
|
||||
ClsiManager.deleteAuxFiles project_id, (error) ->
|
||||
CompileManager.deleteAuxFiles project_id, (error) ->
|
||||
return next(error) if error?
|
||||
res.send(200)
|
||||
|
||||
|
|
|
@ -40,6 +40,11 @@ module.exports = CompileManager =
|
|||
return callback(error) if error?
|
||||
logger.log files: outputFiles, "output files"
|
||||
callback(null, status, outputFiles, output)
|
||||
|
||||
deleteAuxFiles: (project_id, callback = (error) ->) ->
|
||||
CompileManager.getProjectCompileLimits project_id, (error, limits) ->
|
||||
return callback(error) if error?
|
||||
ClsiManager.deleteAuxFiles project_id, limits, callback
|
||||
|
||||
getProjectCompileLimits: (project_id, callback = (error, limits) ->) ->
|
||||
Project.findById project_id, {owner_ref: 1}, (error, project) ->
|
||||
|
@ -51,12 +56,6 @@ module.exports = CompileManager =
|
|||
compileGroup: owner.features?.compileGroup || Settings.defaultFeatures.compileGroup
|
||||
}
|
||||
|
||||
getLogLines: (project_id, callback)->
|
||||
Metrics.inc "editor.raw-logs"
|
||||
ClsiManager.getLogLines project_id, (error, logLines)->
|
||||
return callback(error) if error?
|
||||
callback null, logLines
|
||||
|
||||
COMPILE_DELAY: 1 # seconds
|
||||
_checkIfRecentlyCompiled: (project_id, user_id, callback = (error, recentlyCompiled) ->) ->
|
||||
key = "compile:#{project_id}:#{user_id}"
|
||||
|
|
|
@ -49,7 +49,7 @@ div.full-size(
|
|||
i.fa.fa-long-arrow-right
|
||||
br
|
||||
a.btn.btn-default.btn-xs(
|
||||
tooltip-html-unsafe="#{translate('go_to_code_location_in_pdf')}"
|
||||
tooltip-html-unsafe="#{translate('go_to_pdf_location_in_code')}"
|
||||
tooltip-placement="right"
|
||||
tooltip-append-to-body="true"
|
||||
ng-click="syncToCode()"
|
||||
|
|
|
@ -46,7 +46,7 @@ aside#left-menu.full-size(
|
|||
i.fa.fa-external-link.fa-fw
|
||||
| #{translate("publish_as_template")}
|
||||
|
||||
div(ng-show="permissions.admin")
|
||||
div(ng-show="!anonymous")
|
||||
h4() #{translate("sync")}
|
||||
span(ng-controller="DropboxController")
|
||||
ul.list-unstyled.nav()
|
||||
|
|
|
@ -25,6 +25,7 @@ define [
|
|||
$scope.pdf.timedout = false
|
||||
$scope.pdf.failure = false
|
||||
$scope.pdf.uncompiled = false
|
||||
$scope.pdf.projectTooLarge = false
|
||||
$scope.pdf.url = null
|
||||
|
||||
if response.status == "timedout"
|
||||
|
|
|
@ -41,7 +41,7 @@ describe "ClsiManager", ->
|
|||
type: "log"
|
||||
}]
|
||||
})
|
||||
@ClsiManager.sendRequest @project_id, {compiler:"standard"}, @callback
|
||||
@ClsiManager.sendRequest @project_id, {compileGroup:"standard"}, @callback
|
||||
|
||||
it "should build the request", ->
|
||||
@ClsiManager._buildRequest
|
||||
|
@ -77,15 +77,27 @@ describe "ClsiManager", ->
|
|||
describe "deleteAuxFiles", ->
|
||||
beforeEach ->
|
||||
@request.del = sinon.stub().callsArg(1)
|
||||
@ClsiManager.deleteAuxFiles @project_id, @callback
|
||||
|
||||
describe "with the standard compileGroup", ->
|
||||
beforeEach ->
|
||||
@ClsiManager.deleteAuxFiles @project_id, {compileGroup: "standard"}, @callback
|
||||
|
||||
it "should call the delete method in the CLSI", ->
|
||||
@request.del
|
||||
.calledWith("#{@settings.apis.clsi.url}/project/#{@project_id}")
|
||||
.should.equal true
|
||||
it "should call the delete method in the standard CLSI", ->
|
||||
@request.del
|
||||
.calledWith("#{@settings.apis.clsi.url}/project/#{@project_id}")
|
||||
.should.equal true
|
||||
|
||||
it "should call the callback", ->
|
||||
@callback.called.should.equal true
|
||||
it "should call the callback", ->
|
||||
@callback.called.should.equal true
|
||||
|
||||
describe "with the priority compileGroup", ->
|
||||
beforeEach ->
|
||||
@ClsiManager.deleteAuxFiles @project_id, {compileGroup: "priority"}, @callback
|
||||
|
||||
it "should call the delete method in the CLSI", ->
|
||||
@request.del
|
||||
.calledWith("#{@settings.apis.clsi_priority.url}/project/#{@project_id}")
|
||||
.should.equal true
|
||||
|
||||
describe "_buildRequest", ->
|
||||
beforeEach ->
|
||||
|
|
|
@ -196,14 +196,14 @@ describe "CompileController", ->
|
|||
|
||||
describe "deleteAuxFiles", ->
|
||||
beforeEach ->
|
||||
@ClsiManager.deleteAuxFiles = sinon.stub().callsArg(1)
|
||||
@CompileManager.deleteAuxFiles = sinon.stub().callsArg(1)
|
||||
@req.params =
|
||||
Project_id: @project_id
|
||||
@res.send = sinon.stub()
|
||||
@CompileController.deleteAuxFiles @req, @res, @next
|
||||
|
||||
it "should proxy to the CLSI", ->
|
||||
@ClsiManager.deleteAuxFiles
|
||||
@CompileManager.deleteAuxFiles
|
||||
.calledWith(@project_id)
|
||||
.should.equal true
|
||||
|
||||
|
|
|
@ -134,26 +134,25 @@ describe "CompileManager", ->
|
|||
compileGroup: @group
|
||||
})
|
||||
.should.equal true
|
||||
|
||||
describe "getLogLines", ->
|
||||
|
||||
describe "deleteAuxFiles", ->
|
||||
beforeEach ->
|
||||
@ClsiManager.getLogLines = sinon.stub().callsArgWith(1, null, @lines = ["log", "lines"])
|
||||
@CompileManager.getLogLines @project_id, @callback
|
||||
|
||||
it "should call the new api", ->
|
||||
@ClsiManager.getLogLines
|
||||
@CompileManager.getProjectCompileLimits = sinon.stub().callsArgWith 1, null, @limits = { compileGroup: "mock-compile-group" }
|
||||
@ClsiManager.deleteAuxFiles = sinon.stub().callsArg(2)
|
||||
@CompileManager.deleteAuxFiles @project_id, @callback
|
||||
|
||||
it "should look up the compile group to use", ->
|
||||
@CompileManager.getProjectCompileLimits
|
||||
.calledWith(@project_id)
|
||||
.should.equal true
|
||||
|
||||
it "should call the callback with the lines", ->
|
||||
@callback
|
||||
.calledWith(null, @lines)
|
||||
.should.equal true
|
||||
|
||||
it "should increase the log count metric", ->
|
||||
@Metrics.inc
|
||||
.calledWith("editor.raw-logs")
|
||||
|
||||
it "should delete the aux files", ->
|
||||
@ClsiManager.deleteAuxFiles
|
||||
.calledWith(@project_id, @limits)
|
||||
.should.equal true
|
||||
|
||||
it "should call the callback", ->
|
||||
@callback.called.should.equal true
|
||||
|
||||
describe "_checkIfRecentlyCompiled", ->
|
||||
describe "when the key exists in redis", ->
|
||||
|
|
Loading…
Add table
Reference in a new issue