From 7cc3f7613e148360be7bdc8a6c6d7ff26dc5491c Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 17 Mar 2016 10:00:07 +0000 Subject: [PATCH 01/23] Move the `getCompletions` call for Snippets into the Snippets module. --- .../aceEditor/auto-complete/AutoCompleteManager.coffee | 6 ++---- .../directives/aceEditor/auto-complete/Snippets.coffee | 8 ++++++-- .../aceEditor/auto-complete/SuggestionManager.coffee | 3 +-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee index d2341f04f8..27f5b15a3a 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee @@ -3,7 +3,7 @@ define [ "ide/editor/directives/aceEditor/auto-complete/Snippets" "ace/ace" "ace/ext-language_tools" -], (SuggestionManager, Snippets) -> +], (SuggestionManager, SnippetManager) -> Range = ace.require("ace/range").Range getLastCommandFragment = (lineUpToCursor) -> @@ -38,9 +38,7 @@ define [ enableLiveAutocompletion: false }) - SnippetCompleter = - getCompletions: (editor, session, pos, prefix, callback) -> - callback null, Snippets + SnippetCompleter = new SnippetManager() references = @$scope.$root._references ReferencesCompleter = diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/Snippets.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/Snippets.coffee index 4bc3d16ef4..a637005711 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/Snippets.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/Snippets.coffee @@ -1,6 +1,6 @@ define () -> environments = [ - "abstract", + "abstract", "align", "align*", "equation", "equation*", "gather", "gather*", @@ -96,5 +96,9 @@ define () -> """ meta: "env" }] + class SnippetManager + getCompletions: (editor, session, pos, prefix, callback) -> + console.log ">> get snippet completions" + callback null, snippets - return snippets \ No newline at end of file + return SnippetManager diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee index 559a2c5981..e0c3710358 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SuggestionManager.coffee @@ -28,7 +28,7 @@ define [], () -> # Ignore single letter commands since auto complete is moot then. commandRegex: /\\([a-zA-Z][a-zA-Z]+)/ - + nextCommand: () -> i = @doc.search(@commandRegex) if i == -1 @@ -123,4 +123,3 @@ define [], () -> completionBeforeCursor: completionBeforeCursor completionAfterCursor: completionAfterCursor } - From 115734f82e69f274678ae0084deeb3b0aec729cf Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 17 Mar 2016 10:04:14 +0000 Subject: [PATCH 02/23] Rename Snippets -> SnippetManager --- .../aceEditor/auto-complete/AutoCompleteManager.coffee | 2 +- .../{Snippets.coffee => SnippetManager.coffee} | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) rename services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/{Snippets.coffee => SnippetManager.coffee} (93%) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee index 27f5b15a3a..32a60370c1 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/AutoCompleteManager.coffee @@ -1,6 +1,6 @@ define [ "ide/editor/directives/aceEditor/auto-complete/SuggestionManager" - "ide/editor/directives/aceEditor/auto-complete/Snippets" + "ide/editor/directives/aceEditor/auto-complete/SnippetManager" "ace/ace" "ace/ext-language_tools" ], (SuggestionManager, SnippetManager) -> diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/Snippets.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee similarity index 93% rename from services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/Snippets.coffee rename to services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee index a637005711..5cf040f9d6 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/Snippets.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee @@ -9,7 +9,7 @@ define () -> "verbatim" ] - snippets = for env in environments + staticSnippets = for env in environments { caption: "\\begin{#{env}}..." snippet: """ @@ -20,7 +20,7 @@ define () -> meta: "env" } - snippets = snippets.concat [{ + staticSnippets = staticSnippets.concat [{ caption: "\\begin{array}..." snippet: """ \\begin{array}{${1:cc}} @@ -96,9 +96,10 @@ define () -> """ meta: "env" }] + class SnippetManager getCompletions: (editor, session, pos, prefix, callback) -> console.log ">> get snippet completions" - callback null, snippets + callback null, staticSnippets return SnippetManager From c25c2b676a4144733b8098d3d22cc2c1a7548a98 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 17 Mar 2016 11:14:05 +0000 Subject: [PATCH 03/23] Parse `\newenvironment{}` commands. --- .../auto-complete/SnippetManager.coffee | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee index 5cf040f9d6..d09c8d9013 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee @@ -97,9 +97,24 @@ define () -> meta: "env" }] + CUSTOM_ENVIRONMENT_REGEX = /^\\newenvironment{(\w+)}.*$/gm + + parseCustomEnvironmentNames = (text) -> + names = [] + iterations = 0 + while match = CUSTOM_ENVIRONMENT_REGEX.exec(text) + names.push match[1] + iterations += 1 + if iterations >= 1000 + return names + return names + class SnippetManager getCompletions: (editor, session, pos, prefix, callback) -> - console.log ">> get snippet completions" + # console.log ">> get snippet completions", editor, session, pos, prefix + docText = session.getValue() + customEnvironmentNames = parseCustomEnvironmentNames(docText) + # console.log customEnvironmentNames callback null, staticSnippets return SnippetManager From eebd25351db9e6057183b1f16fadd3d174a28282 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 17 Mar 2016 11:23:53 +0000 Subject: [PATCH 04/23] Add the custom environments to the list of snippets --- .../aceEditor/auto-complete/SnippetManager.coffee | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee index d09c8d9013..cc894ad39d 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee @@ -115,6 +115,19 @@ define () -> docText = session.getValue() customEnvironmentNames = parseCustomEnvironmentNames(docText) # console.log customEnvironmentNames - callback null, staticSnippets + snippets = staticSnippets.concat( + customEnvironmentNames.map (name) -> + { + caption: "\\begin{#{name}}..." + snippet: """ + \\begin{#{name}} + \t$1 + \\end{#{name}} + """ + meta: "env" + + } + ) + callback null, snippets return SnippetManager From d655e99439b227ecfede1a480651c2a6094d0364 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 17 Mar 2016 12:07:21 +0000 Subject: [PATCH 05/23] Parse existing `begin` commands too. --- .../auto-complete/SnippetManager.coffee | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee index cc894ad39d..438e83fd6b 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee @@ -109,14 +109,28 @@ define () -> return names return names + BEGIN_COMMAND_REGEX = /^\\begin{(\w+)}.*$/gm + + parseBeginCommandNames = (text) -> + names = [] + iterations = 0 + while match = BEGIN_COMMAND_REGEX.exec(text) + names.push match[1] + iterations += 1 + if iterations >= 1000 + return names + return names + class SnippetManager getCompletions: (editor, session, pos, prefix, callback) -> # console.log ">> get snippet completions", editor, session, pos, prefix docText = session.getValue() customEnvironmentNames = parseCustomEnvironmentNames(docText) + beginCommandNames = parseBeginCommandNames(docText) # console.log customEnvironmentNames + parsedNames = _.union(customEnvironmentNames, beginCommandNames) snippets = staticSnippets.concat( - customEnvironmentNames.map (name) -> + parsedNames.map (name) -> { caption: "\\begin{#{name}}..." snippet: """ @@ -125,7 +139,6 @@ define () -> \\end{#{name}} """ meta: "env" - } ) callback null, snippets From 95a6e1900e913418c6872e2155dc8b9ac22de7e7 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 17 Mar 2016 14:09:45 +0000 Subject: [PATCH 06/23] Add autocomplete entries for the `end{}` commands --- .../aceEditor/auto-complete/SnippetManager.coffee | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee index 438e83fd6b..d4d8e4ca86 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee @@ -140,6 +140,16 @@ define () -> """ meta: "env" } + ).concat( + # arguably these `end` commands shouldn't be here, as they're not snippets + # but this is where we have access to the `begin` environment names + # *shrug* + parsedNames.map (name) -> + { + caption: "\\end{#{name}}" + value: "\\end{#{name}}" + meta: "env" + } ) callback null, snippets From 229ced6f2f51276ad76bac341a9e9304aadcfcaf Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 17 Mar 2016 14:43:34 +0000 Subject: [PATCH 07/23] Remove Indentation. --- .../directives/aceEditor/auto-complete/SnippetManager.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee index d4d8e4ca86..dce8f96d0e 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee @@ -135,7 +135,7 @@ define () -> caption: "\\begin{#{name}}..." snippet: """ \\begin{#{name}} - \t$1 + $1 \\end{#{name}} """ meta: "env" From 53b46e42cde5d6cf302849cbeb5c5eac836d897d Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 17 Mar 2016 15:27:20 +0000 Subject: [PATCH 08/23] Refactor, take indentation into account. --- .../auto-complete/SnippetManager.coffee | 52 +++++++++---------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee index dce8f96d0e..3b3d4baf3b 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee @@ -97,46 +97,44 @@ define () -> meta: "env" }] - CUSTOM_ENVIRONMENT_REGEX = /^\\newenvironment{(\w+)}.*$/gm - parseCustomEnvironmentNames = (text) -> - names = [] + parseCustomEnvironments = (text) -> + re = /^\\newenvironment{(\w+)}.*$/gm + result = [] iterations = 0 - while match = CUSTOM_ENVIRONMENT_REGEX.exec(text) - names.push match[1] + while match = re.exec(text) + result.push {name: match[1], whitespace: null} iterations += 1 if iterations >= 1000 - return names - return names + return result + return result - BEGIN_COMMAND_REGEX = /^\\begin{(\w+)}.*$/gm - parseBeginCommandNames = (text) -> - names = [] + parseBeginCommands = (text) -> + re = /^\\begin{(\w+)}.*\n([\t ]*).*$/gm + result = [] iterations = 0 - while match = BEGIN_COMMAND_REGEX.exec(text) - names.push match[1] + while match = re.exec(text) + result.push {name: match[1], whitespace: match[2]} iterations += 1 if iterations >= 1000 - return names - return names + return result + return result class SnippetManager getCompletions: (editor, session, pos, prefix, callback) -> - # console.log ">> get snippet completions", editor, session, pos, prefix docText = session.getValue() - customEnvironmentNames = parseCustomEnvironmentNames(docText) - beginCommandNames = parseBeginCommandNames(docText) - # console.log customEnvironmentNames - parsedNames = _.union(customEnvironmentNames, beginCommandNames) + customEnvironments = parseCustomEnvironments(docText) + beginCommands = parseBeginCommands(docText) + parsedItems = _.union(customEnvironments, beginCommands) snippets = staticSnippets.concat( - parsedNames.map (name) -> + parsedItems.map (item) -> { - caption: "\\begin{#{name}}..." + caption: "\\begin{#{item.name}}..." snippet: """ - \\begin{#{name}} - $1 - \\end{#{name}} + \\begin{#{item.name}} + #{item.whitespace || ''}$1 + \\end{#{item.name}} """ meta: "env" } @@ -144,10 +142,10 @@ define () -> # arguably these `end` commands shouldn't be here, as they're not snippets # but this is where we have access to the `begin` environment names # *shrug* - parsedNames.map (name) -> + parsedItems.map (item) -> { - caption: "\\end{#{name}}" - value: "\\end{#{name}}" + caption: "\\end{#{item.name}}" + value: "\\end{#{item.name}}" meta: "env" } ) From 020fd2e88dfa9411807cd05ebb6751a5779f0305 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 17 Mar 2016 15:58:57 +0000 Subject: [PATCH 09/23] De-dupe autocomplete entries --- .../aceEditor/auto-complete/SnippetManager.coffee | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee index 3b3d4baf3b..6dc605e8ea 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee @@ -126,7 +126,12 @@ define () -> docText = session.getValue() customEnvironments = parseCustomEnvironments(docText) beginCommands = parseBeginCommands(docText) - parsedItems = _.union(customEnvironments, beginCommands) + parsedItemsMap = {} + for environment in customEnvironments + parsedItemsMap[environment.name] = environment + for command in beginCommands + parsedItemsMap[command.name] = command + parsedItems = _.values(parsedItemsMap) snippets = staticSnippets.concat( parsedItems.map (item) -> { From 11d77df898d9ecb13da4347dee069ddb9a1bfb46 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Thu, 17 Mar 2016 16:18:46 +0000 Subject: [PATCH 10/23] Fix weird tab behaviour --- .../directives/aceEditor/auto-complete/SnippetManager.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee index 6dc605e8ea..7b7593565d 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/auto-complete/SnippetManager.coffee @@ -138,7 +138,7 @@ define () -> caption: "\\begin{#{item.name}}..." snippet: """ \\begin{#{item.name}} - #{item.whitespace || ''}$1 + #{item.whitespace || ''}$0 \\end{#{item.name}} """ meta: "env" From a704289099fe5d9fd4654f5fa2e86e296a84a804 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Mon, 21 Mar 2016 10:26:39 +0000 Subject: [PATCH 11/23] Show the error view, even when the pdf is in an error state. --- services/web/app/views/project/editor/pdf.jade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index bd611020bd..7b4039b92e 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -32,7 +32,7 @@ div.full-size.pdf(ng-controller="PdfController") a.log-btn( href ng-click="toggleLogs()" - ng-class="{ 'active': (pdf.view == 'logs' || pdf.failure) && !pdf.error && !pdf.timeout && !pdf.uncompiled }" + ng-class="{ 'active': (pdf.view == 'logs' || pdf.failure) && !pdf.timeout && !pdf.uncompiled }" tooltip="#{translate('logs_and_output_files')}" tooltip-placement="bottom" ) @@ -162,7 +162,7 @@ div.full-size.pdf(ng-controller="PdfController") - .pdf-logs(ng-show="(pdf.view == 'logs' || pdf.failure) && !pdf.error && !pdf.timeout && !pdf.uncompiled") + .pdf-logs(ng-show="(pdf.view == 'logs' || pdf.failure) && !pdf.timeout && !pdf.uncompiled") .alert.alert-success(ng-show="pdf.logEntries.all.length == 0") | #{translate("no_errors_good_job")} From 9b22efbd98a9e075d78de10f63d5a06d0c833330 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Mon, 21 Mar 2016 13:20:03 +0000 Subject: [PATCH 12/23] split errors into normal error, and renderingError. --- services/web/app/views/project/editor/pdf.jade | 10 +++++----- .../coffee/ide/pdf/controllers/PdfController.coffee | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index 7b4039b92e..d07f5be611 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -32,7 +32,7 @@ div.full-size.pdf(ng-controller="PdfController") a.log-btn( href ng-click="toggleLogs()" - ng-class="{ 'active': (pdf.view == 'logs' || pdf.failure) && !pdf.timeout && !pdf.uncompiled }" + ng-class="{ 'active': (pdf.view == 'logs' || pdf.failure) && !pdf.error && !pdf.timeout && !pdf.uncompiled }" tooltip="#{translate('logs_and_output_files')}" tooltip-placement="bottom" ) @@ -75,7 +75,7 @@ div.full-size.pdf(ng-controller="PdfController") i.split-screen i.split-screen - .pdf-viewer(ng-show="pdf.url && pdf.view == 'pdf' && !pdf.failure && !pdf.timeout && !pdf.error") + .pdf-viewer(ng-show="pdf.url && pdf.view == 'pdf' && !pdf.failure && !pdf.timeout && !pdf.error && !pdf.renderingError") div( pdfng ng-if="settings.pdfViewer == 'pdfjs'" @@ -97,8 +97,8 @@ div.full-size.pdf(ng-controller="PdfController") i.fa.fa-level-up.fa-flip-horizontal.fa-2x |   #{translate('click_here_to_preview_pdf')} - .pdf-errors(ng-show="pdf.timedout || pdf.error") - .alert.alert-danger(ng-show="pdf.error") + .pdf-errors(ng-show="pdf.timedout || pdf.error || pdf.renderingError") + .alert.alert-danger(ng-show="pdf.error || pdf.renderingError") strong #{translate("server_error")} span #{translate("somthing_went_wrong_compiling")} @@ -162,7 +162,7 @@ div.full-size.pdf(ng-controller="PdfController") - .pdf-logs(ng-show="(pdf.view == 'logs' || pdf.failure) && !pdf.timeout && !pdf.uncompiled") + .pdf-logs(ng-show="(pdf.view == 'logs' || pdf.failure) && !pdf.error && !pdf.timeout && !pdf.uncompiled") .alert.alert-success(ng-show="pdf.logEntries.all.length == 0") | #{translate("no_errors_good_job")} diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 8586d218a7..10d6a1f51b 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -12,7 +12,7 @@ define [ $scope.hasPremiumCompile = $scope.project.features.compileGroup == "priority" $scope.$on "pdf:error:display", () -> - $scope.pdf.error = true + $scope.pdf.renderingError = true $scope.draft = localStorage("draft:#{$scope.project_id}") or false $scope.$watch "draft", (new_value, old_value) -> From 3b35605edcae8f9e399f399560623128ddba35bc Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Mon, 21 Mar 2016 14:05:26 +0000 Subject: [PATCH 13/23] Show logs, even if the compile timed out. --- 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 d07f5be611..843ff07c6c 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -97,7 +97,7 @@ div.full-size.pdf(ng-controller="PdfController") i.fa.fa-level-up.fa-flip-horizontal.fa-2x |   #{translate('click_here_to_preview_pdf')} - .pdf-errors(ng-show="pdf.timedout || pdf.error || pdf.renderingError") + .pdf-errors(ng-show="(pdf.timedout || pdf.error || pdf.renderingError) && pdf.view != 'logs'") .alert.alert-danger(ng-show="pdf.error || pdf.renderingError") strong #{translate("server_error")} span #{translate("somthing_went_wrong_compiling")} From 53dfa841cc3af4b594fd5eada084bd97edcde8c4 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Mon, 21 Mar 2016 15:00:25 +0000 Subject: [PATCH 14/23] Add the beginnings of a clsi-maintenance-mode message --- services/web/app/views/project/editor/pdf.jade | 16 ++++++++-------- .../ide/pdf/controllers/PdfController.coffee | 3 +++ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index 843ff07c6c..a19e374736 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -74,8 +74,9 @@ div.full-size.pdf(ng-controller="PdfController") ) i.split-screen i.split-screen - - .pdf-viewer(ng-show="pdf.url && pdf.view == 'pdf' && !pdf.failure && !pdf.timeout && !pdf.error && !pdf.renderingError") + // end of toolbar + + .pdf-viewer(ng-show="pdf.url && pdf.view == 'pdf' && !pdf.failure && !pdf.timeout && !pdf.error && !pdf.renderingError && !pdf.clsiMaintenance") div( pdfng ng-if="settings.pdfViewer == 'pdfjs'" @@ -96,12 +97,15 @@ div.full-size.pdf(ng-controller="PdfController") |   i.fa.fa-level-up.fa-flip-horizontal.fa-2x |   #{translate('click_here_to_preview_pdf')} - - .pdf-errors(ng-show="(pdf.timedout || pdf.error || pdf.renderingError) && pdf.view != 'logs'") + + .pdf-errors(ng-show="(pdf.timedout || pdf.error || pdf.renderingError || pdf.clsiMaintenance) && pdf.view != 'logs'") .alert.alert-danger(ng-show="pdf.error || pdf.renderingError") strong #{translate("server_error")} span #{translate("somthing_went_wrong_compiling")} + .alert.alert-danger(ng-show="pdf.clsiMaintenance") + strong #{translate("server_error")} + span #{translate("clsi_maintenance")} .alert.alert-danger(ng-show="pdf.timedout") p @@ -158,10 +162,6 @@ div.full-size.pdf(ng-controller="PdfController") span #{translate("project_too_large_please_reduce")} - - - - .pdf-logs(ng-show="(pdf.view == 'logs' || pdf.failure) && !pdf.error && !pdf.timeout && !pdf.uncompiled") .alert.alert-success(ng-show="pdf.logEntries.all.length == 0") | #{translate("no_errors_good_job")} diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 10d6a1f51b..7dbeaee59f 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -37,6 +37,7 @@ define [ $scope.pdf.uncompiled = false $scope.pdf.projectTooLarge = false $scope.pdf.url = null + $scope.pdf.clsiMaintenance = false if response.status == "timedout" $scope.pdf.timedout = true @@ -47,6 +48,8 @@ define [ else if response.status == "failure" $scope.pdf.failure = true fetchLogs() + else if response.status == 'clsi-maintenance' + $scope.pdf.clsiMaintenance = true else if response.status == "success" # define the base url $scope.pdf.url = "/project/#{$scope.project_id}/output/output.pdf?cache_bust=#{Date.now()}" From f58f1c3795536af5fdf54ba27e2e6edc1aec11be Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Mon, 21 Mar 2016 15:16:17 +0000 Subject: [PATCH 15/23] Account for the new too-recently-compiled error. --- services/web/app/views/project/editor/pdf.jade | 8 ++++++-- .../coffee/ide/pdf/controllers/PdfController.coffee | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index a19e374736..1338cffa47 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -76,7 +76,7 @@ div.full-size.pdf(ng-controller="PdfController") i.split-screen // end of toolbar - .pdf-viewer(ng-show="pdf.url && pdf.view == 'pdf' && !pdf.failure && !pdf.timeout && !pdf.error && !pdf.renderingError && !pdf.clsiMaintenance") + .pdf-viewer(ng-show="pdf.url && pdf.view == 'pdf' && !pdf.failure && !pdf.timeout && !pdf.error && !pdf.renderingError && !pdf.clsiMaintenance && !pdf.tooRecentlyCompiled") div( pdfng ng-if="settings.pdfViewer == 'pdfjs'" @@ -98,7 +98,7 @@ div.full-size.pdf(ng-controller="PdfController") i.fa.fa-level-up.fa-flip-horizontal.fa-2x |   #{translate('click_here_to_preview_pdf')} - .pdf-errors(ng-show="(pdf.timedout || pdf.error || pdf.renderingError || pdf.clsiMaintenance) && pdf.view != 'logs'") + .pdf-errors(ng-show="(pdf.timedout || pdf.error || pdf.renderingError || pdf.clsiMaintenance || pdf.tooRecentlyCompiled) && pdf.view != 'logs'") .alert.alert-danger(ng-show="pdf.error || pdf.renderingError") strong #{translate("server_error")} span #{translate("somthing_went_wrong_compiling")} @@ -107,6 +107,10 @@ div.full-size.pdf(ng-controller="PdfController") strong #{translate("server_error")} span #{translate("clsi_maintenance")} + .alert.alert-danger(ng-show="pdf.tooRecentlyCompiled") + strong #{translate("server_error")} + span #{translate("too_recently_compiled")} + .alert.alert-danger(ng-show="pdf.timedout") p strong #{translate("timedout")}. diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 7dbeaee59f..413c59aa03 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -38,6 +38,7 @@ define [ $scope.pdf.projectTooLarge = false $scope.pdf.url = null $scope.pdf.clsiMaintenance = false + $scope.pdf.tooRecentlyCompiled = false if response.status == "timedout" $scope.pdf.timedout = true @@ -50,6 +51,8 @@ define [ fetchLogs() else if response.status == 'clsi-maintenance' $scope.pdf.clsiMaintenance = true + else if response.status == "too-recently-compiled" + $scope.pdf.tooRecentlyCompiled = true else if response.status == "success" # define the base url $scope.pdf.url = "/project/#{$scope.project_id}/output/output.pdf?cache_bust=#{Date.now()}" From 59b131f251ae0d3f1ce5ecb5ac7a2766aeba7a5c Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Tue, 22 Mar 2016 09:39:33 +0000 Subject: [PATCH 16/23] First pass at refactoring the output panel views. --- .../web/app/views/project/editor/pdf.jade | 181 +++++++++--------- .../ide/pdf/controllers/PdfController.coffee | 17 +- 2 files changed, 102 insertions(+), 96 deletions(-) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index 1338cffa47..dc5f5b43bf 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -32,7 +32,7 @@ div.full-size.pdf(ng-controller="PdfController") a.log-btn( href ng-click="toggleLogs()" - ng-class="{ 'active': (pdf.view == 'logs' || pdf.failure) && !pdf.error && !pdf.timeout && !pdf.uncompiled }" + ng-class="{ 'active': shouldShowLogs == true }" tooltip="#{translate('logs_and_output_files')}" tooltip-placement="bottom" ) @@ -75,98 +75,9 @@ div.full-size.pdf(ng-controller="PdfController") i.split-screen i.split-screen // end of toolbar - - .pdf-viewer(ng-show="pdf.url && pdf.view == 'pdf' && !pdf.failure && !pdf.timeout && !pdf.error && !pdf.renderingError && !pdf.clsiMaintenance && !pdf.tooRecentlyCompiled") - div( - pdfng - ng-if="settings.pdfViewer == 'pdfjs'" - pdf-src="pdf.url" - key="{{ project_id }}" - resize-on="layout:main:resize,layout:pdf:resize" - highlights="pdf.highlights" - position="pdf.position" - dbl-click-callback="syncToCode" - ) - iframe( - ng-src="{{ pdf.url }}" - ng-if="settings.pdfViewer == 'native'" - ) - - .pdf-uncompiled(ng-show="pdf.uncompiled && !pdf.compiling") - |   - i.fa.fa-level-up.fa-flip-horizontal.fa-2x - |   #{translate('click_here_to_preview_pdf')} - - .pdf-errors(ng-show="(pdf.timedout || pdf.error || pdf.renderingError || pdf.clsiMaintenance || pdf.tooRecentlyCompiled) && pdf.view != 'logs'") - .alert.alert-danger(ng-show="pdf.error || pdf.renderingError") - strong #{translate("server_error")} - span #{translate("somthing_went_wrong_compiling")} - - .alert.alert-danger(ng-show="pdf.clsiMaintenance") - strong #{translate("server_error")} - span #{translate("clsi_maintenance")} - - .alert.alert-danger(ng-show="pdf.tooRecentlyCompiled") - strong #{translate("server_error")} - span #{translate("too_recently_compiled")} - - .alert.alert-danger(ng-show="pdf.timedout") - p - strong #{translate("timedout")}. - span #{translate("proj_timed_out_reason")} - p - a.text-info(href="https://www.sharelatex.com/learn/Debugging_Compilation_timeout_errors", target="_blank") - | #{translate("learn_how_to_make_documents_compile_quickly")} - - .alert.alert-success(ng-show="pdf.timedout && !hasPremiumCompile") - p(ng-if="project.owner._id == user.id") - strong #{translate("upgrade_for_faster_compiles")} - p(ng-if="project.owner._id != user.id") - strong #{translate("ask_proj_owner_to_upgrade_for_faster_compiles")} - p #{translate("free_accounts_have_timeout_upgrade_to_increase")} - p Plus: - p - ul.list-unstyled - li - i.fa.fa-check   - | #{translate("unlimited_projects")} - - li - i.fa.fa-check   - | #{translate("collabs_per_proj", {collabcount:'Multiple'})} - - li - i.fa.fa-check   - | #{translate("full_doc_history")} - - li - i.fa.fa-check   - | #{translate("sync_to_dropbox")} - - li - i.fa.fa-check   - | #{translate("sync_to_github")} - - li - i.fa.fa-check   - |#{translate("compile_larger_projects")} - - p(ng-controller="FreeTrialModalController", ng-if="project.owner._id == user.id") - a.btn.btn-success.row-spaced-small( - href - ng-class="buttonClass" - sixpack-convert="track_changes_feature_info" - ng-click="startFreeTrial('compile-timeout')" - ) #{translate("start_free_trial")} - - .pdf-errors(ng-show="pdf.projectTooLarge") - .alert.alert-danger - strong #{translate("project_too_large")} - span #{translate("project_too_large_please_reduce")} - - - .pdf-logs(ng-show="(pdf.view == 'logs' || pdf.failure) && !pdf.error && !pdf.timeout && !pdf.uncompiled") + // views + .pdf-logs(ng-show="shouldShowLogs") .alert.alert-success(ng-show="pdf.logEntries.all.length == 0") | #{translate("no_errors_good_job")} @@ -218,6 +129,92 @@ div.full-size.pdf(ng-controller="PdfController") span(ng-show="pdf.showRawLog") #{translate("hide_raw_logs")} pre(ng-bind="pdf.rawLog", ng-show="pdf.showRawLog") + + + div(ng-show="!shouldShowLogs", ng-switch on="pdf.view") + .pdf-uncompiled(ng-switch-when="uncompiled" ng-show="!pdf.compiling") + |   + i.fa.fa-level-up.fa-flip-horizontal.fa-2x + |   #{translate('click_here_to_preview_pdf')} + + .pdf-viewer(ng-switch-when="pdf") + div( + pdfng + ng-if="settings.pdfViewer == 'pdfjs'" + pdf-src="pdf.url" + key="{{ project_id }}" + resize-on="layout:main:resize,layout:pdf:resize" + highlights="pdf.highlights" + position="pdf.position" + dbl-click-callback="syncToCode" + ) + iframe( + ng-src="{{ pdf.url }}" + ng-if="settings.pdfViewer == 'native'" + ) + + .pdf-errors(ng-switch-when="errors") + + .alert.alert-danger(ng-show="pdf.error || pdf.renderingError") + strong #{translate("server_error")} + span #{translate("somthing_went_wrong_compiling")} + + .alert.alert-danger(ng-show="pdf.clsiMaintenance") + strong #{translate("server_error")} + span #{translate("clsi_maintenance")} + + .alert.alert-danger(ng-show="pdf.tooRecentlyCompiled") + strong #{translate("server_error")} + span #{translate("too_recently_compiled")} + + .alert.alert-danger(ng-show="pdf.timedout") + p + strong #{translate("timedout")}. + span #{translate("proj_timed_out_reason")} + p + a.text-info(href="https://www.sharelatex.com/learn/Debugging_Compilation_timeout_errors", target="_blank") + | #{translate("learn_how_to_make_documents_compile_quickly")} + + .alert.alert-success(ng-show="pdf.timedout && !hasPremiumCompile") + p(ng-if="project.owner._id == user.id") + strong #{translate("upgrade_for_faster_compiles")} + p(ng-if="project.owner._id != user.id") + strong #{translate("ask_proj_owner_to_upgrade_for_faster_compiles")} + p #{translate("free_accounts_have_timeout_upgrade_to_increase")} + p Plus: + p + ul.list-unstyled + li + i.fa.fa-check   + | #{translate("unlimited_projects")} + li + i.fa.fa-check   + | #{translate("collabs_per_proj", {collabcount:'Multiple'})} + li + i.fa.fa-check   + | #{translate("full_doc_history")} + li + i.fa.fa-check   + | #{translate("sync_to_dropbox")} + li + i.fa.fa-check   + | #{translate("sync_to_github")} + li + i.fa.fa-check   + |#{translate("compile_larger_projects")} + p(ng-controller="FreeTrialModalController", ng-if="project.owner._id == user.id") + a.btn.btn-success.row-spaced-small( + href + ng-class="buttonClass" + sixpack-convert="track_changes_feature_info" + ng-click="startFreeTrial('compile-timeout')" + ) #{translate("start_free_trial")} + + .pdf-logs(ng-switch-when="logs") + + // // // // + + script(type='text/ng-template', id='clearCacheModalTemplate') .modal-header diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 413c59aa03..7c32e1f533 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -5,6 +5,8 @@ define [ ], (App, LogParser, BibLogParser) -> App.controller "PdfController", ($scope, $http, ide, $modal, synctex, event_tracking, localStorage) -> autoCompile = true + $scope.pdf.view = 'uncompiled' # uncompiled | pdf | errors + $scope.$on "project:joined", () -> return if !autoCompile autoCompile = false @@ -12,6 +14,7 @@ define [ $scope.hasPremiumCompile = $scope.project.features.compileGroup == "priority" $scope.$on "pdf:error:display", () -> + $scope.pdf.view = 'errors' $scope.pdf.renderingError = true $scope.draft = localStorage("draft:#{$scope.project_id}") or false @@ -41,19 +44,26 @@ define [ $scope.pdf.tooRecentlyCompiled = false if response.status == "timedout" + $scope.pdf.view = 'errors' $scope.pdf.timedout = true else if response.status == "autocompile-backoff" + $scope.pdf.view = 'errors' $scope.pdf.uncompiled = true else if response.status == "project-too-large" + $scope.pdf.view = 'errors' $scope.pdf.projectTooLarge = true else if response.status == "failure" + $scope.pdf.view = 'errors' $scope.pdf.failure = true fetchLogs() else if response.status == 'clsi-maintenance' + $scope.pdf.view = 'errors' $scope.pdf.clsiMaintenance = true else if response.status == "too-recently-compiled" + $scope.pdf.view = 'errors' $scope.pdf.tooRecentlyCompiled = true else if response.status == "success" + $scope.pdf.view = 'pdf' # define the base url $scope.pdf.url = "/project/#{$scope.project_id}/output/output.pdf?cache_bust=#{Date.now()}" # add a query string parameter for the compile group @@ -176,14 +186,13 @@ define [ "X-Csrf-Token": window.csrfToken } + $scope.shouldShowLogs = false $scope.toggleLogs = () -> - if !$scope.pdf.view? or $scope.pdf.view == "pdf" - $scope.pdf.view = "logs" - else - $scope.pdf.view = "pdf" + $scope.shouldShowLogs = !$scope.shouldShowLogs $scope.showPdf = () -> $scope.pdf.view = "pdf" + $scope.shouldShowLogs = false $scope.toggleRawLog = () -> $scope.pdf.showRawLog = !$scope.pdf.showRawLog From 4f3755318f8d16e7c01a982739c061dd156662c5 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Tue, 22 Mar 2016 10:24:58 +0000 Subject: [PATCH 17/23] Clean up. --- services/web/app/views/project/editor/pdf.jade | 6 ++---- .../public/coffee/ide/pdf/controllers/PdfController.coffee | 7 ++++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/services/web/app/views/project/editor/pdf.jade b/services/web/app/views/project/editor/pdf.jade index dc5f5b43bf..f633060aaf 100644 --- a/services/web/app/views/project/editor/pdf.jade +++ b/services/web/app/views/project/editor/pdf.jade @@ -76,7 +76,7 @@ div.full-size.pdf(ng-controller="PdfController") i.split-screen // end of toolbar - // views + // logs view .pdf-logs(ng-show="shouldShowLogs") .alert.alert-success(ng-show="pdf.logEntries.all.length == 0") | #{translate("no_errors_good_job")} @@ -131,6 +131,7 @@ div.full-size.pdf(ng-controller="PdfController") pre(ng-bind="pdf.rawLog", ng-show="pdf.showRawLog") + // non-log views (pdf and errors) div(ng-show="!shouldShowLogs", ng-switch on="pdf.view") .pdf-uncompiled(ng-switch-when="uncompiled" ng-show="!pdf.compiling") |   @@ -209,9 +210,6 @@ div.full-size.pdf(ng-controller="PdfController") sixpack-convert="track_changes_feature_info" ng-click="startFreeTrial('compile-timeout')" ) #{translate("start_free_trial")} - - .pdf-logs(ng-switch-when="logs") - // // // // diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 7c32e1f533..99add9a2d1 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -4,8 +4,10 @@ define [ "libs/bib-log-parser" ], (App, LogParser, BibLogParser) -> App.controller "PdfController", ($scope, $http, ide, $modal, synctex, event_tracking, localStorage) -> + autoCompile = true - $scope.pdf.view = 'uncompiled' # uncompiled | pdf | errors + $scope.pdf.view = 'uncompiled' # uncompiled | pdf | errors + $scope.shouldShowLogs = false $scope.$on "project:joined", () -> return if !autoCompile @@ -62,7 +64,7 @@ define [ else if response.status == "too-recently-compiled" $scope.pdf.view = 'errors' $scope.pdf.tooRecentlyCompiled = true - else if response.status == "success" + else if response.status == "success " $scope.pdf.view = 'pdf' # define the base url $scope.pdf.url = "/project/#{$scope.project_id}/output/output.pdf?cache_bust=#{Date.now()}" @@ -186,7 +188,6 @@ define [ "X-Csrf-Token": window.csrfToken } - $scope.shouldShowLogs = false $scope.toggleLogs = () -> $scope.shouldShowLogs = !$scope.shouldShowLogs From 293cb3c73ea71c7f950b07dce3ca1a853e11cb07 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Tue, 22 Mar 2016 10:32:44 +0000 Subject: [PATCH 18/23] fix typo --- .../web/public/coffee/ide/pdf/controllers/PdfController.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 99add9a2d1..88fdbbc76a 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -64,7 +64,7 @@ define [ else if response.status == "too-recently-compiled" $scope.pdf.view = 'errors' $scope.pdf.tooRecentlyCompiled = true - else if response.status == "success " + else if response.status == "success" $scope.pdf.view = 'pdf' # define the base url $scope.pdf.url = "/project/#{$scope.project_id}/output/output.pdf?cache_bust=#{Date.now()}" From 723031f7f3b569b01412e1fa13189c71e05e1e1e Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Tue, 22 Mar 2016 10:32:55 +0000 Subject: [PATCH 19/23] un-show logs on successful run. --- .../web/public/coffee/ide/pdf/controllers/PdfController.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 88fdbbc76a..81df8e7053 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -66,6 +66,7 @@ define [ $scope.pdf.tooRecentlyCompiled = true else if response.status == "success" $scope.pdf.view = 'pdf' + $scope.shouldShowLogs = false # define the base url $scope.pdf.url = "/project/#{$scope.project_id}/output/output.pdf?cache_bust=#{Date.now()}" # add a query string parameter for the compile group From d5c280dc4d4d3dd4f93b5d9d1501dffd1f536aa3 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Tue, 22 Mar 2016 14:38:48 +0000 Subject: [PATCH 20/23] Show the pdf if it was already loaded. This ensures the pdf will be visible if the user switches to fullscreen-view. --- .../public/coffee/ide/pdf/controllers/PdfController.coffee | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 81df8e7053..fe37da4937 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -6,7 +6,9 @@ define [ App.controller "PdfController", ($scope, $http, ide, $modal, synctex, event_tracking, localStorage) -> autoCompile = true - $scope.pdf.view = 'uncompiled' # uncompiled | pdf | errors + + # pdf.view = uncompiled | pdf | errors + $scope.pdf.view = if $scope?.pdf?.url then 'pdf' else 'uncompiled' $scope.shouldShowLogs = false $scope.$on "project:joined", () -> From 12b0e982c8686255d51493db28ea9952f4ece313 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Tue, 22 Mar 2016 14:42:00 +0000 Subject: [PATCH 21/23] Don't raise an error if `output.blg` cannot be found. --- .../web/public/coffee/ide/pdf/controllers/PdfController.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index fe37da4937..003d2a45ba 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -137,7 +137,7 @@ define [ entries.warnings = entries.warnings.concat(biberLogEntries.warnings) proceed() .error (e) -> - console.error ">> error", e + # it's not an error for the output.blg file to not be present proceed() # # # # .error () -> From 2c321a48035acc9623db46103aa8513a5a3d5119 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Tue, 22 Mar 2016 15:51:05 +0000 Subject: [PATCH 22/23] If the compile request errors out, set view to 'errors'. --- .../web/public/coffee/ide/pdf/controllers/PdfController.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 003d2a45ba..7a68850d6c 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -179,6 +179,7 @@ define [ .error () -> $scope.pdf.compiling = false $scope.pdf.error = true + $scope.pdf.view = 'errors' # This needs to be public. ide.$scope.recompile = $scope.recompile From 62ececeef814fc5a253ae7b495259d014f3af421 Mon Sep 17 00:00:00 2001 From: Shane Kilkelly Date: Tue, 22 Mar 2016 16:59:40 +0000 Subject: [PATCH 23/23] show logs on failure. --- .../web/public/coffee/ide/pdf/controllers/PdfController.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee index 7a68850d6c..5847b58e3e 100644 --- a/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee +++ b/services/web/public/coffee/ide/pdf/controllers/PdfController.coffee @@ -59,6 +59,7 @@ define [ else if response.status == "failure" $scope.pdf.view = 'errors' $scope.pdf.failure = true + $scope.shouldShowLogs = true fetchLogs() else if response.status == 'clsi-maintenance' $scope.pdf.view = 'errors'