diff --git a/src/dbp-pdf-preview.js b/src/dbp-pdf-preview.js index 17395c1dee63308c9474859f38dbc576e88c1035..cb0086431dfd14988884dcd7aa7668c01cb267f0 100644 --- a/src/dbp-pdf-preview.js +++ b/src/dbp-pdf-preview.js @@ -25,6 +25,7 @@ export class PdfPreview extends ScopedElementsMixin(DBPLitElement) { this.totalPages = 0; this.isShowPage = false; this.isPageLoaded = false; + this.showErrorMessage = false; this.isPageRenderingInProgress = false; this.isShowPlacement = true; this.canvas = null; @@ -60,6 +61,7 @@ export class PdfPreview extends ScopedElementsMixin(DBPLitElement) { isShowPage: { type: Boolean, attribute: false }, isPageRenderingInProgress: { type: Boolean, attribute: false }, isPageLoaded: { type: Boolean, attribute: false }, + showErrorMessage: { type: Boolean, attribute: false }, isShowPlacement: { type: Boolean, attribute: false }, placeholder: { type: String, attribute: 'signature-placeholder-image-src' }, signature_width: { type: Number, attribute: 'signature-width' }, @@ -195,6 +197,7 @@ export class PdfPreview extends ScopedElementsMixin(DBPLitElement) { async showPDF(file, isShowPlacement = false, placementData = {}) { let item = this.getSignatureRect(); this.isPageLoaded = false; // prevent redisplay of previous pdf + this.showErrorMessage = false; // move signature if placementData was set if (item !== undefined) { @@ -225,6 +228,7 @@ export class PdfPreview extends ScopedElementsMixin(DBPLitElement) { this.pdfDoc = await pdfjs.getDocument({data: data}).promise; } catch (error) { console.error(error); + this.showErrorMessage = true; return; } @@ -561,6 +565,13 @@ export class PdfPreview extends ScopedElementsMixin(DBPLitElement) { .button.is-cancel { color: #e4154b; } + + .error-message{ + text-align: center; + border: 1px solid black; + border-top: 0px; + padding: 15px; + } `; } @@ -575,7 +586,10 @@ export class PdfPreview extends ScopedElementsMixin(DBPLitElement) { </form> --> <div id="pdf-main-container" class="${classMap({hidden: !this.isShowPage})}"> - <dbp-mini-spinner class="${classMap({hidden: this.isPageLoaded})}"></dbp-mini-spinner> + <dbp-mini-spinner class="${classMap({hidden: this.isPageLoaded || this.showErrorMessage})}"></dbp-mini-spinner> + <div class="error-message ${classMap({hidden: !this.showErrorMessage || this.isPageLoaded})}"> + ${i18n.t('pdf-preview.error-message')} + </div> <div class="${classMap({hidden: !this.isPageLoaded})}"> <div id="pdf-meta"> <div class="buttons ${classMap({hidden: !this.isPageLoaded})}"> diff --git a/src/i18n/de/translation.json b/src/i18n/de/translation.json index 48be74fcfbbed230d6c4b2013ccc67ea84dc3cd1..85a9eaadc1516dc380412db45e1568f936ea5ea5 100644 --- a/src/i18n/de/translation.json +++ b/src/i18n/de/translation.json @@ -114,7 +114,8 @@ "page-count": "von {{totalPages}}", "rotate-signature": "Signatur im Uhrzeigersinn rotieren", "rotate": "Signatur rotieren", - "continue": "Platzierung bestätigen" + "continue": "Platzierung bestätigen", + "error-message": "Fehler: Dieses Dokument ist beschädigt." }, "annotation-view": { "delete-all-button-text": "Alle entfernen", diff --git a/src/i18n/en/translation.json b/src/i18n/en/translation.json index 5e9227c067d67c09fcc9b9f4b8d1ca11e71e8bb7..d95e0d7730dcf1a03a321c8cc56bc787c0c43f0c 100644 --- a/src/i18n/en/translation.json +++ b/src/i18n/en/translation.json @@ -114,7 +114,8 @@ "page-count": "of {{totalPages}}", "rotate-signature": "Rotate signature clockwise", "rotate": "Rotate signature", - "continue": "Confirm placement" + "continue": "Confirm placement", + "error-message": "Error: This document is incorrect." }, "annotation-view": { "delete-all-button-text": "Clear all",