From e0d5075fdb349968269cb80a5af5f98dce95c739 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Tue, 26 Jul 2016 16:25:19 +0100 Subject: [PATCH 01/15] include check option when compiling --- services/web/app/coffee/Features/Compile/ClsiManager.coffee | 1 + .../web/app/coffee/Features/Compile/CompileController.coffee | 2 ++ .../web/public/coffee/ide/pdf/controllers/PdfController.coffee | 1 + 3 files changed, 4 insertions(+) diff --git a/services/web/app/coffee/Features/Compile/ClsiManager.coffee b/services/web/app/coffee/Features/Compile/ClsiManager.coffee index 568d806e99..08ef23bcd8 100755 --- a/services/web/app/coffee/Features/Compile/ClsiManager.coffee +++ b/services/web/app/coffee/Features/Compile/ClsiManager.coffee @@ -147,6 +147,7 @@ module.exports = ClsiManager = timeout: options.timeout imageName: project.imageName draft: !!options.draft + check: options.check rootResourcePath: rootResourcePath resources: resources } diff --git a/services/web/app/coffee/Features/Compile/CompileController.coffee b/services/web/app/coffee/Features/Compile/CompileController.coffee index f3680dc38e..e52693d4c4 100755 --- a/services/web/app/coffee/Features/Compile/CompileController.coffee +++ b/services/web/app/coffee/Features/Compile/CompileController.coffee @@ -29,6 +29,8 @@ module.exports = CompileController = options.compiler = req.body.compiler if req.body?.draft options.draft = req.body.draft + if req.body?.check + options.check = if req.body.check is "error" then "error" else "warn" logger.log {options:options, project_id:project_id, user_id:user_id}, "got compile request" CompileManager.compile project_id, user_id, options, (error, status, outputFiles, clsiServerId, limits, validationProblems) -> return next(error) if error? diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 0f8134258c..5144e0e73e 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -86,6 +86,7 @@ define [ return $http.post url, { rootDoc_id: options.rootDocOverride_id or null draft: $scope.draft + check: if options.check then "error" else "warn" _csrf: window.csrfToken }, {params: params} From ef85f1014c93e7b32856076e7755b1297f425d60 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Tue, 26 Jul 2016 16:26:27 +0100 Subject: [PATCH 02/15] add menu option for checking with chktex --- .../web/app/views/project/editor/pdf.jade | 8 +- .../ide/pdf/controllers/PdfController.coffee | 80 ++++++++++++++----- 2 files changed, 69 insertions(+), 19 deletions(-) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index 200c609d97..b2d821f753 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -36,6 +36,11 @@ div.full-size.pdf(ng-controller="PdfController") i.fa.fa-fw(ng-class="{'fa-check': draft}") |  #{translate("fast")}  span.subdued [draft] + li.dropdown-header #{translate("file_checks")} + li + a(href, ng-click="recompile({check:true})") + i.fa.fa-fw() + |  #{translate("syntax check")} a( href ng-click="stop()" @@ -115,7 +120,8 @@ div.full-size.pdf(ng-controller="PdfController") |   span(ng-show="entry.file") {{ entry.file }} span(ng-show="entry.line") , line {{ entry.line }} - p.entry-message(ng-show="entry.message") {{ entry.message }} + p.entry-message(ng-show="entry.message") + {{ entry.type }} {{ entry.message }} .card.card-hint( ng-if="entry.humanReadableHint" stop-propagation="click" diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 5144e0e73e..5a0b232a4c 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -92,6 +92,9 @@ define [ parseCompileResponse = (response) -> + # keep last url + last_pdf_url = $scope.pdf.url + # Reset everything $scope.pdf.error = false $scope.pdf.timedout = false @@ -121,11 +124,17 @@ define [ if response.status == "timedout" $scope.pdf.view = 'errors' $scope.pdf.timedout = true - fetchLogs(fileByPath['output.log'], fileByPath['output.blg']) + fetchLogs(fileByPath) else if response.status == "terminated" $scope.pdf.view = 'errors' $scope.pdf.compileTerminated = true - fetchLogs(fileByPath['output.log'], fileByPath['output.blg']) + fetchLogs(fileByPath) + else if response.status == "exited" + $scope.pdf.view = 'pdf' + $scope.pdf.compileExited = true + $scope.pdf.url = last_pdf_url + $scope.shouldShowLogs = true + fetchLogs(fileByPath) else if response.status == "autocompile-backoff" $scope.pdf.view = 'uncompiled' else if response.status == "project-too-large" @@ -135,7 +144,7 @@ define [ $scope.pdf.view = 'errors' $scope.pdf.failure = true $scope.shouldShowLogs = true - fetchLogs(fileByPath['output.log'], fileByPath['output.blg']) + fetchLogs(fileByPath) else if response.status == 'clsi-maintenance' $scope.pdf.view = 'errors' $scope.pdf.clsiMaintenance = true @@ -166,7 +175,7 @@ define [ qs.popupDownload = true $scope.pdf.downloadUrl = "/project/#{$scope.project_id}/output/output.pdf" + createQueryString(qs) - fetchLogs(fileByPath['output.log'], fileByPath['output.blg']) + fetchLogs(fileByPath) IGNORE_FILES = ["output.fls", "output.fdb_latexmk"] $scope.pdf.outputFiles = [] @@ -187,7 +196,11 @@ define [ } - fetchLogs = (logFile, blgFile) -> + fetchLogs = (fileByPath) -> + + logFile = fileByPath['output.log']; + blgFile = fileByPath['output.blg']; + chktexFile = fileByPath['output.chktex']; getFile = (name, file) -> opts = @@ -214,6 +227,8 @@ define [ accumulateResults = (newEntries) -> for key in ['all', 'errors', 'warnings'] + if newEntries.type? + entry.type = newEntries.type for entry in newEntries[key] logEntries[key] = logEntries[key].concat newEntries[key] # use the parsers for each file type @@ -223,10 +238,23 @@ define [ all = [].concat errors, warnings, typesetting accumulateResults {all, errors, warnings} + processChkTex = (log) -> + errors = [] + warnings = [] + for line in log.split("\n") + if m = line.match /^(\S+):(\d+):(\d+): (Error|Warning): (.*)/ + result = { file:m[1], line:m[2], column:m[3], level:m[4].toLowerCase(), message: "#{m[4]}: #{m[5]}"} + if result.level is 'error' + errors.push result + else + warnings.push result + all = [].concat errors, warnings + accumulateResults {type: "ChkTeX", all, errors, warnings} + processBiber = (log) -> {errors, warnings} = BibLogParser.parse(log, {}) all = [].concat errors, warnings - accumulateResults {all, errors, warnings} + accumulateResults {type: "BibTeX", all, errors, warnings} # output the results handleError = () -> @@ -249,19 +277,35 @@ define [ } # retrieve the logfile and process it - response = getFile('output.log', logFile) - .success processLog - .error handleError + if logFile? + response = getFile('output.log', logFile) + .then (response) -> processLog(response.data) - if blgFile? # retrieve the blg file if present - response.success () -> - getFile('output.blg', blgFile) - # ignore errors in biber file - .success processBiber - # display the combined result - .then annotateFiles - else # otherwise just display the result - response.success annotateFiles + if blgFile? # retrieve the blg file if present + response = response.then () -> + getFile('output.blg', blgFile) + .then( + (response) -> processBiber(response.data), + () -> true # ignore errors in biber file + ) + + if response? + response.catch handleError + else + handleError() + + if chktexFile? + getChkTex = () -> + getFile('output.chktex', chktexFile) + .then (response) -> processChkTex(response.data) + # always retrieve the chktex file if present + if response? + response = response.then getChkTex, getChkTex + else + response = getChkTex() + + # display the combined result + response.finally annotateFiles getRootDocOverride_id = () -> doc = ide.editorManager.getCurrentDocValue() From e99176c0d089b15e6d2ffda2745d9a29030b7194 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Wed, 27 Jul 2016 10:55:24 +0100 Subject: [PATCH 03/15] fix tests --- .../web/test/UnitTests/coffee/Compile/ClsiManagerTests.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/services/web/test/UnitTests/coffee/Compile/ClsiManagerTests.coffee b/services/web/test/UnitTests/coffee/Compile/ClsiManagerTests.coffee index 2fb980b461..a3eeebcaaa 100644 --- a/services/web/test/UnitTests/coffee/Compile/ClsiManagerTests.coffee +++ b/services/web/test/UnitTests/coffee/Compile/ClsiManagerTests.coffee @@ -174,6 +174,7 @@ describe "ClsiManager", -> timeout : 100 imageName: @image draft: false + check: undefined rootResourcePath: "main.tex" resources: [{ path: "main.tex" From d4c5028350696289d2b391a4040d86ede4e1449b Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Wed, 27 Jul 2016 16:51:13 +0100 Subject: [PATCH 04/15] allow HumanReadableLogs to accept an already parsed log --- .../coffee/ide/human-readable-logs/HumanReadableLogs.coffee | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogs.coffee b/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogs.coffee index 747ca1ad08..ae9c3c1e4f 100644 --- a/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogs.coffee +++ b/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogs.coffee @@ -3,7 +3,10 @@ define [ "ide/human-readable-logs/HumanReadableLogsRules" ], (LogParser, ruleset) -> parse : (rawLog, options) -> - parsedLogEntries = LogParser.parse(rawLog, options) + if typeof rawLog is 'string' + parsedLogEntries = LogParser.parse(rawLog, options) + else + parsedLogEntries = rawLog _getRule = (logMessage) -> return rule for rule in ruleset when rule.regexToMatch.test logMessage From 14a0499b56789f279baf1dda7b97091a46e1e4e4 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Wed, 27 Jul 2016 16:52:36 +0100 Subject: [PATCH 05/15] allow HumanReadableLogs to rewrite messages with regex also allow an explicit hintId for each rule --- .../ide/human-readable-logs/HumanReadableLogs.coffee | 7 ++++++- .../ide/human-readable-logs/HumanReadableLogsRules.coffee | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogs.coffee b/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogs.coffee index ae9c3c1e4f..e59e35a40c 100644 --- a/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogs.coffee +++ b/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogs.coffee @@ -15,7 +15,12 @@ define [ ruleDetails = _getRule entry.message if (ruleDetails?) - entry.ruleId = 'hint_' + ruleDetails.regexToMatch.toString().replace(/\s/g, '_').slice(1, -1) if ruleDetails.regexToMatch? + if ruleDetails.ruleId? + entry.ruleId = ruleDetails.ruleId + else if ruleDetails.regexToMatch? + entry.ruleId = 'hint_' + ruleDetails.regexToMatch.toString().replace(/\s/g, '_').slice(1, -1) + if ruleDetails.newMessage? + entry.message = entry.message.replace ruleDetails.regexToMatch, ruleDetails.newMessage entry.humanReadableHint = ruleDetails.humanReadableHint if ruleDetails.humanReadableHint? entry.extraInfoURL = ruleDetails.extraInfoURL if ruleDetails.extraInfoURL? diff --git a/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogsRules.coffee b/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogsRules.coffee index f123515deb..021ff5d284 100644 --- a/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogsRules.coffee +++ b/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogsRules.coffee @@ -88,4 +88,11 @@ define -> [ humanReadableHint: """ You have used a font command which is only available in math mode. To use this command, you must be in maths mode (E.g. $ \u2026 $ or \\begin{math} \u2026 \\end{math}). If you want to use it outside of math mode, use the text version instead: \\textrm, \\textit, etc. """ + , + ruleId: "hint_mismatched_environment" + regexToMatch: /Error: `([^']{2,})' expected, found `([^']{2,})'.*/ + newMessage: "Error: environment does not match \\begin{$1} ... \\end{$2}" + humanReadableHint: """ + You have used \\begin{...} without a corresponding \\end{...} + """ ] From 5da1b9041897f4b61d492bb00eb9b8ad105d38ba Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Wed, 27 Jul 2016 16:53:22 +0100 Subject: [PATCH 06/15] use validate as keyword for syntax checks --- .../coffee/Features/Compile/CompileController.coffee | 2 +- .../coffee/ide/pdf/controllers/PdfController.coffee | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/services/web/app/coffee/Features/Compile/CompileController.coffee b/services/web/app/coffee/Features/Compile/CompileController.coffee index e52693d4c4..000465a83c 100755 --- a/services/web/app/coffee/Features/Compile/CompileController.coffee +++ b/services/web/app/coffee/Features/Compile/CompileController.coffee @@ -30,7 +30,7 @@ module.exports = CompileController = if req.body?.draft options.draft = req.body.draft if req.body?.check - options.check = if req.body.check is "error" then "error" else "warn" + options.check = if req.body.check is "validate" then "validate" else undefined logger.log {options:options, project_id:project_id, user_id:user_id}, "got compile request" CompileManager.compile project_id, user_id, options, (error, status, outputFiles, clsiServerId, limits, validationProblems) -> return next(error) if error? diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 5a0b232a4c..968cd1b60f 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -86,7 +86,7 @@ define [ return $http.post url, { rootDoc_id: options.rootDocOverride_id or null draft: $scope.draft - check: if options.check then "error" else "warn" + check: if options.check then "validate" else null _csrf: window.csrfToken }, {params: params} @@ -129,6 +129,12 @@ define [ $scope.pdf.view = 'errors' $scope.pdf.compileTerminated = true fetchLogs(fileByPath) + else if response.status in ["validation-fail", "validation-pass"] + $scope.pdf.view = 'pdf' + $scope.pdf.compileExited = true + $scope.pdf.url = last_pdf_url + $scope.shouldShowLogs = true + fetchLogs(fileByPath) else if response.status == "exited" $scope.pdf.view = 'pdf' $scope.pdf.compileExited = true @@ -249,7 +255,8 @@ define [ else warnings.push result all = [].concat errors, warnings - accumulateResults {type: "ChkTeX", all, errors, warnings} + logHints = HumanReadableLogs.parse {type: "Validation", all, errors, warnings} + accumulateResults logHints processBiber = (log) -> {errors, warnings} = BibLogParser.parse(log, {}) From a3c8202d0eba75b84a54c2c2ebded0d46a507f3b Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Thu, 28 Jul 2016 16:18:36 +0100 Subject: [PATCH 07/15] support jumping to position with line and column from log entries --- .../public/coffee/ide/editor/EditorManager.coffee | 2 +- .../cursor-position/CursorPositionManager.coffee | 12 ++++++------ .../coffee/ide/pdf/controllers/PdfController.coffee | 4 +++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/services/web/public/coffee/ide/editor/EditorManager.coffee b/services/web/public/coffee/ide/editor/EditorManager.coffee index 54d56cac19..64cbe1d884 100644 --- a/services/web/public/coffee/ide/editor/EditorManager.coffee +++ b/services/web/public/coffee/ide/editor/EditorManager.coffee @@ -46,7 +46,7 @@ define [ done = () => if options.gotoLine? - @$scope.$broadcast "editor:gotoLine", options.gotoLine + @$scope.$broadcast "editor:gotoLine", options.gotoLine, options.gotoColumn if doc.id == @$scope.editor.open_doc_id and !options.forceReopen @$scope.$apply () => diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/cursor-position/CursorPositionManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/cursor-position/CursorPositionManager.coffee index 7019b213b5..6e238122e1 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/cursor-position/CursorPositionManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/cursor-position/CursorPositionManager.coffee @@ -23,10 +23,10 @@ define [], () -> @storeCursorPosition(@editor.getSession()) @storeScrollTopPosition(@editor.getSession()) - @$scope.$on "#{@$scope.name}:gotoLine", (editor, value) => - if value? + @$scope.$on "#{@$scope.name}:gotoLine", (editor, line, column) => + if line? setTimeout () => - @gotoLine(value) + @gotoLine(line, column) , 10 # Hack: Must happen after @gotoStoredPosition storeScrollTopPosition: (session) -> @@ -53,6 +53,6 @@ define [], () -> @editor.getSession().setScrollTop(pos.scrollTop or 0) delete @ignoreCursorPositionChanges - gotoLine: (line) -> - @editor.gotoLine(line) - @editor.focus() \ No newline at end of file + gotoLine: (line, column) -> + @editor.gotoLine(line, column) + @editor.focus() diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 968cd1b60f..5dff3acb04 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -556,7 +556,9 @@ define [ return if !entity? or entity.type != "doc" if entry.line? line = entry.line - ide.editorManager.openDoc(entity, gotoLine: line) + if entry.column? + column = entry.column + ide.editorManager.openDoc(entity, gotoLine: line, gotoColumn: column) ] App.controller 'ClearCacheModalController', ["$scope", "$modalInstance", ($scope, $modalInstance) -> From 4d3b743e4de0000e9990029b1715600e277c7193 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Thu, 28 Jul 2016 16:19:10 +0100 Subject: [PATCH 08/15] display validation errors only when doing validation --- .../coffee/ide/pdf/controllers/PdfController.coffee | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 5dff3acb04..780fda5aa3 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -134,7 +134,7 @@ define [ $scope.pdf.compileExited = true $scope.pdf.url = last_pdf_url $scope.shouldShowLogs = true - fetchLogs(fileByPath) + fetchLogs(fileByPath, { validation: true }) else if response.status == "exited" $scope.pdf.view = 'pdf' $scope.pdf.compileExited = true @@ -202,11 +202,13 @@ define [ } - fetchLogs = (fileByPath) -> + fetchLogs = (fileByPath, options) -> - logFile = fileByPath['output.log']; - blgFile = fileByPath['output.blg']; - chktexFile = fileByPath['output.chktex']; + if options?.validation + chktexFile = fileByPath['output.chktex'] + else + logFile = fileByPath['output.log'] + blgFile = fileByPath['output.blg'] getFile = (name, file) -> opts = From 208798ebe3f6d86cb27ce256d9b341644dd94747 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Thu, 28 Jul 2016 16:19:35 +0100 Subject: [PATCH 09/15] add a log hint for mismatched brackets --- .../human-readable-logs/HumanReadableLogsRules.coffee | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogsRules.coffee b/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogsRules.coffee index 021ff5d284..c61c61506b 100644 --- a/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogsRules.coffee +++ b/services/web/public/coffee/ide/human-readable-logs/HumanReadableLogsRules.coffee @@ -93,6 +93,14 @@ define -> [ regexToMatch: /Error: `([^']{2,})' expected, found `([^']{2,})'.*/ newMessage: "Error: environment does not match \\begin{$1} ... \\end{$2}" humanReadableHint: """ - You have used \\begin{...} without a corresponding \\end{...} + You have used \\begin{...} without a corresponding \\end{...}. """ + , + ruleId: "hint_mismatched_brackets" + regexToMatch: /Error: `([^a-zA-Z0-9])' expected, found `([^a-zA-Z0-9])'.*/ + newMessage: "Error: brackets do not match, found '$2' instead of '$1'" + humanReadableHint: """ + You have used an open bracket without a corresponding close bracket. + """ + ] From 0742db7732face70b61a2914081a247501fcbcc5 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Thu, 28 Jul 2016 16:40:40 +0100 Subject: [PATCH 10/15] enable validation option only for beta programme users --- services/web/app/views/project/editor/pdf.jade | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index b2d821f753..832134c0d5 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -36,11 +36,12 @@ div.full-size.pdf(ng-controller="PdfController") i.fa.fa-fw(ng-class="{'fa-check': draft}") |  #{translate("fast")}  span.subdued [draft] - li.dropdown-header #{translate("file_checks")} - li - a(href, ng-click="recompile({check:true})") - i.fa.fa-fw() - |  #{translate("syntax check")} + if user.betaProgram + li.dropdown-header #{translate("file_checks")} + li + a(href, ng-click="recompile({check:true})") + i.fa.fa-fw() + |  #{translate("syntax_check")} a( href ng-click="stop()" From e508f7b8a99e460e1e9afb64aaff100ee4e306f0 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Thu, 28 Jul 2016 16:41:02 +0100 Subject: [PATCH 11/15] don't try to display a log hint link if there isn't one --- services/web/app/views/project/editor/pdf.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index 832134c0d5..973562abc0 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -133,7 +133,7 @@ div.full-size.pdf(ng-controller="PdfController") ng-show="entry.humanReadableHint", ng-bind-html="wikiEnabled ? entry.humanReadableHint : stripHTMLFromString(entry.humanReadableHint)") .card-hint-actions.clearfix - .card-hint-ext-link(ng-if="wikiEnabled") + .card-hint-ext-link(ng-if="wikiEnabled && entry.extraInfoURL") a( ng-href="{{ entry.extraInfoURL }}", ng-click="trackLogHintsLearnMore()" From 38f76b305ba10f5044fd340f2c97695310ede33c Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Tue, 2 Aug 2016 14:43:09 +0100 Subject: [PATCH 12/15] change message to "Run syntax check" --- services/web/app/views/project/editor/pdf.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index 973562abc0..cf5129708a 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -41,7 +41,7 @@ div.full-size.pdf(ng-controller="PdfController") li a(href, ng-click="recompile({check:true})") i.fa.fa-fw() - |  #{translate("syntax_check")} + |  #{translate("run_syntax_check")} a( href ng-click="stop()" From 4d3629e5db00618a8b76ea7b50d5bd5debeb3a01 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Wed, 3 Aug 2016 16:29:34 +0100 Subject: [PATCH 13/15] add beta feature badge to syntax check --- services/web/app/views/project/editor/pdf.jade | 1 + 1 file changed, 1 insertion(+) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index cf5129708a..2754e8499d 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -42,6 +42,7 @@ div.full-size.pdf(ng-controller="PdfController") a(href, ng-click="recompile({check:true})") i.fa.fa-fw() |  #{translate("run_syntax_check")} + span.beta-feature-badge a( href ng-click="stop()" From 7ce406dd384ccd66c41cddf0cdcbb67406df54fd Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Wed, 3 Aug 2016 16:30:18 +0100 Subject: [PATCH 14/15] switch the compile dropdown menu to left, to avoid overflow into editor --- services/web/app/views/project/editor/pdf.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index 2754e8499d..37f3b53822 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -25,7 +25,7 @@ div.full-size.pdf(ng-controller="PdfController") dropdown-toggle ) span.caret - ul.dropdown-menu.dropdown-menu-right + ul.dropdown-menu.dropdown-menu-left li.dropdown-header #{translate("compile_mode")} li a(href, ng-click="draft = false") From 42388f8b762aa5549298ba3d26aff090ab17efff Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Wed, 3 Aug 2016 16:30:33 +0100 Subject: [PATCH 15/15] fix missing space in pdf jade template --- services/web/app/views/project/editor/pdf.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index 37f3b53822..844f0f51dc 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -123,7 +123,7 @@ div.full-size.pdf(ng-controller="PdfController") span(ng-show="entry.file") {{ entry.file }} span(ng-show="entry.line") , line {{ entry.line }} p.entry-message(ng-show="entry.message") - {{ entry.type }} {{ entry.message }} + | {{ entry.type }} {{ entry.message }} .card.card-hint( ng-if="entry.humanReadableHint" stop-propagation="click"