diff --git a/apps/tesm-license/pyproject.toml b/apps/tesm-license/pyproject.toml index 5b38763..21cca14 100644 --- a/apps/tesm-license/pyproject.toml +++ b/apps/tesm-license/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "tesm-license" -version = "2.2.0" +version = "2.2.1" description = "TESM-Lizenzserver -- Kunden, Tickets, Lizenzen, Aktivierung" requires-python = ">=3.11" dependencies = [ diff --git a/packages/tesm-core/pyproject.toml b/packages/tesm-core/pyproject.toml index bbbe41e..207dcc0 100644 --- a/packages/tesm-core/pyproject.toml +++ b/packages/tesm-core/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "tesm-core" -version = "2.2.0" +version = "2.2.1" description = "Gemeinsames Anwendungsgeruest (Auth, RBAC, Navigation, Design-System, Migrationen) fuer TESM und TESM-Lizenzserver" requires-python = ">=3.11" dependencies = [ diff --git a/packages/tesm-core/src/tesm_core/app_factory.py b/packages/tesm-core/src/tesm_core/app_factory.py index b7d3cdf..746fee6 100644 --- a/packages/tesm-core/src/tesm_core/app_factory.py +++ b/packages/tesm-core/src/tesm_core/app_factory.py @@ -135,7 +135,7 @@ def create_base_app( #: Wortmarke, ohne Zeile darunter; die Marke selbst zeigen beide #: Anwendungen. auth_tagline: str = "", - app_version: str = "2.2.0", + app_version: str = "2.2.1", built_in_trusted_keys: tuple[str, ...] = (), enable_license: bool = True, template_folder: str | None = None, diff --git a/packages/tesm-core/src/tesm_core/static/tesm_core/js/viewer.js b/packages/tesm-core/src/tesm_core/static/tesm_core/js/viewer.js index 0a568ae..f84cf56 100644 --- a/packages/tesm-core/src/tesm_core/static/tesm_core/js/viewer.js +++ b/packages/tesm-core/src/tesm_core/static/tesm_core/js/viewer.js @@ -16,6 +16,11 @@ * * pdf.js liegt im Paket (static/vendor/pdfjs) und wird erst geladen, wenn * wirklich ein PDF geoeffnet wird: 1,7 MB gehoeren nicht in jeden Seitenaufruf. + * + * Die Dateien heissen ".js" und nicht ".mjs": die mime.types von nginx kennen + * ".mjs" nicht und liefern "application/octet-stream" -- damit lehnt jeder + * Browser ein Modul ab, und zwar ohne dass der Benutzer erfaehrt, warum. Am + * Inhalt aendert die Endung nichts. * ========================================================================== */ const MIN_ZOOM = 0.1; @@ -145,17 +150,17 @@ let pdfjsGeladen = null; async function pdfjsLaden(basis) { if (!pdfjsGeladen) { pdfjsGeladen = (async () => { - const lib = await import(`${basis}pdf.min.mjs`); + const lib = await import(`${basis}pdf.min.js`); // Der Komponentenbau von pdf.js sucht die Bibliothek unter diesem Namen. globalThis.pdfjsLib = lib; - const komponenten = await import(`${basis}pdf_viewer.mjs`); + const komponenten = await import(`${basis}pdf_viewer.js`); // Das Stylesheet von pdf.js zeichnet die Formularfelder. 100 KB gehoeren // nicht in jeden Seitenaufruf -- also erst hier. const stil = document.createElement("link"); stil.rel = "stylesheet"; stil.href = `${basis}pdf_viewer.css`; document.head.append(stil); - lib.GlobalWorkerOptions.workerSrc = `${basis}pdf.worker.min.mjs`; + lib.GlobalWorkerOptions.workerSrc = `${basis}pdf.worker.min.js`; return { lib, komponenten }; })().catch((fehler) => { pdfjsGeladen = null; @@ -333,7 +338,11 @@ export function initFilePreview(wurzel = document) { rahmen.src = quelle; if (hinweis) { hinweis.textContent = - "Dieses Geraet kann die Formularansicht nicht laden -- es bleibt bei der einfachen Anzeige."; + "Die Formularansicht liess sich nicht laden -- es bleibt bei der einfachen Anzeige."; + // Die Leiste traegt den Hinweis. "zeigen('text')" hat sie gerade + // verborgen -- ohne diese Zeile blieb der Fehlschlag unsichtbar, und + // es sah aus, als koennte die Vorschau einfach keine Formulare. + leiste.hidden = false; } } }; diff --git a/packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/HERKUNFT.txt b/packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/HERKUNFT.txt index d3eabf2..d6f75ba 100644 --- a/packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/HERKUNFT.txt +++ b/packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/HERKUNFT.txt @@ -1,6 +1,11 @@ pdf.js 4.10.38 -- https://github.com/mozilla/pdf.js Aus dem npm-Paket pdfjs-dist; nur build/pdf.min.mjs, build/pdf.worker.min.mjs, -web/pdf_viewer.mjs, web/pdf_viewer.css und web/images. Apache-2.0, siehe LICENSE. +web/pdf_viewer.mjs, web/pdf_viewer.css, web/images und standard_fonts. +Apache-2.0, siehe LICENSE. + +Die drei Skriptdateien sind von .mjs auf .js umbenannt: die mime.types von +nginx kennen .mjs nicht, und mit application/octet-stream lehnt jeder Browser +ein Modul ab. Der Inhalt ist unveraendert. Warum eingebettet und nicht von einem CDN: TESM laeuft in abgeschotteten Netzen. Was die Oberflaeche braucht, muss im Paket liegen. diff --git a/packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/pdf.min.mjs b/packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/pdf.min.js similarity index 100% rename from packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/pdf.min.mjs rename to packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/pdf.min.js diff --git a/packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/pdf.worker.min.mjs b/packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/pdf.worker.min.js similarity index 100% rename from packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/pdf.worker.min.mjs rename to packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/pdf.worker.min.js diff --git a/packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/pdf_viewer.mjs b/packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/pdf_viewer.js similarity index 100% rename from packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/pdf_viewer.mjs rename to packages/tesm-core/src/tesm_core/static/tesm_core/vendor/pdfjs/pdf_viewer.js diff --git a/packages/tesm-licensing-server/pyproject.toml b/packages/tesm-licensing-server/pyproject.toml index d11ad8f..5eee250 100644 --- a/packages/tesm-licensing-server/pyproject.toml +++ b/packages/tesm-licensing-server/pyproject.toml @@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta" [project] name = "tesm-licensing-server" -version = "2.2.0" +version = "2.2.1" description = "Serverhaelfte des TESM-Lizenzprotokolls: ausstellen, erneuern, antworten" requires-python = ">=3.11" -dependencies = ["tesm-licensing==2.2.0", "cryptography>=41"] +dependencies = ["tesm-licensing==2.2.1", "cryptography>=41"] [tool.setuptools.packages.find] where = ["src"] diff --git a/packages/tesm-licensing/pyproject.toml b/packages/tesm-licensing/pyproject.toml index 9a54f9b..8e52480 100644 --- a/packages/tesm-licensing/pyproject.toml +++ b/packages/tesm-licensing/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "tesm-licensing" -version = "2.2.0" +version = "2.2.1" description = "Ed25519-basiertes Lizenz- und Aktivierungsprotokoll fuer TESM und TESM-Lizenzserver" requires-python = ">=3.11" dependencies = ["cryptography>=42"]