Version 2.6.1: die Speichernzeile fuehrt zur Entscheidung

This commit is contained in:
alientim committed 2026-09-11 21:03:25 +02:00
1 parent 724052ae28
commit de9c0d4fbd
7 files changed
+37 -7

No files matched your search

+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "tesm-license"
version = "2.6.0"
version = "2.6.1"
description = "TESM-Lizenzserver -- Kunden, Tickets, Lizenzen, Aktivierung"
requires-python = ">=3.11"
dependencies = [
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "tesm-core"
version = "2.6.0"
version = "2.6.1"
description = "Gemeinsames Anwendungsgeruest (Auth, RBAC, Navigation, Design-System, Migrationen) fuer TESM und TESM-Lizenzserver"
requires-python = ">=3.11"
dependencies = [
@@ -148,7 +148,7 @@ def create_base_app(
#: Wortmarke, ohne Zeile darunter; die Marke selbst zeigen beide
#: Anwendungen.
auth_tagline: str = "",
app_version: str = "2.6.0",
app_version: str = "2.6.1",
built_in_trusted_keys: tuple[str, ...] = (),
enable_license: bool = True,
template_folder: str | None = None,
@@ -847,6 +847,25 @@
flex: 1 1 12rem;
margin: 0;
}
/* Die Entscheidung steht rechts und der Haken darueber: er gehoert zum
Speichern, nicht zu den Feldern davor. */
.viewer__saveaktionen {
margin-left: auto;
display: flex;
flex-direction: column;
align-items: flex-end;
gap: var(--sp-2);
}
.viewer__saveknoepfe {
display: flex;
gap: var(--sp-2);
}
/* Nach "gibt es schon": der Haken ist die Antwort -- also faellt er auf. */
.viewer__saveaktionen .check.is-gefragt {
outline: 2px solid var(--accent);
outline-offset: 3px;
border-radius: var(--r-xs);
}
/* Eigener Name: ".field--inline" gibt es schon und steht dort fuer
"waagerecht" -- diese Regel haette sie app-weit umgestellt. */
.viewer__feld {
@@ -699,6 +699,7 @@ export function initFilePreview(wurzel = document) {
const ordnerFeld = stueck("ordner");
const nameFeld = stueck("name");
const ersetzenFeld = stueck("ersetzen");
const ersetzenKasten = stueck("ersetzenfeld");
const jetzt = stueck("jetzt");
const abbrechen = stueck("abbrechen");
const modusFeld = stueck("modus");
@@ -846,8 +847,12 @@ export function initFilePreview(wurzel = document) {
// Ohne Endung: die haengt der Server an. Eine Datei, die auf ".pdf.txt"
// oder auf gar nichts endet, oeffnet auf einer Freigabe nichts mehr.
// Der Zusatz haelt die Vorlage heil, auch wenn jemand blind speichert.
nameFeld.value = datei.replace(/\.pdf$/i, "") + "-ausgefuellt";
// Einmal "-ausgefuellt" reicht: wer eine ausgefuellte Fassung noch einmal
// oeffnet und speichert, bekam sonst "...-ausgefuellt-ausgefuellt".
const rumpfname = datei.replace(/\.pdf$/i, "");
nameFeld.value = /-ausgefuellt$/i.test(rumpfname) ? rumpfname : `${rumpfname}-ausgefuellt`;
ersetzenFeld.checked = false;
ersetzenKasten?.classList.remove("is-gefragt");
};
/* Unterschreiben: Name tippen, zeichnen, ins Dokument setzen. */
@@ -973,6 +978,12 @@ export function initFilePreview(wurzel = document) {
// Zeile bleibt offen: meist ist es ein Name, der schon vergeben ist.
console.error("Formular speichern", fehler);
window.tesm.showToast(fehler.message || "Speichern fehlgeschlagen.", "danger");
// Genau dieser Fall hat eine Antwort auf der Zeile -- dann zeigen wir
// auch darauf, statt es bei einer Meldung zu belassen.
if (fehler.status === 409) {
ersetzenKasten?.classList.add("is-gefragt");
ersetzenFeld?.focus();
}
} finally {
jetzt.disabled = false;
jetzt.textContent = vorher;
@@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta"
[project]
name = "tesm-licensing-server"
version = "2.6.0"
version = "2.6.1"
description = "Serverhaelfte des TESM-Lizenzprotokolls: ausstellen, erneuern, antworten"
requires-python = ">=3.11"
dependencies = ["tesm-licensing==2.6.0", "cryptography>=41"]
dependencies = ["tesm-licensing==2.6.1", "cryptography>=41"]
[tool.setuptools.packages.find]
where = ["src"]
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "tesm-licensing"
version = "2.6.0"
version = "2.6.1"
description = "Ed25519-basiertes Lizenz- und Aktivierungsprotokoll fuer TESM und TESM-Lizenzserver"
requires-python = ">=3.11"
dependencies = ["cryptography>=42"]