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

8.0.0-alpha1
TopLogic Release

2026-03-31

enhancement

major
#28994
TableComponent: ConfigKey sollte anpassbar sein
#29055
User-specified CSS classes cannot override default numeric alignment in table columns
#29084
JSON Schema Support for Typed Configuration
#29092
Multi-factor authentication and self-service account management
minor
#29037
Workflows beim Anwendungsstart hochladen/aktualisieren
#29095
Keine feste Referenz auf tl-build-processor in tl-parent-build
#29204
TreeGrid Modelbuilder API: Knotenprädikat bekommt Komponentenmodell nicht
nice-to-have
#29103
REST Client JSON Parser gegen leeren Content robust machen

defect

critical
#29080
Unerwünschte Zeilenobjekte in Tabellen bei Änderungen aus anderen Session
#29199
XSS-Schwachstelle in /jsp/openapi/server/displayAPISpec.jsp
major
#28674
Security Issues im UMLJS Projekt
#28710
Accounts mit wiederverwendetem Kontakt haben keine Berechtigung
#28993
Filter von dynamischen Spalten ignorieren den Attributtyp
#29042
Fehler in Spaltenfilter nach Double-Werten
#29107
StackOverflowError beim Zurückrollen im Transaktionsmonitor
#29111
JavaDoc-based I18N generation ignores custom ResKey in I18NConstants
minor
#27850
Modelleditor verschluckt Klassifikation mit Kleiner-Zeichen im Namen
#28456
Referenz auf fehlende Dateien in subsession.jsp
#28485
Immutable/Disbled Booleanfelder über Tab erreichbar/fokusierbar
#28651
Unnötiger Platz bei Inline-Tabellen
#28725
Sinnlose Scroll-Bar im Hilfe-Editor
#29053
TL-Script: format() mit null input liefert IllegalArgumentException
#29061
Fehlende Ersetzung von KnowledgeItem durch ObjectKey in Collections in Queries
#29066
"SafeHTML not started" Fehler bei scripted Tests
#29069
Ein berechnetes Attribut vom Typ "Allg. Suchausdruck" kann keine Closure zurückgeben
#29073
Auf abstrakte Attribute kann in transienten Objekten zugegriffen werden
#29074
In einer Wertetransformation eines Komponentenkanals kann nicht auf die Formulardaten einer Komponente zugegriffen werden
#29075
Nach Modell-Änderung können invalide gewordene berechnete Attribute nicht mehr editiert werden
#29076
API-Key in REST-Schnittstellenkonfiguration wird nicht verborgen
#29087
Fehlerhafter Zugriff auf den D&D Cache im Browser
#29091
Werte eines Kompositionsattribut nicht bearbeitbar, wenn im gleichen Formular vorher verwendet
#29106
Fehler beim Restart der KnowledgeBase
#29112
Update minimatch and serialize-javascript to fix CVE-2026-27903, CVE-2026-27904, and GHSA-5c6j-r48x-rmvq
#29197
Eclipse-Fehler nach Dependency-Update: maven-jar-plugin 3.5.0 verursacht „outside of a scoping block"-Fehler in m2e

update

critical
#29110
Update dependency com.fasterxml.jackson.core:jackson-core to v2.21.1 [SECURITY]
enhancement

major

#29055

User-specified CSS classes cannot override default numeric alignment in table columns

LayoutFramework

Problem Description

Table columns displaying numeric attributes (INT, FLOAT) are automatically formatted with right-alignment by adding the CSS class tblRight. When a user specifies custom CSS classes for such a column, the custom classes are additive rather than replacing the default behavior.

This means users cannot:

  • Override the default right-alignment for numeric columns
  • Remove alignment entirely (display as normal/left-aligned)
  • Specify alternative alignments (e.g., center-aligned numbers)

The tblRight class remains applied alongside any user-specified classes, causing the numeric content to stay right-aligned regardless of user configuration.

Solution

Added an override option to CSS class configuration. When enabled, the specified CSS class replaces all existing classes instead of being added to them.

Usage

Column Configuration

In table column configuration, use the cssClassOverride property:

Example 1: Override with center alignment

#!xml
<css-classes 
    cssClass="tblCenter" 
    cssClassOverride="true"/>

Example 2: Remove alignment (display as normal/left-aligned)

#!xml
<css-classes 
    cssClassOverride="true"/>

Similarly for header classes:

#!xml
<css-classes 
    cssHeaderClass="myHeaderClass" 
    cssHeaderClassOverride="true"/>

Model Annotation

In the model definition, use the override property on the css-class annotation:

Example 1: Override with custom class

#!xml
<attribute name="price" type="tl.core:Float">
    <annotations>
        <css-class 
            value="tblCenter" 
            override="true"/>
    </annotations>
</attribute>

Example 2: Remove default alignment

#!xml
<attribute name="amount" type="tl.core:Integer">
    <annotations>
        <css-class override="true"/>
    </annotations>
</attribute>

Configuration Properties

WithColumnCssClasses (Column Configuration)

  • cssClassOverride (boolean, default: false) When true, the cssClass replaces any existing CSS classes instead of being added to them.
  • cssHeaderClassOverride (boolean, default: false) When true, the cssHeaderClass replaces any existing header CSS classes instead of being added to them.

TLCssClass (Model Annotation)

  • override (boolean, default: false) When true, the specified CSS class replaces any existing classes instead of being added to them.

Behavior

== When override = false (default) ==

  • CSS classes are additive (existing behavior)
  • Custom classes are added to default classes
  • Example: numeric column gets both tblRight and custom class

== When override = true ==

  • CSS classes are replaced
  • Custom class replaces all existing classes
  • If no custom class specified, all existing classes are removed
  • Example: numeric column loses tblRight class

Use Cases

This solution addresses scenarios where:

  • Aesthetic alignment: Numbers should be centered for visual consistency
  • Different data types: Numeric IDs or codes should align differently than financial values
  • Mixed content: Text and numbers in a single column need uniform alignment
  • Custom styling: User wants complete control over column appearance without default interference

Backward Compatibility

This change is fully backward compatible:

  • Default value for all override flags is false
  • Existing configurations continue to work with additive behavior
  • No changes required to existing applications
  • 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