TopLogic - the automated application engine
  • Releases
  • Dokumentation
  • Github
  • Discord
  1. Home
  2. Releases
  3. TL_8.0.0-alpha7
  4. #29420

8.0.0-alpha7
TopLogic Release

2026-07-30

enhancement

critical
#29088
Model-based access rights
#29108
Lightweight UI definition layer (TL Views) based on React UI-Components
major
#28694
Beschreibung von Modellteilen als formatierter Text (Rich Text)
#28708
Standard-Selektion in (Baum-)Tabellen und Grids per TL-Script berechenbar machen
#29102
Add com.top_logic.layout.react module for React/SSE integration
#29221
Automatische Bestimmung möglicher Berechtigungskonfigurationen
#29349
XML-Parse-Funktionen für TL-Script über XMLImporter
#29374
TL-Script: gzip()
#29389
Code-Completion für Variablen ($) im TL-Script-Editor
#29396
Conversation display for TL Views: object-list element, file chips, card panels
#29399
Info-Service-Meldungen: unten statt oben anzeigen und beim Überfahren mit der Maus fixieren
#29400
Introduce a first-class application "operation mode" service (OperationMode enum + ApplicationModeService)
minor
#29085
Neu einloggen bei Session Timeout anstatt Redirect zur Login-Seite
#29089
TL-Script-Funktionen log() und info() um wählbaren Meldungs-Level (INFO, WARN, ERROR) erweitern
#29195
Probleme mit HTML-Attributen und TL-Script
#29306
TL Script: dateFormat() should accept an explicit timezone to format Calendar values losslessly
#29382
Expose a public classpath-driven Workspace.getAppPaths overload
#29385
App archetype should scaffold a standard git-ignored local-credentials overlay (tl_config) by default
#29392
Transaktionsabbruch bei Nicht-2xx Response
#29398
Login-Maske: Statt "Name" besser "Benutzername"

defect

major
#29383
Dead SOCKET_APPENDER (Chainsaw, localhost:4445) in default logging config can stall logging and abort operations under load
#29384
TL-Script resetSequence/generateSequenceId build a different sequence id than SequenceDefaultProvider (suffix/context order), so they cannot reset a provider-managed sequence with a dynamic context
#29394
Editable tables in the React UI: generalized row-set bindings for tabular editing in forms
#29410
Attribut filename der Structured-Text-Bildablage case-sensitive (binär) speichern
#29419
Understandable save failures and form validation feedback in the React view layer
minor
#28816
Referenzwertige Attribute erzeugen Fehler nur bei SingleSelection
#29359
Unsinniger Tooltip bei einigen Hauptreitern
#29360
Sporadische Fehlermeldung im Log: "mainLayout" ist null.
#29361
Invalide Datenbankdefinition für Tag
#29363
Fehlende Validierung von Dialogen bei GOTOs zu Dialogen von unsichtbaren Parents
#29380
Kontextabhängige Auto-Nummerierung schlägt fehl, wenn Kontext und nummeriertes Objekt in einer Transaktion erzeugt werden
#29381
Doppelklick in Grafikkomponente funktioniert nicht zuverlässig
#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
#29402
Baum-Selektion geht bei Aktualisierung der Ansicht (invalidate) verloren
#29412
Flaky TestDynamicComponentService.testIncrementalUpdates: asserts on asynchronous WatchService event after a fixed 10ms sleep
#29416
Anzeige des Änderungslogs schlägt fehl, wenn parallel Änderungen committet werden
#29420
FlowDiagram: Fehlerfall im row-wise Sub-Grid: subGridCols=2 und subGridStartCol=1
#29426
FlowDiagram: Text in PDF-eingebettetem Diagramm ist nicht selektierbar

task

major
#29407
Security-Scan: npm-Abhängigkeiten der React-Module aktualisieren
#29408
Security-Scan: httpcore5 anheben; pdfbox-/azure-Findings bewerten
minor
#29415
Slim down the repository CLAUDE.md and consolidate developer guidance into skills and FAQ articles
defect

minor

#29420

FlowDiagram: Fehlerfall im row-wise Sub-Grid: subGridCols=2 und subGridStartCol=1

Migration

