Die Weboberfläche öffnet ihr Ergebnis unmittelbar und wechselt die Domäne
Zwei Verbesserungen an der Browserfassung:
Erstens wird die Browserfassung künftig unter https://aendggner.kellertomaten.de/
betrieben. Der kanonische Verweis in index.html, die Erwähnungen im Handbuch
(README.md) und der Kommentar der Nginx-Konfigurationsvorlage sind entsprechend
angepasst.
Zweitens öffnet das Formularskript (app.js) nach abgeschlossener Auswertung die
Synopse (bzw. bei Nur-Text-Ausgabe den gelesenen Text) unmittelbar per
window.open in einem neuen Reiter. Der Verweis unter „Verfügung der Zentralstelle“
bleibt als Hilfsmittel und für die fortgeschriebene Fassung erhalten.
Change-Id: I961773b9bb1035613b4adf7b5f7101671cd44bc8
diff --git a/FASSUNGEN.txt b/FASSUNGEN.txt
index 37da343..269cd7a 100644
--- a/FASSUNGEN.txt
+++ b/FASSUNGEN.txt
@@ -21,6 +21,34 @@
════════════════════════════════════════════════════════════════════════════════
+ Fassung vom 29. August 2026 (zweite Fassung des Tages),
+ zuletzt geändert durch die am 29. August 2026 vorgenommenen Änderungen
+════════════════════════════════════════════════════════════════════════════════
+
+Die kanonische Web-Adresse der Browserfassung lautet fortan
+aendggner.kellertomaten.de (Artikel 1). Das Ergebnis des Vordrucks öffnet sich
+beim Absenden unmittelbar in einem neuen Reiter (Artikel 2).
+
+
+Artikel 1
+Kanonische Web-Adresse
+
+Die Browserfassung wird unter der Domäne aendggner.kellertomaten.de betrieben.
+Die Angabe des kanonischen Verweises in index.html, das Handbuch (README.md) und
+die Konfigurationsvorlage (deploy/nginx-aendggner.conf) sind entsprechend
+angepasst.
+
+
+Artikel 2
+Unmittelbare Öffnung der Synopse
+
+Nach dem Absenden des Vordrucks und abgeschlossener Berechnung öffnet das Skript
+(app.js) das berechnete Ergebnis unmittelbar in einem neuen Browser-Reiter
+(window.open). Der Verweis unter „Verfügung der Zentralstelle“ bleibt als
+Hilfsmittel und für etwaige Zusatzdateien unverändert erhalten.
+
+
+════════════════════════════════════════════════════════════════════════════════
Fassung vom 29. August 2026,
zuletzt geändert durch die am 29. August 2026 vorgenommenen Änderungen
════════════════════════════════════════════════════════════════════════════════
diff --git a/README.md b/README.md
index 6bf124c..c960a80 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@
```
Ohne Einrichtung läuft dasselbe im Browser unter
-<https://aendggner.app.kellertomaten.de/>; die dort angebotenen zwei
+<https://aendggner.kellertomaten.de/>; die dort angebotenen zwei
durchgerechneten Beispiele sind der kürzeste Weg zum ersten Ergebnis
(§ 14).
@@ -147,7 +147,7 @@
## § 3 Bezugsquellen und Anschriften
(1) Die Browserfassung wird betrieben unter
-<https://aendggner.app.kellertomaten.de/>.
+<https://aendggner.kellertomaten.de/>.
(2) Fortlaufende Quelltextquelle ist
<https://git.benkard.de/mulk/aendggner>. Die jeweils betriebene
@@ -1003,7 +1003,7 @@
Browserfassung dient.
(2) Wer die Fassung stattdessen selbst ausliefert — unter einem Unterpfad einer
-bestehenden Domain, wie zuvor unter <https://aendggner.app.kellertomaten.de/> —,
+bestehenden Domain, wie zuvor unter <https://aendggner.kellertomaten.de/> —,
braucht die Vorkompression und fordert sie beim Bau an:
```shell
diff --git a/deploy/nginx-aendggner.conf b/deploy/nginx-aendggner.conf
index 5df1c91..1745438 100644
--- a/deploy/nginx-aendggner.conf
+++ b/deploy/nginx-aendggner.conf
@@ -2,7 +2,7 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Vorlage für die Auslieferung der ÄndGgner-Browserfassung unter
-# https://aendggner.app.kellertomaten.de/.
+# https://aendggner.kellertomaten.de/.
#
# Es gibt keinen Anwendungsprozess: Der Server liefert nur statische Dateien aus
# (Inhalt von target/web/), gerechnet wird im Browser. Weil der Dienst unter einem
diff --git a/src/main/resources/eu/mulk/aendggner/web/app.js b/src/main/resources/eu/mulk/aendggner/web/app.js
index b72db3c..a8bcb22 100644
--- a/src/main/resources/eu/mulk/aendggner/web/app.js
+++ b/src/main/resources/eu/mulk/aendggner/web/app.js
@@ -38,10 +38,12 @@
meldung.append(" · ");
}
const verweis = document.createElement("a");
- verweis.href = URL.createObjectURL(new Blob([inhalt], { type: art }));
+ const url = URL.createObjectURL(new Blob([inhalt], { type: art }));
+ verweis.href = url;
verweis.target = "_blank";
verweis.textContent = aufschrift;
meldung.append(verweis);
+ return url;
}
formular.addEventListener("submit", async (ereignis) => {
@@ -94,16 +96,14 @@
return;
}
- // Kein window.open: Der Aufruf käme nach dem Warten auf den Worker und gälte dem Browser
- // nicht mehr als Nutzerhandlung — er würde als Popup blockiert. Stattdessen ein Link, der
- // sich öffnen und ebenso gut speichern lässt.
if (nurText) {
zeige(
`${ergebnis.text.length.toLocaleString("de-DE")} Zeichen gelesen; ` +
`keine Synopse erstellt. `,
"fertig",
);
- oeffne(ergebnis.text, "text/plain;charset=utf-8", "Gelesenen Text öffnen");
+ const url = oeffne(ergebnis.text, "text/plain;charset=utf-8", "Gelesenen Text öffnen");
+ window.open(url, "_blank");
return;
}
@@ -115,7 +115,8 @@
(ergebnis.abgleich ? `Abgleich: ${ergebnis.abgleich}. ` : ""),
"fertig",
);
- oeffne(ergebnis.html, "text/html;charset=utf-8", "Synopse öffnen");
+ const url = oeffne(ergebnis.html, "text/html;charset=utf-8", "Synopse öffnen");
+ window.open(url, "_blank");
if (neufassungGewuenscht) {
oeffne(
ergebnis.neufassung,
diff --git a/src/main/resources/eu/mulk/aendggner/web/index.html b/src/main/resources/eu/mulk/aendggner/web/index.html
index 40a6649..19618b3 100644
--- a/src/main/resources/eu/mulk/aendggner/web/index.html
+++ b/src/main/resources/eu/mulk/aendggner/web/index.html
@@ -9,7 +9,7 @@
<meta name="description" content="Wendet Änderungsgesetze und Gesetzentwürfe selbsttätig auf ein
Stammgesetz an und zeigt das Ergebnis als zweispaltige Synopse. Die Auswertung läuft
vollständig im Browser; die gewählten Dateien werden nicht übertragen.">
- <link rel="canonical" href="https://aendggner.app.kellertomaten.de/">
+ <link rel="canonical" href="https://aendggner.kellertomaten.de/">
<link rel="icon" href="favicon.svg" type="image/svg+xml">
<link rel="stylesheet" href="style.css">
<script src="app.js" defer></script>