enhancement
major
minor
major
minor
major
#29922
Composition-Tabelle in einem Formular bekommt keine Höhe, ein Dialog kann nicht mehr bis zur Tabelle scrollen
Fehlerbild
In der React-Oberfläche zeigt ein Dialog, dessen Formular viele Felder und am Ende eine Composition-Tabelle (<composition-table>) enthält, die Tabelle nicht mehr: Der Dialog lässt sich scrollen, die Tabelle hat aber die Höhe 0 und kann nie in den sichtbaren Bereich gebracht werden. Nur ihre Kopfzeile ragt unten aus dem Panel heraus.
Reproduktion in tl-demo-react: Sicht „Constraints“, Toolbar „Neu“ (demo/create-constraint-test.view.xml). Der Dialog „Neues Constraint-Test-Objekt“ hat 13 Felder und die Tabelle „Einträge“. Ebenso „Im Dialog bearbeiten“ (demo/edit-constraint-test.view.xml) und die Attributes-Detail-Sicht.
Analyse
Der Dialogkörper (.tl-dialog__body, scrollt, Ende der Fill-Kette) enthält Inset → Formular (tl-form-layout--fill) → Panel der Composition-Tabelle → Tabelle. Die Felder sind nicht schrumpfbar (ca. 800 px), das Panel ist das einzige füllende Kind (flex: 1; min-height: 0) und bekommt im zu kleinen Dialogkörper 0 px.
Verursacht durch das Zusammenspiel zweier Änderungen vom 28.09.2026:
- #29663: RowSetTableControl.setFramed setzt den Panel-Zustand fill = !framed – aber nur, wenn setFramed aufgerufen wird, was allein die rahmenlose <table row-edit> tut. Die gerahmte Composition-Tabelle (Standard) bekommt nie fill=false, ihr Panel folgt dem Inhalt.
- #29677: Die React-Tabelle meldet seither immer „füllt“. Damit füllen Panel und Formular mit, und die Tabelle verschwindet, sobald die Felder allein höher als der Dialogkörper sind.
Lösung
- RowSetTableControl setzt den Panel-Zustand fill von Anfang an aus framed (Standard: false). Die gerahmte Composition-Tabelle ist damit ein Panel mit fill="false": Es beendet die Fill-Kette, die Tabelle wird inhaltshoch und zeigt alle Zeilen, das umgebende Formular bzw. der Dialog scrollt sie. Die rahmenlose <table row-edit> bleibt füllend.
- Eine füllende Tabelle behält eine Mindesthöhe (Kopf, drei Zeilen, Fuß, über --tl-size-row), damit sie in einer zu kleinen scrollenden Region nie auf 0 px zusammenfällt, sondern die Region scrollt.