From abc6e7146e4c16ef1bbea8ee5ea52ee44ff0adff Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Tue, 23 Mar 2021 16:59:23 +0100
Subject: [PATCH] Include the activity metadata at build time

This way we can access the metadata at runtime without loading it.
We currently use it to display the activity name and descriptions
as an activity headline and sub headline.
---
 rollup.config.js                                 |  2 +-
 src/activity.js                                  | 16 ++++++++++++++++
 src/dbp-official-signature-pdf-upload.js         |  7 +++++--
 ...p-official-signature-pdf-upload.metadata.json |  0
 src/dbp-qualified-signature-pdf-upload.js        |  7 +++++--
 ...-qualified-signature-pdf-upload.metadata.json |  0
 src/dbp-signature-verification-full.js           |  7 +++++--
 ...dbp-signature-verification-full.metadata.json |  0
 src/dbp-signature-verification.js                |  7 +++++--
 .../dbp-signature-verification.metadata.json     |  0
 src/i18n/de/translation.json                     |  7 -------
 src/i18n/en/translation.json                     |  7 -------
 12 files changed, 37 insertions(+), 23 deletions(-)
 create mode 100644 src/activity.js
 rename {assets => src}/dbp-official-signature-pdf-upload.metadata.json (100%)
 rename {assets => src}/dbp-qualified-signature-pdf-upload.metadata.json (100%)
 rename {assets => src}/dbp-signature-verification-full.metadata.json (100%)
 rename {assets => src}/dbp-signature-verification.metadata.json (100%)

diff --git a/rollup.config.js b/rollup.config.js
index 3b9fa29..77895ef 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -183,7 +183,7 @@ Dependencies:
                 {src: 'assets/*-placeholder.png', dest: 'dist/' + await getDistPath(pkg.name)},
                 {src: 'assets/*.css', dest: 'dist/' + await getDistPath(pkg.name)},
                 {src: 'assets/*.ico', dest: 'dist/' + await getDistPath(pkg.name)},
-                {src: 'assets/*.metadata.json', dest: 'dist'},
+                {src: 'src/*.metadata.json', dest: 'dist'},
                 {src: 'assets/*.svg', dest: 'dist/' + await getDistPath(pkg.name)},
                 {src: 'assets/htaccess-shared', dest: 'dist/shared/', rename: '.htaccess'},
                 {src: 'assets/icon-*.png', dest: 'dist/' + await getDistPath(pkg.name)},
diff --git a/src/activity.js b/src/activity.js
new file mode 100644
index 0000000..ddf7c89
--- /dev/null
+++ b/src/activity.js
@@ -0,0 +1,16 @@
+export class Activity {
+    constructor(data) {
+        this._data = data;
+        this._defaultLang = 'en';
+    }
+
+    getName(lang) {
+        let desc = this._data['name'];
+        return desc[lang] ?? desc['en'];
+    }
+
+    getDescription(lang) {
+        let desc = this._data['description'];
+        return desc[lang] ?? desc['en'];
+    }
+}
\ No newline at end of file
diff --git a/src/dbp-official-signature-pdf-upload.js b/src/dbp-official-signature-pdf-upload.js
index ffdf759..729df96 100644
--- a/src/dbp-official-signature-pdf-upload.js
+++ b/src/dbp-official-signature-pdf-upload.js
@@ -17,6 +17,8 @@ import {name as pkgName} from './../package.json';
 import {getPDFSignatureCount} from './utils.js';
 import {send as notify} from '@dbp-toolkit/common/notification';
 import {OrganizationSelect} from "@dbp-toolkit/organization-select";
+import metadata from './dbp-official-signature-pdf-upload.metadata.json';
+import {Activity} from './activity.js';
 
 const i18n = createI18nInstance();
 
