diff --git a/services/web/app/views/project/editor/pdf.pug b/services/web/app/views/project/editor/pdf.pug
index b157c6db05..c5326ab6b3 100644
--- a/services/web/app/views/project/editor/pdf.pug
+++ b/services/web/app/views/project/editor/pdf.pug
@@ -115,6 +115,14 @@ div.full-size.pdf(ng-controller="PdfController")
}"
) {{ pdf.logEntries.errors.length + pdf.logEntries.warnings.length }}
+ a(
+ ng-if="!pdf.downloadUrl"
+ disabled
+ href="#"
+ tooltip=translate('please_compile_pdf_before_download')
+ tooltip-placement="bottom"
+ )
+ i.fa.fa-fw.fa-download
a(
ng-href="{{pdf.downloadUrl || pdf.url}}"
target="_blank"
diff --git a/services/web/frontend/extracted-translation-keys.json b/services/web/frontend/extracted-translation-keys.json
index 387363efe2..78d3af419e 100644
--- a/services/web/frontend/extracted-translation-keys.json
+++ b/services/web/frontend/extracted-translation-keys.json
@@ -55,6 +55,7 @@
"pdf_compile_rate_limit_hit",
"pdf_compile_try_again",
"pdf_rendering_error",
+ "please_compile_pdf_before_download",
"please_set_main_file",
"proj_timed_out_reason",
"project_flagged_too_many_compiles",
diff --git a/services/web/frontend/js/features/preview/components/preview-download-button.js b/services/web/frontend/js/features/preview/components/preview-download-button.js
index 65e4cd764d..f1119644e9 100644
--- a/services/web/frontend/js/features/preview/components/preview-download-button.js
+++ b/services/web/frontend/js/features/preview/components/preview-download-button.js
@@ -21,12 +21,14 @@ function PreviewDownloadButton({
}
}
+ const pdfDownloadDisabled = isCompiling || !pdfDownloadUrl
const buttonElement = (
@@ -35,19 +37,25 @@ function PreviewDownloadButton({
)
+ const hideTooltip = showText && pdfDownloadUrl
+
return (
- {showText ? (
+ {hideTooltip ? (
buttonElement
) : (
{t('download_pdf')}
+
+ {pdfDownloadDisabled
+ ? t('please_compile_pdf_before_download')
+ : t('download_pdf')}
+
}
>
{buttonElement}
diff --git a/services/web/frontend/js/ide/pdf/controllers/PdfController.js b/services/web/frontend/js/ide/pdf/controllers/PdfController.js
index 08df2273b3..67d52718fd 100644
--- a/services/web/frontend/js/ide/pdf/controllers/PdfController.js
+++ b/services/web/frontend/js/ide/pdf/controllers/PdfController.js
@@ -844,6 +844,11 @@ App.controller('PdfController', function(
$scope.pdf.clearingCache = true
const deferred = $q.defer()
+ // disable various download buttons
+ $scope.pdf.url = null
+ $scope.pdf.downloadUrl = null
+ $scope.pdf.outputFiles = []
+
$http({
url: `/project/${$scope.project_id}/output`,
method: 'DELETE',
diff --git a/services/web/frontend/stylesheets/app/editor/toolbar.less b/services/web/frontend/stylesheets/app/editor/toolbar.less
index ae564f45b4..126b8e05bb 100644
--- a/services/web/frontend/stylesheets/app/editor/toolbar.less
+++ b/services/web/frontend/stylesheets/app/editor/toolbar.less
@@ -363,3 +363,9 @@
.formatting-menu-item:nth-of-type(4n + 1) > .formatting-btn {
border-left: none;
}
+
+.toolbar.toolbar-pdf > a[disabled] {
+ cursor: not-allowed;
+ .opacity(0.65);
+ .box-shadow(none);
+}