• v2.5.2 07ae69e3b7

    TESM 2.5.2 Stable

    alientim released this 2026-09-11 20:16:37 +02:00 | 63 commits to main since this release

    • Wartung ist auch in der Rechtematrix ein eigener Bereich -- vorher hing ihr
      Zugang am Kill-Switch der Ueberwachung.
    • Migration 6 uebertraegt den bestehenden Zugang; niemand verliert und
      niemand gewinnt Rechte.
    Downloads
  • v2.5.1 d3c700283a

    TESM 2.5.1 Stable

    alientim released this 2026-09-11 19:16:26 +02:00 | 64 commits to main since this release

    • Lizenzserver: die Sitzungsdauer laesst sich jetzt wirklich einstellen --
      eigene Karte "Sitzungen" mit Leerlauf und laengstmoeglicher Dauer. Das
      bisherige Feld war leer und blieb es auch nach dem Speichern.
    • Beschriftungen mit Umlauten: "Übersicht", "Änderungsprotokoll", "Sicherung
      und Übertragung".
    • Alte deutsche Adressen werden auf die neuen umgeleitet, statt einen 404 zu
      liefern -- offene Tabs und Lesezeichen finden weiter ihr Ziel.
    Downloads
  • v2.5.0 61a47debdc

    TESM 2.5.0 Stable

    alientim released this 2026-09-11 18:57:22 +02:00 | 65 commits to main since this release

    Adressen folgen der Navigation und sind englisch: /monitoring/host-keys,
    /administration/system, /fileshares/mappings. Alte Lesezeichen auf die
    deutschen Adressen laufen ins Leere -- das Menue fuehrt zum selben Ziel.

    • Wartung ist ein eigener Hauptpunkt, "Ueberwachung" heisst "Überwachung",
      aus "Kea-DHCP" wird "DHCP".
    • Die Reihenfolge der Navigation laesst sich aendern (ziehen oder Pfeile),
      inklusive der Unterpunkte.
    • Aenderungsprotokoll: nur die erste Anmeldung eines Kontos, keine Aenderungen
      am eigenen Konto mehr; Zuordnungen nennen beim Aendern was, beim Loeschen
      welche -- und das Loeschen ist eine Warnung.
    • Terminal: Switche und Clients getrennt abschaltbar.
    Downloads
  • v2.4.1 bec74e6936

    TESM 2.4.1 Stable

    alientim released this 2026-09-10 02:00:32 +02:00 | 66 commits to main since this release

    Die frische Passwortbestaetigung kommt jetzt aus dem Rechtemodell

    Im Modell stand seit jeher, dass Geheimnisse (S) und Exporte (E) eine
    frische Bestaetigung verlangen -- durchgesetzt wurde das nirgends. Jede Route
    entschied selbst, und das Ergebnis war uneinheitlich: eine Lizenz
    herunterladen fragte nach, dieselbe Lizenz per Mail verschicken nicht.
    Audit- und Verlaufsexport fragten ebenfalls nicht.

    Jetzt fragt der Rechtedekorator das Modell. Eine neue Route mit einem heiklen
    Recht kann die Bestaetigung damit nicht mehr vergessen; ein Test durchsucht
    beide Anwendungen und laesst keine weitere Luecke zu.

    Eine Ausnahme, sichtbar an der Ressource: das Herunterladen aus einer
    Dateifreigabe. Dort ist es der Alltag und nicht der Sonderfall -- alle 15
    Minuten ein Passwort waere Schikane. Die Grenze zieht dort das Recht selbst.

    Im Alltag faellt der Unterschied kaum auf: die Anmeldung gilt als frische
    Bestaetigung, das Fenster sind 15 Minuten (REAUTH_VALID_MINUTES). Ein Aufruf
    per fetch bekommt 403 mit Klartext statt einer Umleitung auf die Anmeldeseite.

    Downloads
  • v2.4.0 d2679361bc

    TESM 2.4.0 Stable

    alientim released this 2026-09-10 00:08:48 +02:00 | 67 commits to main since this release

    Eigene Rechtezeile: PDF-Formulare

    Ein ausgefuelltes Formular abzulegen hing bisher am Recht Anlegen -- wie ein
    Upload. Jetzt gibt es dafuer eine eigene Zeile im Bereich Dateifreigaben:

    Bedeutung
    R Ansehen in der Vorschau ausfuellen (ohne Speichern)
    C Anlegen ausgefuellt speichern -- abgeschlossen, Felder gesperrt
    U Bearbeiten ausgefuellt speichern -- weiter ausfuellbar, inklusive Bild

    Damit ist das Formularrecht vom Umbenennen getrennt: wer nur anlegen darf, legt
    nur endgueltige Fassungen ab. Wer bearbeiten darf, hat beide Wege.

    Geprueft wird die Datei, nicht das Auswahlfeld im Browser: traegt das
    hochgeladene PDF noch Formularfelder und das Recht fehlt, wird es abgewiesen.

    Ohne Ausfuellrecht zeigt die Vorschau das Dokument, wie es ist -- mit den Marken
    aus der Datei statt der Bedienelemente des Browsers.

    Herunterladen ist Exportieren

    Dateifreigaben bekommt die Spalte E. Eine Vorschau bleibt im Haus, eine
    heruntergeladene Datei nicht -- genau die Bedeutung aus der Legende der Matrix.

    Migration

    Jede Gruppe behaelt ihre bisherige Reichweite: fileshare.view bringt
    fileshare.export und fileshare_pdf.view, fileshare.create bringt
    fileshare_pdf.create, fileshare.edit bringt fileshare_pdf.edit. Ohne
    diesen Schritt koennte nach dem Update niemand mehr herunterladen oder
    speichern, obwohl sich an den Gruppen nichts geaendert hat.

    Downloads
  • v2.3.3 20c7fd8813

    TESM 2.3.3 Stable

    alientim released this 2026-09-09 23:43:50 +02:00 | 68 commits to main since this release

    Zwei Arten zu speichern

    In der Speicherzeile steht jetzt, was aus dem Formular werden soll:

    • Formular -- weiter ausfuellbar (Vorgabe): alle Felder bleiben, und das
      Foto wird das Aussehen des Bildknopfes. Damit ist es sichtbar und laesst
      sich beim naechsten Oeffnen austauschen. Vorher wurde es in die Seite
      gestempelt und der Knopf entfernt -- danach ging kein neues Bild mehr.
    • Abgeschlossen -- Felder gesperrt: alle Felder werden Teil der Seite.
      Heraus kommt ein PDF ohne Formular; nichts laesst sich mehr verstellen, gut
      zum Ablegen und Drucken.

    Ohne Bild und ohne Abschluss bleibt pdf-lib ungeladen -- der haeufige Fall
    kostet nichts.

    Downloads
  • v2.3.2 eaca6f7990

    TESM 2.3.2 Stable

    alientim released this 2026-09-09 23:36:08 +02:00 | 69 commits to main since this release

    Namen ohne Endung

    Beim Umbenennen und beim Speichern eines ausgefuellten Formulars steht
    nur noch der Name im Feld -- die Endung kommt von der Datei selbst. Eine Datei,
    die auf .pdf.txt oder auf gar nichts endet, oeffnet auf einer Freigabe nichts
    mehr. Wer die Endung mittippt, bekommt sie nicht doppelt; Verzeichnisse behalten
    ihren Namen unveraendert.

    Ankreuzfelder sind wieder lesbar

    pdf.js malt Formularfelder mit Systemfarben und ueberlaesst Ankreuzfelder dem
    Browser. Im dunklen Design heisst CanvasText weiss -- auf weissem Papier
    also unsichtbar. Ein PDF ist immer heller Grund; fuer diesen Ausschnitt gilt
    jetzt das helle Schema.

    Die farbigen Originale (rotes Kreuz, gruener Haken) bleiben, wo sie zaehlen: in
    der Datei. Beim Ausfuellen ersetzt pdf.js die Felder durch Bedienelemente des
    Browsers -- anders liessen sie sich nicht anfassen --, die gespeicherte Datei
    traegt aber weiter die Darstellung aus dem Dokument.

    Hochkant mehr Hoehe

    Die Obergrenze von 760 Pixeln passt zu einem Querformat-Monitor; auf einem
    Tablet oder einem hochkant stehenden Schirm verschenkte sie den halben
    Bildschirm. Dort nimmt die Vorschau jetzt die Hoehe, die da ist -- auf
    820x1180 sind das 926 statt 760 Pixel, auf 1080x1920 sogar 1655. Im Querformat
    bleibt alles wie bisher.

    Downloads
  • v2.3.1 4eb1c0c2d8

    TESM 2.3.1 Stable

    alientim released this 2026-09-09 23:11:53 +02:00 | 70 commits to main since this release

    Formularfelder sitzen jetzt an ihren Kaesten

    Die Felder waren nach rechts unten verschoben, immer weiter je weiter unten sie
    lagen. Ursache: die Seite von pdf.js traegt einen 9-Pixel-Rahmen, und das
    globale box-sizing: border-box der Oberflaeche rechnete ihn nach innen -- die
    Leinwand wurde 18 Pixel schmaler als die Ebene mit den Feldern.

    Das Bildfeld ist benutzbar

    Der Kasten fuer das Foto ist in solchen Formularen ein Acrobat-Knopf mit der
    Aktion buttonImportIcon. Kein Browser fuehrt die aus, auch Edge nicht.

    Solche Knoepfe bekommen jetzt eine eigene Schaltflaeche Bild einsetzen -- auf
    einem iPad bietet sie Kamera oder Fotos an. Das Bild erscheint sofort im Kasten
    und wird beim Speichern in die Datei gestempelt; in der ausgefuellten Kopie
    faellt der Knopf weg, damit nichts das Foto verdeckt. Die Vorlage bleibt
    unberuehrt.

    Das Foto geht durch eine Leinwand: daraus wird ein JPEG (auf einem iPad also
    auch aus HEIC), und ein 12-Megapixel-Bild wird auf ein Mass verkleinert, das ein
    Formular nicht sprengt. pdf-lib (MIT) liegt dafuer im Paket und wird erst
    geladen, wenn wirklich ein Bild eingesetzt wird.

    Kleinigkeit

    Ein leeres Ordnerfeld beim Speichern heisst jetzt Wurzelverzeichnis -- so wie es
    daneben steht.

    Downloads
  • v2.3.0 c0a6dd057c

    TESM 2.3.0 Stable

    alientim released this 2026-09-09 22:41:11 +02:00 | 71 commits to main since this release

    Ausgefuellte Formulare: Ordner und Name waehlen

    Bisher landete das ausgefuellte Formular ohne Rueckfrage neben dem Original. Ein
    ausgefuellter Fehlerbericht gehoert aber eher in den Ordner des Vorgangs als
    neben die leere Vorlage.

    Die Vorschau fragt jetzt nach Ordner und Dateiname und schlaegt beides
    vor: der Ordner, in dem man gerade ist, und der Name der Vorlage mit dem Zusatz
    -ausgefuellt. Die Ordner der Freigabe stehen als Liste bereit; ein Pfad darf
    auch getippt werden. Eine vorhandene Datei wird nur ueberschrieben, wenn
    Vorhandene ersetzen angekreuzt ist.

    Drei Fehler aus der Praxis

    • Nachgeladene Dateien trugen keine Version. nginx liefert /core-assets/
      mit expires 7d -- nach einem Update lief also tagelang der alte Betrachter
      weiter. viewer.js bekommt jetzt die Version von app.js, pdf.js die seiner
      eigenen Adresse.
    • Der PDF-Bereich rechnete mit genau einer Leiste. Die neue Speicherzeile lag
      damit unter dem Dialogrand.
    • Der Aufraeumfaden der Dateifreigaben lief nie: time war nicht importiert,
      der erste sleep warf einen NameError, und weil der vor dem try stand, starb
      der Faden still -- abgelaufene Einbindungen wurden nie geloest.

    Der Hinweis beim Rueckfall nennt jetzt zusaetzlich den Grund, den der Browser
    meldet. Wenn die Formularansicht auf einem Geraet nicht laedt, steht dort, woran
    es liegt.

    Downloads
  • v2.2.1 8c2cd10ee4

    TESM 2.2.1 Stable

    alientim released this 2026-09-09 22:06:24 +02:00 | 72 commits to main since this release

    Formularfelder erscheinen jetzt wirklich

    In 2.2.0 blieben sie auf einer echten Installation aus -- in Safari wie in
    Chromium. Der Grund lag nicht in pdf.js: die mime.types von nginx kennen die
    Endung .mjs nicht und liefern application/octet-stream. Ein
    <script type="module"> und ein Modul-Worker lehnen das ab, also wurde pdf.js
    nie geladen und die Vorschau fiel auf den einfachen Rahmen zurueck -- und dort
    gibt es keine Formularfelder.

    Im Test fiel das nicht auf, weil dort Flask die Dateien ausliefert: Python kennt
    .mjs. Erst durch nginx trat es auf.

    Die Dateien heissen deshalb jetzt .js. Am Inhalt aendert das nichts, und ein
    Hygienetest verbietet ab jetzt jede .mjs im Paket.

    Ausserdem: der Hinweis "Formularansicht liess sich nicht laden" landete in
    einer Leiste, die derselbe Aufruf gerade verborgen hatte -- der Fehlschlag war
    unsichtbar. Jetzt steht er da, wo man ihn liest.

    Downloads