major
minor
#29089
TL-Script-Funktionen log() und info() um wählbaren Meldungs-Level (INFO, WARN, ERROR) erweitern
#29306
TL Script: dateFormat() should accept an explicit timezone to format Calendar values losslessly
defect
major
#29383
Dead SOCKET_APPENDER (Chainsaw, localhost:4445) in default logging config can stall logging and abort operations under load
minor
#29380
Kontextabhängige Auto-Nummerierung schlägt fehl, wenn Kontext und nummeriertes Objekt in einer Transaktion erzeugt werden
#29390
Teilbaum-Auswahl endet zu früh, wenn die unterste Ebene vom Ebenen-Filter nicht mitgezählt wird
#29393
URL-Routing der React-View-Schicht defekt: ForwardingReactContext delegiert getRouteManager() nicht
#29401
Bilder in einem Bild-Drop-Feld können nicht über das Browser-Kontextmenü kopiert/gespeichert werden
defect
major
#29419
Understandable save failures and form validation feedback in the React view layer
Understandable save failures and form validation feedback (React view layer)
Split out of #29006 (uniqueness constraint), which the changes below are independent of: they improve how validation problems and vetoed commits are surfaced to the user in the React .view.xml form layer, regardless of which constraint produced them.
Scope
- Save gate re-runs constraint checks. Before the form state is applied, FormControl.validateOrThrow() re-runs all constraint checks of the validation model (FormValidationModel.revalidateAll()). Stored results can be outdated when persistent data changed after the value was entered (e.g. a uniqueness conflict introduced by a concurrent commit); checks that consult persistent data must be re-evaluated at save time, not only on form-value changes.
- Understandable command-error snackbar. A failed command's error snackbar reports the detail messages chained as exception causes (naming the object, attribute and problem of a vetoed commit), and reports each distinct message only once (title, message and cause chain can carry the same error key).
- Validation icons as theme font icons. The validation error / warning icons are theme-defined font icons: the field chrome (and the composition table panel) push the resolved icons as state, and a shared FontIcon component renders encoded theme icons, replacing the inline SVG duplicates in field chrome, panel and dropdown options.
- Composition-attribute constraint feedback. Constraints of a composition attribute itself (e.g. a required minimum number of entries) are reflected in the composition field model and displayed as an error line below the composition table panel. Without this, such a constraint would only block saving with no visible location of the problem, because a composition attribute is displayed as a table and has no regular field chrome. (Re-implemented on the current AbstractCompositionControl / CompositionTableControl structure.)