diff --git a/services/web/app/coffee/Features/Compile/CompileController.coffee b/services/web/app/coffee/Features/Compile/CompileController.coffee index 3641398d18..5a6538cc8b 100644 --- a/services/web/app/coffee/Features/Compile/CompileController.coffee +++ b/services/web/app/coffee/Features/Compile/CompileController.coffee @@ -35,6 +35,9 @@ module.exports = CompileController = getFileFromClsi: (req, res, next = (error) ->) -> CompileController.proxyToClsi("/project/#{req.params.Project_id}/output/#{req.params.file}", req, res, next) + proxySync: (req, res, next = (error) ->) -> + CompileController.proxyToClsi(req.url, req, res, next) + proxyToClsi: (url, req, res, next = (error) ->) -> logger.log url: url, "proxying to CLSI" url = "#{Settings.apis.clsi.url}#{url}" diff --git a/services/web/app/coffee/router.coffee b/services/web/app/coffee/router.coffee index dc2ea53f54..4d206b0ac4 100644 --- a/services/web/app/coffee/router.coffee +++ b/services/web/app/coffee/router.coffee @@ -109,6 +109,9 @@ module.exports = class Router next() ), SecurityManager.requestCanAccessProject, CompileController.getFileFromClsi app.del "/project/:Project_id/output", SecurityManager.requestCanAccessProject, CompileController.deleteAuxFiles + app.get "/project/:Project_id/sync/code", SecurityManager.requestCanAccessProject, CompileController.proxySync + app.get "/project/:Project_id/sync/pdf", SecurityManager.requestCanAccessProject, CompileController.proxySync + app.del '/Project/:Project_id', SecurityManager.requestIsOwner, ProjectController.deleteProject app.post '/Project/:Project_id/clone', SecurityManager.requestCanAccessProject, ProjectController.cloneProject diff --git a/services/web/public/coffee/editor/Editor.coffee b/services/web/public/coffee/editor/Editor.coffee index b0909e1ac3..2b46df5ab2 100644 --- a/services/web/public/coffee/editor/Editor.coffee +++ b/services/web/public/coffee/editor/Editor.coffee @@ -304,6 +304,12 @@ define [ gotoLine: (line) -> @aceEditor.gotoLine(line) + getCurrentLine: () -> + @aceEditor.selection?.getCursor()?.row + + getCurrentColumn: () -> + @aceEditor.selection?.getCursor()?.column + getLines: (from, to) -> if from? and to? @getSession().doc.getLines(from, to) diff --git a/services/web/public/coffee/pdf/CompiledView.coffee b/services/web/public/coffee/pdf/CompiledView.coffee index 770524f1ce..6b6478d520 100644 --- a/services/web/public/coffee/pdf/CompiledView.coffee +++ b/services/web/public/coffee/pdf/CompiledView.coffee @@ -64,6 +64,7 @@ define [ PdfView = PdfjsView @pdfjs = true @pdfView = new PdfView(manager: @) + @pdfView.on "dblclick", (e) => @trigger "dblclick", e render: () -> @setElement(@templates.pdfPanel) @@ -214,4 +215,7 @@ define [ Backbone.View::undelegateEvents.apply(this, arguments) @pdfView.undelegateEvents() + highlightInPdf: (args...) -> + @pdfView.highlightInPdf?(args...) + diff --git a/services/web/public/coffee/pdf/PDFjsView.coffee b/services/web/public/coffee/pdf/PDFjsView.coffee index b913fbbc82..1c3fd0b3ef 100644 --- a/services/web/public/coffee/pdf/PDFjsView.coffee +++ b/services/web/public/coffee/pdf/PDFjsView.coffee @@ -2,16 +2,18 @@ define [ "libs/pdfListView/PdfListView" "libs/pdfListView/TextLayerBuilder" "libs/pdfListView/AnnotationsLayerBuilder" + "libs/pdfListView/HighlightsLayerBuilder" "text!libs/pdfListView/TextLayer.css" "text!libs/pdfListView/AnnotationsLayer.css" + "text!libs/pdfListView/HighlightsLayer.css" "libs/backbone" "libs/jquery.storage" -], (PDFListView, TextLayerBuilder, AnnotationsLayerBuilder, textLayerCss, annotationsLayerCss) -> +], (PDFListView, TextLayerBuilder, AnnotationsLayerBuilder, HighlightsLayerBuilder, textLayerCss, annotationsLayerCss, highlightsLayerCss) -> if PDFJS? PDFJS.workerSrc = "#{window.sharelatex.pdfJsWorkerPath}" style = $("