enhancement
major
major
major
#29816
TL Views table: a <computed-column> cannot be hidden by default (shown only through the column chooser)
tl-layout-view 8.0.0-alpha10, <computed-column> of <table>.
Problem
A computed column is always visible; there is no attribute to declare it as available but hidden until the user selects it in the column chooser, as attribute columns of a configured table can be. The raw data bytes of a telegram in the E-Home group monitor are such a column: wanted on demand, noise by default.
Expected
visible="false" (or default-hidden="true") on <computed-column>, respected by the initial table state and the personalization.
Workaround in E-Home
None; the column stays visible (projects/monitor.view.xml, column "Daten").
Solution
A column declaration of a TL Views table (<table>, <tree-table>, <composition-table>) says whether its column is shown from the start or only offered in the column selection:
- <column attribute="..." visible="false"/> and <computed-column name="..." visible="false">: the column starts out hidden and is offered in the column selection like the attributes a table offers beyond its declared columns. The default is visible="true". A column nested in <embedded-columns> carries the setting over to the embedded column.
- <dynamic-columns>: a function <column-visible>col -> ...</column-visible> decides per column object whether its column is shown from the start (the declared inputs come first, as for column-name and column-label; unset, or a null result, shows the column).
- As for every offered column, a user's own arrangement of the table (personalization) takes precedence: a column the user selected stays visible, a column the user removed stays hidden.
Technical notes: the configured value feeds the existing ColumnSetup#hiddenByDefault() of the column declaration (AbstractColumnDeclaration), which TableElement / RowSetTableControl already pass to DefaultTableView.initialState(...) and the personalization store. DynamicColumnSet gets visible(Object column) with default true. Documented in the developer article view-layer/tables; shown in the React demo under Table columns ("Share" in "Map rows", "Due date" in "Transient rows", column "M3" in "Dynamic columns" start out hidden).
Build tooling
.claude/scripts/rebuild-stale.sh enumerated only 8 reactor modules since #29707 moved tl-parent-engine into the full-build profile of the root POM, which is activated by the absent property skipFullBuild rather than activeByDefault; stale engine jars were no longer detected. The script now also follows the modules of profiles that an absent property activates.