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); +}