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 should be customizable
#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
Upload/update workflows at application startup
#29095
No fixed reference to tl-build-processor in tl-parent-build
#29204
TreeGrid Modelbuilder API: Node predicate does not get component model
nice-to-have
#29103
Making REST client JSON parser robust against empty content

defect

critical
#29080
Unwanted row objects in tables with changes from other sessions
#29199
XSS vulnerability in /jsp/openapi/server/displayAPISpec.jsp
major
#28674
Security issues in the UMLJS project
#28710
Accounts with reused contact have no authorization
#28993
Filters of dynamic columns ignore the attribute type
#29042
Error in column filter for double values
#29107
StackOverflowError when rolling back in the transaction monitor
#29111
JavaDoc-based I18N generation ignores custom ResKey in I18NConstants
minor
#27850
Modelleditor swallows classification with a less-than sign in the name
#28456
Reference to missing files in subsession.jsp
#28485
Immutable/Disbled Boolean fields accessible/focusable via tab
#28651
Unnecessary space for inline tables
#28725
Pointless scroll bar in the help editor
#29053
TL-Script: format() with null input returns IllegalArgumentException
#29061
Missing replacement of KnowledgeItem by ObjectKey in Collections in Queries
#29066
"SafeHTML not started" error with scripted tests
#29069
A calculated attribute of the type "General search expression" cannot return a closure
#29073
Abstract attributes can be accessed in transient objects
#29074
The form data of a component cannot be accessed in a value transformation of a component channel
#29075
After changing the model, calculated attributes that have become invalid can no longer be edited
#29076
API key in REST interface configuration is not hidden
#29087
Incorrect access to the D&D cache in the browser
#29091
Values of a composition attribute cannot be edited if previously used in the same form
#29106
Error when restarting the KnowledgeBase
#29112
Update minimatch and serialize-javascript to fix CVE-2026-27903, CVE-2026-27904, and GHSA-5c6j-r48x-rmvq
#29197
Eclipse error after dependency update: maven-jar-plugin 3.5.0 causes "outside of a scoping block" error 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
  • DE
  • Login