Version 2.2.1: pdf.js unter .js -- .mjs kennt kein Webserver
This commit is contained in:
1 parent
e96e4837f1
commit
e70c6e27c1
10 files changed
+25
-11
No files matched your search
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "tesm-license"
|
name = "tesm-license"
|
||||||
version = "2.2.0"
|
version = "2.2.1"
|
||||||
description = "TESM-Lizenzserver -- Kunden, Tickets, Lizenzen, Aktivierung"
|
description = "TESM-Lizenzserver -- Kunden, Tickets, Lizenzen, Aktivierung"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "tesm-core"
|
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"
|
description = "Gemeinsames Anwendungsgeruest (Auth, RBAC, Navigation, Design-System, Migrationen) fuer TESM und TESM-Lizenzserver"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ def create_base_app(
|
|||||||
#: Wortmarke, ohne Zeile darunter; die Marke selbst zeigen beide
|
#: Wortmarke, ohne Zeile darunter; die Marke selbst zeigen beide
|
||||||
#: Anwendungen.
|
#: Anwendungen.
|
||||||
auth_tagline: str = "",
|
auth_tagline: str = "",
|
||||||
app_version: str = "2.2.0",
|
app_version: str = "2.2.1",
|
||||||
built_in_trusted_keys: tuple[str, ...] = (),
|
built_in_trusted_keys: tuple[str, ...] = (),
|
||||||
enable_license: bool = True,
|
enable_license: bool = True,
|
||||||
template_folder: str | None = None,
|
template_folder: str | None = None,
|
||||||
|
|||||||
@@ -16,6 +16,11 @@
|
|||||||
*
|
*
|
||||||
* pdf.js liegt im Paket (static/vendor/pdfjs) und wird erst geladen, wenn
|
* 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.
|
* 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;
|
const MIN_ZOOM = 0.1;
|
||||||
@@ -145,17 +150,17 @@ let pdfjsGeladen = null;
|
|||||||
async function pdfjsLaden(basis) {
|
async function pdfjsLaden(basis) {
|
||||||
if (!pdfjsGeladen) {
|
if (!pdfjsGeladen) {
|
||||||
pdfjsGeladen = (async () => {
|
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.
|
// Der Komponentenbau von pdf.js sucht die Bibliothek unter diesem Namen.
|
||||||
globalThis.pdfjsLib = lib;
|
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
|
// Das Stylesheet von pdf.js zeichnet die Formularfelder. 100 KB gehoeren
|
||||||
// nicht in jeden Seitenaufruf -- also erst hier.
|
// nicht in jeden Seitenaufruf -- also erst hier.
|
||||||
const stil = document.createElement("link");
|
const stil = document.createElement("link");
|
||||||
stil.rel = "stylesheet";
|
stil.rel = "stylesheet";
|
||||||
stil.href = `${basis}pdf_viewer.css`;
|
stil.href = `${basis}pdf_viewer.css`;
|
||||||
document.head.append(stil);
|
document.head.append(stil);
|
||||||
lib.GlobalWorkerOptions.workerSrc = `${basis}pdf.worker.min.mjs`;
|
lib.GlobalWorkerOptions.workerSrc = `${basis}pdf.worker.min.js`;
|
||||||
return { lib, komponenten };
|
return { lib, komponenten };
|
||||||
})().catch((fehler) => {
|
})().catch((fehler) => {
|
||||||
pdfjsGeladen = null;
|
pdfjsGeladen = null;
|
||||||
@@ -333,7 +338,11 @@ export function initFilePreview(wurzel = document) {
|
|||||||
rahmen.src = quelle;
|
rahmen.src = quelle;
|
||||||
if (hinweis) {
|
if (hinweis) {
|
||||||
hinweis.textContent =
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
+6
-1
@@ -1,6 +1,11 @@
|
|||||||
pdf.js 4.10.38 -- https://github.com/mozilla/pdf.js
|
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,
|
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
|
Warum eingebettet und nicht von einem CDN: TESM laeuft in abgeschotteten
|
||||||
Netzen. Was die Oberflaeche braucht, muss im Paket liegen.
|
Netzen. Was die Oberflaeche braucht, muss im Paket liegen.
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "tesm-licensing-server"
|
name = "tesm-licensing-server"
|
||||||
version = "2.2.0"
|
version = "2.2.1"
|
||||||
description = "Serverhaelfte des TESM-Lizenzprotokolls: ausstellen, erneuern, antworten"
|
description = "Serverhaelfte des TESM-Lizenzprotokolls: ausstellen, erneuern, antworten"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
dependencies = ["tesm-licensing==2.2.0", "cryptography>=41"]
|
dependencies = ["tesm-licensing==2.2.1", "cryptography>=41"]
|
||||||
|
|
||||||
[tool.setuptools.packages.find]
|
[tool.setuptools.packages.find]
|
||||||
where = ["src"]
|
where = ["src"]
|
||||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "tesm-licensing"
|
name = "tesm-licensing"
|
||||||
version = "2.2.0"
|
version = "2.2.1"
|
||||||
description = "Ed25519-basiertes Lizenz- und Aktivierungsprotokoll fuer TESM und TESM-Lizenzserver"
|
description = "Ed25519-basiertes Lizenz- und Aktivierungsprotokoll fuer TESM und TESM-Lizenzserver"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
dependencies = ["cryptography>=42"]
|
dependencies = ["cryptography>=42"]
|
||||||
|
|||||||
Reference in new issue
Block a user