@@ -815,13 +817,14 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
 
     render() {
         const placeholderUrl = commonUtils.getAssetURL(pkgName, 'official-signature-placeholder.png');
+        const activity = new Activity(metadata);
 
         return html`
             <div class="${classMap({hidden: !this.isLoggedIn() || !this.hasSignaturePermissions() || this.isLoading()})}">
                 <div class="field">
-                    <h2>${i18n.t('official-pdf-upload.upload-field-label')}</h2>
+                    <h2>${activity.getName(this.lang)}</h2>
                     <p class="subheadline">
-                        ${i18n.t('official-pdf-upload.sub-headline')}
+                        ${activity.getDescription(this.lang)}
                     </p>
                     <div class="control">
                        
diff --git a/assets/dbp-official-signature-pdf-upload.metadata.json b/src/dbp-official-signature-pdf-upload.metadata.json
similarity index 100%
rename from assets/dbp-official-signature-pdf-upload.metadata.json
rename to src/dbp-official-signature-pdf-upload.metadata.json
diff --git a/src/dbp-qualified-signature-pdf-upload.js b/src/dbp-qualified-signature-pdf-upload.js
index f6e3573..62ad583 100644
--- a/src/dbp-qualified-signature-pdf-upload.js
+++ b/src/dbp-qualified-signature-pdf-upload.js
@@ -16,6 +16,8 @@ import {FileSink} from "@dbp-toolkit/file-handling";
 import {name as pkgName} from './../package.json';
 import {getPDFSignatureCount} from './utils.js';
 import {send as notify} from '@dbp-toolkit/common/notification';
+import metadata from './dbp-qualified-signature-pdf-upload.metadata.json';
+import {Activity} from './activity.js';
 
 const i18n = createI18nInstance();
 
@@ -935,13 +937,14 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
 
     render() {
         const placeholderUrl = commonUtils.getAssetURL(pkgName, 'qualified-signature-placeholder.png');
+        const activity = new Activity(metadata);
 
         return html`
             <div class="${classMap({hidden: !this.isLoggedIn() || !this.hasSignaturePermissions() || this.isLoading()})}">
                 <div class="field ${classMap({"is-disabled": this.isUserInterfaceDisabled()})}">
-                    <h2>${i18n.t('qualified-pdf-upload.upload-field-label')}</h2>
+                    <h2>${activity.getName(this.lang)}</h2>
                     <p class="subheadline">
-                        ${i18n.t('qualified-pdf-upload.sub-headline')}
+                        ${activity.getDescription(this.lang)}
                     </p>
                     <div class="control">
                         
diff --git a/assets/dbp-qualified-signature-pdf-upload.metadata.json b/src/dbp-qualified-signature-pdf-upload.metadata.json
similarity index 100%
rename from assets/dbp-qualified-signature-pdf-upload.metadata.json
rename to src/dbp-qualified-signature-pdf-upload.metadata.json
diff --git a/src/dbp-signature-verification-full.js b/src/dbp-signature-verification-full.js
index 674cecb..e1fbf2a 100644
--- a/src/dbp-signature-verification-full.js
+++ b/src/dbp-signature-verification-full.js
@@ -11,6 +11,8 @@ import {classMap} from 'lit-html/directives/class-map.js';
 import {FileSource} from '@dbp-toolkit/file-handling';
 import JSONLD from "@dbp-toolkit/common/jsonld";
 import {name as pkgName} from './../package.json';
+import metadata from './dbp-signature-verification-full.metadata.json';
+import {Activity} from './activity.js';
 
 const i18n = createI18nInstance();
 
@@ -690,13 +692,14 @@ class SignatureVerificationFull extends ScopedElementsMixin(DBPSignatureLitEleme
 
     render() {
         const placeholderUrl = commonUtils.getAssetURL(pkgName, 'official-signature-placeholder.png');
+        const activity = new Activity(metadata);
 
         return html`
             <div class="${classMap({hidden: !this.isLoggedIn() || !this.hasSignaturePermissions() || this.isLoading()})}">
                 <div class="field">
-                    <h2>${i18n.t('signature-verification.upload-field-label')}</h2>
+                    <h2>${activity.getName(this.lang)}</h2>
                     <p class="subheadline">
-                        ${i18n.t('signature-verification.sub-headline')}
+                        ${activity.getDescription(this.lang)}
                     </p>
                     <div class="control">
                         
diff --git a/assets/dbp-signature-verification-full.metadata.json b/src/dbp-signature-verification-full.metadata.json
similarity index 100%
rename from assets/dbp-signature-verification-full.metadata.json
rename to src/dbp-signature-verification-full.metadata.json
diff --git a/src/dbp-signature-verification.js b/src/dbp-signature-verification.js
index 41a7147..fd1dbb2 100644
--- a/src/dbp-signature-verification.js
+++ b/src/dbp-signature-verification.js
@@ -4,6 +4,8 @@ import {ScopedElementsMixin} from '@open-wc/scoped-elements';
 import DBPSignatureLitElement from "./dbp-signature-lit-element";
 import * as commonUtils from '@dbp-toolkit/common/utils';
 import * as commonStyles from '@dbp-toolkit/common/styles';
+import metadata from './dbp-signature-verification.metadata.json';
+import {Activity} from './activity.js';
 
 const i18n = createI18nInstance();
 
@@ -102,10 +104,11 @@ class SignatureVerification extends ScopedElementsMixin(DBPSignatureLitElement)
     }
 
     render() {
+        const activity = new Activity(metadata);
         return html`
-            <h2>${i18n.t('signature-verification-extern.headline')}</h2>
+            <h2>${activity.getName(this.lang)}</h2>
             <p class="subheadline">
-                ${i18n.t('signature-verification.sub-headline')}
+                ${activity.getDescription(this.lang)}
             </p>
             <p>
                 ${i18n.t('signature-verification-extern.description-text')}
diff --git a/assets/dbp-signature-verification.metadata.json b/src/dbp-signature-verification.metadata.json
similarity index 100%
rename from assets/dbp-signature-verification.metadata.json
rename to src/dbp-signature-verification.metadata.json
diff --git a/src/i18n/de/translation.json b/src/i18n/de/translation.json
index 67032b1..1f2dc67 100644
--- a/src/i18n/de/translation.json
+++ b/src/i18n/de/translation.json
@@ -1,7 +1,5 @@
 {
   "official-pdf-upload": {
-    "upload-field-label": "Dokumente amtssignieren",
-    "sub-headline": "Erlaubt das Hochladen von PDF-Dokumenten, um sie mit einer Amtssignatur zu versehen",
     "upload-text": "Sie können PDF-Dokumente mit einer Maximalgröße von bis zu 32MB pro Dokument hochladen. Die PDF-Dokumente dürfen sich auch in ZIP-Dateien befinden.",
     "upload-area-text": "Sie können in diesem Bereich PDF-Dokumente mit einer Maximalgröße von bis zu 32MB pro Dokument per Drag & Drop oder per Direktauswahl hochladen. Die PDF-Dokumente dürfen sich auch in ZIP-Dateien befinden.",
     "queued-files-label": "Dokumente in der Warteschlange",
@@ -33,8 +31,6 @@
     "add-annotation-title": "Dem PDF eine Kennzahl hinzufügen"
   },
   "qualified-pdf-upload": {
-    "upload-field-label": "Dokument persönlich signieren",
-    "sub-headline": "Erlaubt das Hochladen von PDF-Dokumenten, um sie mit einer persönlichen elektronischen Signatur zu versehen",
     "save-field-label": "{{count}} Datei speichern",
     "save-field-label_plural": "{{count}} Dateien speichern",
     "upload-text": "Sie können PDF-Dokumente mit einer Maximalgröße von bis zu 32MB pro Dokument hochladen. Die PDF-Dokumente dürfen sich auch in ZIP-Dateien befinden.",
@@ -68,8 +64,6 @@
     "file-picker-context": "PDF-Dokumente zum Signieren auswählen"
   },
   "signature-verification": {
-    "upload-field-label": "PDF-Dokumente zum Überprüfen der Signaturen hochladen",
-    "sub-headline": "Erlaubt das Verifizieren von signierten PDF-Dokumenten",
     "upload-text": "Sie können in diesem Bereich PDF-Dokumente mit einer Maximalgröße von bis zu 32MB pro Dokument hochladen. Die PDF-Dokumente dürfen sich auch in ZIP-Dateien befinden.",
     "upload-area-text": "Sie können in diesem Bereich PDF-Dokumente mit einer Maximalgröße von bis zu 32MB pro Dokument per Drag & Drop oder per Direktauswahl hochladen. Die PDF-Dokumente dürfen sich auch in ZIP-Dateien befinden.",
     "queued-files-label": "Dokumente in der Warteschlange",
@@ -99,7 +93,6 @@
     "file-picker-context": "PDF-Dokumente zum Verifizieren auswählen"
   },
   "signature-verification-extern": {
-    "headline": "Signierte Dokumente verifizieren",
     "description-text": "Um eine PDF-Signatur auf ihre Gültigkeit zu überprüfen, benutzen Sie bitte das Verifikationsservice der Rundfunk und Telekom Regulierungs-GmbH. Mit diesem Verifikationsservice können Sie überprüfen, ob das Dokument eine valide Signatur enthält.",
     "link-label": "Zum RTR Verifikationsservice wechseln",
     "adobe-reader-text": "Des Weiteren besteht auch die Möglichkeit, das Dokument lokal mit dem Adobe Reader zu überprüfen.",
diff --git a/src/i18n/en/translation.json b/src/i18n/en/translation.json
index 441d4c9..8781c41 100644
--- a/src/i18n/en/translation.json
+++ b/src/i18n/en/translation.json
@@ -1,7 +1,5 @@
 {
   "official-pdf-upload": {
-    "upload-field-label": "Officially sign",
-    "sub-headline": "Allows upload of PDF-documents to officially sign them",
     "upload-text": "In this area you can upload PDF-documents up to a size of 32MB. The PDF-documents can also be located in a ZIP-file.",
     "upload-area-text": "In this area you can upload PDF-documents up to a size of 32MB via Drag & Drop or by selecting them directly. The PDF-documents can also be located in a ZIP-file.",
     "queued-files-label": "Queued documents",
@@ -33,8 +31,6 @@
     "add-annotation-title": "Add annotation to PDF"
   },
   "qualified-pdf-upload": {
-    "upload-field-label": "Personally Sign Document",
-    "sub-headline": "Allows upload of PDF-documents to personally sign them",
     "save-field-label": "Save {{count}} file",
     "save-field-label_plural": "Save {{count}} files",
     "upload-text": "In this area you can upload PDF-documents up to a size of 32MB. The PDF-documents can also be located in a ZIP-file.",
@@ -68,8 +64,6 @@
     "file-picker-context": "Upload PDF-documents to sign"
   },
   "signature-verification": {
-    "upload-field-label": "Verify signed documents",
-    "sub-headline": "Allows verification of signed PDF-documents",
     "upload-text": "In this area you can upload PDF-documents up to a size of 32MB. The PDF-documents can also be located in a ZIP-file.",
     "upload-area-text": "In this area you can upload PDF-documents up to a size of 32MB via Drag & Drop or by selecting them directly. The PDF-documents can also be located in a ZIP-file.",
     "queued-files-label": "Queued documents",
@@ -99,7 +93,6 @@
     "file-picker-context": "Upload PDF-documents to verify"
   },
   "signature-verification-extern": {
-    "headline": "Verify signed Documents",
     "description-text": "To check a PDF signature for validity, please use the verification service of the Rundfunk und Telekom Regulierungs-GmbH. This verification service allows you to check whether the document contains a valid signature.",
     "link-label": "Switch to the RTR verification service",
     "adobe-reader-text": "Furthermore, it is also possible to verify the signature locally with the Adobe Reader.",
-- 
GitLab