Handle PDF failure error case

GitOrigin-RevId: 902a97f6f454f09345ba4017b50623fd46e57110
This commit is contained in:
Paulo Reis 2021-05-27 17:00:32 +01:00 committed by Copybot
parent a0dd439e2c
commit 07f44b99f4
5 changed files with 74 additions and 27 deletions

View file

@ -203,6 +203,11 @@
"no_messages": "",
"no_new_commits_in_github": "",
"no_other_projects_found": "",
"no_pdf_error_explanation": "",
"no_pdf_error_reason_unrecoverable_error": "",
"no_pdf_error_reason_no_content": "",
"no_pdf_error_reason_output_pdf_already_exists": "",
"no_pdf_error_title": "",
"no_preview_available": "",
"no_search_results": "",
"no_symbols_found": "",

View file

@ -1,5 +1,5 @@
import PropTypes from 'prop-types'
import { useTranslation } from 'react-i18next'
import { useTranslation, Trans } from 'react-i18next'
import PreviewLogsPaneEntry from './preview-logs-pane-entry'
import Icon from '../../../shared/components/icon'
import { useEditorContext } from '../../../shared/context/editor-context'
@ -59,6 +59,30 @@ function PreviewError({ name }) {
} else if (name === 'projectTooLarge') {
errorTitle = t('project_too_large')
errorContent = <>{t('project_too_much_editable_text')}</>
} else if (name === 'failure') {
errorTitle = t('no_pdf_error_title')
errorContent = (
<>
<Trans i18nKey="no_pdf_error_explanation" />
<ul className="log-entry-formatted-content-list">
<li>
<Trans i18nKey="no_pdf_error_reason_unrecoverable_error" />
</li>
<li>
<Trans
i18nKey="no_pdf_error_reason_no_content"
components={{ code: <code /> }}
/>
</li>
<li>
<Trans
i18nKey="no_pdf_error_reason_output_pdf_already_exists"
components={{ code: <code /> }}
/>
</li>
</ul>
</>
)
}
return errorTitle ? (

View file

@ -490,6 +490,7 @@ App.controller(
} else if (response.status === 'failure') {
$scope.pdf.view = 'errors'
$scope.pdf.failure = true
$scope.pdf.downloadUrl = null
$scope.shouldShowLogs = true
fetchLogs(fileByPath, { pdfDownloadDomain })
} else if (response.status === 'clsi-maintenance') {
@ -515,6 +516,7 @@ App.controller(
}
if (window.showNewLogsUI) {
$scope.$applyAsync(() => {
$scope.pdf.compileFailed = false
// `$scope.clsiErrors` stores the error states nested within `$scope.pdf`
// for use with React's <PreviewPane errors={$scope.clsiErrors}/>
@ -524,13 +526,18 @@ App.controller(
$scope.pdf.renderingError ? { renderingError: true } : null,
$scope.pdf.clsiMaintenance ? { clsiMaintenance: true } : null,
$scope.pdf.clsiUnavailable ? { clsiUnavailable: true } : null,
$scope.pdf.tooRecentlyCompiled ? { tooRecentlyCompiled: true } : null,
$scope.pdf.tooRecentlyCompiled
? { tooRecentlyCompiled: true }
: null,
$scope.pdf.compileTerminated ? { compileTerminated: true } : null,
$scope.pdf.rateLimited ? { rateLimited: true } : null,
$scope.pdf.compileInProgress ? { compileInProgress: true } : null,
$scope.pdf.timedout ? { timedout: true } : null,
$scope.pdf.projectTooLarge ? { projectTooLarge: true } : null,
$scope.pdf.autoCompileDisabled ? { autoCompileDisabled: true } : null
$scope.pdf.autoCompileDisabled
? { autoCompileDisabled: true }
: null,
$scope.pdf.failure ? { failure: true } : null
)
if (
@ -540,6 +547,7 @@ App.controller(
$scope.shouldShowLogs = true
$scope.pdf.compileFailed = true
}
})
}
const IGNORE_FILES = ['output.fls', 'output.fdb_latexmk']

View file

@ -175,6 +175,11 @@
}
}
.log-entry-formatted-content-list {
margin: @margin-xs 0;
padding-left: @padding-md;
}
.first-error-popup {
position: absolute;
z-index: 1;

View file

@ -1,6 +1,11 @@
{
"chat_error": "Could not load chat messages, please try again.",
"reconnect": "Try again",
"no_pdf_error_title": "No PDF",
"no_pdf_error_explanation": "This compile didn't produce a PDF. This can happen if:",
"no_pdf_error_reason_unrecoverable_error": "There is an unrecoverable LaTeX error. If there are LaTeX errors shown below or in the raw logs, please try to fix them and compile again.",
"no_pdf_error_reason_no_content": "The <code>document</code> environment contains no content. If it's empty, please add some content and compile again.",
"no_pdf_error_reason_output_pdf_already_exists": "This project contains a file called <code>output.pdf</code>. If that file exists, please rename it and compile again.",
"logs_pane_info_message": "We are testing a new logs pane",
"logs_pane_info_message_popup": "We are testing a new logs pane. Click here to give feedback.",
"github_symlink_error": "Your Github repository contains symbolic link files, which are not currently supported by Overleaf. Please remove these and try again.",