aboutsummaryrefslogtreecommitdiff
path: root/src/main/resources/eu
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/resources/eu')
-rw-r--r--src/main/resources/eu/mulk/aendggner/web/app.js21
-rw-r--r--src/main/resources/eu/mulk/aendggner/web/index.html18
-rw-r--r--src/main/resources/eu/mulk/aendggner/web/worker.js6
3 files changed, 42 insertions, 3 deletions
diff --git a/src/main/resources/eu/mulk/aendggner/web/app.js b/src/main/resources/eu/mulk/aendggner/web/app.js
index fb55cbd..b72db3c 100644
--- a/src/main/resources/eu/mulk/aendggner/web/app.js
+++ b/src/main/resources/eu/mulk/aendggner/web/app.js
@@ -32,6 +32,11 @@ async function alsBase64(datei) {
/** Hängt der Meldung einen Verweis auf das Ergebnis an; ein Blob, kein Server. */
function oeffne(inhalt, art, aufschrift) {
+ // Es können mehrere Ergebnisse nebeneinander stehen (Synopse und fortgeschriebene Fassung);
+ // dann trennt sie ein Punkt, damit die Aufschriften nicht aneinanderkleben.
+ if (meldung.querySelector("a")) {
+ meldung.append(" · ");
+ }
const verweis = document.createElement("a");
verweis.href = URL.createObjectURL(new Blob([inhalt], { type: art }));
verweis.target = "_blank";
@@ -49,6 +54,8 @@ formular.addEventListener("submit", async (ereignis) => {
return;
}
+ const nachfassungDatei = document.querySelector("#nachfassung").files[0] ?? null;
+ const neufassungGewuenscht = document.querySelector("#neufassung").checked;
const artikel = document.querySelector("#artikel").value.trim();
const stichtag = document.querySelector("#stichtag").value.trim();
const nurText = document.querySelector("#nurtext").checked;
@@ -58,9 +65,10 @@ formular.addEventListener("submit", async (ereignis) => {
zeige("Lade das Rechenwerk (einmalig einige Megabyte) und werte aus …", "arbeit");
try {
- const [stamm, patches] = await Promise.all([
+ const [stamm, patches, nachfassung] = await Promise.all([
alsBase64(stammDatei),
Promise.all(patchDateien.map(alsBase64)),
+ nachfassungDatei ? alsBase64(nachfassungDatei) : null,
]);
if (!worker) {
@@ -76,6 +84,7 @@ formular.addEventListener("submit", async (ereignis) => {
vollstaendig,
artikel: artikel === "" ? null : artikel,
stichtag: stichtag === "" ? null : stichtag,
+ nachfassung,
nurText,
});
});
@@ -102,10 +111,18 @@ formular.addEventListener("submit", async (ereignis) => {
// aufgenommen, so sind das nicht die geänderten Normen, und sie heißen dann anders.
zeige(
`${ergebnis.angewandt} Befehle angewandt, ${ergebnis.manuell} manuell zu prüfen, ` +
- `${ergebnis.normen} ${vollstaendig ? "Normen in der Synopse" : "geänderte Normen"}. `,
+ `${ergebnis.normen} ${vollstaendig ? "Normen in der Synopse" : "geänderte Normen"}. ` +
+ (ergebnis.abgleich ? `Abgleich: ${ergebnis.abgleich}. ` : ""),
"fertig",
);
oeffne(ergebnis.html, "text/html;charset=utf-8", "Synopse öffnen");
+ if (neufassungGewuenscht) {
+ oeffne(
+ ergebnis.neufassung,
+ "text/plain;charset=utf-8",
+ "Fortgeschriebene Fassung öffnen",
+ );
+ }
} catch (e) {
zeige("Verarbeitung fehlgeschlagen: " + (e && e.message ? e.message : e), "fehler");
} finally {
diff --git a/src/main/resources/eu/mulk/aendggner/web/index.html b/src/main/resources/eu/mulk/aendggner/web/index.html
index 69adbdb..40d93bb 100644
--- a/src/main/resources/eu/mulk/aendggner/web/index.html
+++ b/src/main/resources/eu/mulk/aendggner/web/index.html
@@ -160,6 +160,24 @@
ausgewiesen. Ohne Angabe werden alle Befehle angewandt)</span></label>
<input type="date" id="stichtag" name="stichtag" autocomplete="off">
</div>
+ <div class="feld">
+ <label for="nachfassung">Amtliche Nachfassung
+ <span class="erl">(nur auszufüllen, wenn das Ergebnis dagegen zu halten ist: Die
+ Synopse weist alsdann Norm für Norm aus, worin die errechnete Fassung von der
+ amtlichen abweicht. Angenommen werden dieselben Formate wie beim
+ Stammgesetz)</span></label>
+ <input type="file" id="nachfassung" name="nachfassung"
+ accept=".xml,.zip,.pdf,.txt,text/plain,application/pdf">
+ </div>
+ <div class="feld ankreuzfeld">
+ <label>
+ <input type="checkbox" id="neufassung" name="neufassung">
+ Auch die fortgeschriebene Fassung als Klartext ausgeben
+ </label>
+ <p class="erl nachsatz">Sie lässt sich sichern und als Stammgesetz eines weiteren
+ Änderungsheftes wieder einreichen — so entsteht die Fortschreibung über mehrere
+ Hefte hinweg.</p>
+ </div>
<div class="feld ankreuzfeld">
<label>
<input type="checkbox" id="nurtext" name="nurtext">
diff --git a/src/main/resources/eu/mulk/aendggner/web/worker.js b/src/main/resources/eu/mulk/aendggner/web/worker.js
index 259b629..f38d6a7 100644
--- a/src/main/resources/eu/mulk/aendggner/web/worker.js
+++ b/src/main/resources/eu/mulk/aendggner/web/worker.js
@@ -19,7 +19,8 @@ const gestartet = GraalVM.run([], Object.assign(new GraalVM.Config(), {
}));
self.onmessage = async (nachricht) => {
- const { stamm, patches, vollstaendig, artikel, stichtag, nurText } = nachricht.data;
+ const { stamm, patches, vollstaendig, artikel, stichtag, nachfassung, nurText } =
+ nachricht.data;
try {
await gestartet;
await bereit;
@@ -29,6 +30,7 @@ self.onmessage = async (nachricht) => {
artikel: artikel ?? null,
stichtag: stichtag ?? null,
vollstaendig: Boolean(vollstaendig),
+ nachfassung: nachfassung ?? null,
nurText: Boolean(nurText),
});
if (ergebnis.fehler) {
@@ -41,6 +43,8 @@ self.onmessage = async (nachricht) => {
angewandt: Number(ergebnis.angewandt),
manuell: Number(ergebnis.manuell),
normen: Number(ergebnis.normen),
+ neufassung: String(ergebnis.neufassung),
+ abgleich: ergebnis.abgleich ? String(ergebnis.abgleich) : null,
});
}
} catch (e) {