Ein Knoten in einem Sub-Grid, an dem ein Teilbaum hängt, konnte die Verbindungslinien dieses Teilbaums durch seine eigene Box und durch die darunter liegenden Geschwisterknoten hindurch zeichnen. Beobachtet wurde das an einem breiten Knoten C3, der in die Verbindungslinien des Teilbaums von C1 hineinragte (siehe http://tl.bos.local/trac/ticket/29372#comment:9).

Ursache: Die Nachfahren eines Sub-Grid-Kindes werden in die Spalte hinter dem Sub-Grid verschoben, indem der linke Rand des Nachfahren-Blocks auf postGridX gesetzt wird. Das positioniert den Block, nicht den Bus, der ihn versorgt: Ein Kind mit eigenem Sub-Grid hat seinen Bus links seiner linkesten Nachfahrenspalte. Lag der Block bereits rechts von postGridX, wurde er nach links verschoben und nahm den Bus mit - in die eigene Box des Kindes hinein. Die Verschiebung berücksichtigt jetzt zusätzlich childBusX - grid.getMinBusX().

Reihenfolge der Verbindungen

Die Verbindungen eines Knotens bilden eine geordnete Liste und verlassen dessen Bus in dieser Reihenfolge. Das kompakte Packen setzt jeden Kind-Teilbaum an die oberste Position, an der er nicht mit den zuvor gesetzten Geschwistern kollidiert; freier Platz neben dem Teilbaum eines früheren Geschwisters konnte ein später verbundenes Kind über ein früher verbundenes heben. Die Suche ist jetzt nach unten durch den Ankerpunkt des vorherigen Geschwisters begrenzt. (Behebt #29424.)

Schriftart der gerenderten Diagramme

Ein Diagramm wird mit den Textmaßen eines Render-Kontexts vermessen, gerendert wurde es aber in einer Schrift, die davon abweichen konnte - der Text passte dann nicht zu den für ihn reservierten Boxen. Vier Ursachen, jede erst sichtbar, nachdem die vorherige behoben war:

  • Ein eigenständiges SVG-Dokument hat kein Stylesheet und nannte gar keine Schrift.
  • Im React-Zweig hatte Text.fontSize den Vorgabewert 14, so dass jeder Text eine eigene Größe trug und die Größe des Render-Kontexts nie zum Tragen kam. Der Parameter textSize von toSvg blieb dadurch wirkungslos - ein Export mit 24pt sah aus wie einer mit 12pt.
  • Text mit einer CSS-Klasse war von der Vorgabe ausgenommen, obwohl die Messung die Klasse gar nicht kennt.
  • Der Selektor der Vorgaberegel war für eine CSS2-Engine zu neu; Apache Batik, das ein in ein PDF eingebettetes Diagramm zeichnet, ignorierte die Regel vollständig.

Die vermessene Schrift steht jetzt als Präsentationsattribut am Wurzelelement des Diagramms: Text erbt sie, ein Text mit eigener Schrift überschreibt sie ebenso wie eine Stylesheet-Regel - eine an eine Klasse gebundene Symbolschrift funktioniert damit weiterhin -, und der Renderer muss keinen Selektor unterstützen.

Migration

  • Ein Text in einem React-Flow-Diagramm ohne eigene Schriftgröße folgt jetzt dem Render-Kontext statt der bisherigen festen 14 Pixel. Wo eine feste Größe gewünscht ist, muss sie am Text gesetzt werden.
  • Der Parameter textSize von toSvg wirkt im React-Zweig jetzt tatsächlich. Exporte, die ihn abweichend von der Vorgabe setzen, ändern ihre Größe.
  • Ein exportiertes SVG trägt die Schrift am Wurzelelement statt in einer eingebetteten CSS-Regel. Anwendungs-Stylesheets brauchen keine text:not([font-family])/`text:not(font-size)`-Vorgaberegeln mehr; vorhandene können entfallen.
  • Get Started
  • Github
  • Discord
  • Das Unternehmen hinter TopLogic
  • Softwareentwicklung heute
  • Kontakt

© Copyright – Business Operation Systems GmbH

  • top-logic.com
  • Nutzungsbedingungen
  • Impressum
  • Rechtlicher Hinweis
  • Datenschutz
  • EN
  • Login