enhancement
major
minor
defect
critical
major
minor
major
#30075
Protokollansicht (React-UI): Details eines Eintrags (Stacktrace) in einem Dialog lesbar anzeigen
Kontext
Die Protokollansicht der React-Oberfläche (Administration → Überwachung → Protokolle) zeigt die Einträge einer Logdatei als Tabelle. Die Spalte Details enthält typischerweise den Stacktrace einer Exception. Sie wurde bisher als einfacher Text dargestellt: in der Zelle steht nur ein abgeschnittenes Stück, der vollständige Text erscheint lediglich als Tooltip – für einen mehrzeiligen Stacktrace unlesbar.
Verhalten
Die Zelle zeigt die erste Zeile der Details (z.B. java.lang.IllegalStateException: ...) mit Auslassungszeichen. Beim Zeigen auf die Zelle bietet sie die Schaltfläche Vollständigen Wert anzeigen, die die vollständigen Details schreibgeschützt in einem Dialog anzeigt – vorformatiert: in einer Schrift fester Breite, mit Zeilenumbrüchen und Einrückung des Stacktraces, ohne Umbruch langer Zeilen (sie rollen waagrecht), mit einer Schaltfläche zum Kopieren in die Zwischenablage. Einträge ohne Details zeigen eine leere Zelle ohne Schaltfläche. Sortieren, Filtern und Suchen über die Details-Spalte arbeiten weiter auf dem vollständigen Text.
Behoben auf dem Weg: Ein mehrzeiliger schreibgeschützter Wert (.tl-field-value--multiline) blieb im Dialog eines kompakten Tabellenwerts leer, weil Wert und Zeilen im Flex-Rumpf des Dialogs auf die Höhe 0 zusammengedrückt wurden. Das betraf jeden mehrzeiligen Lesewert, der aus einer Tabellenzelle im Dialog geöffnet wird. Korrigiert im Design-System (tl-design-system PR #25), Kopie in tl-layout-react.
Technische Hinweise
- Die Spalte nutzt den vorhandenen Mechanismus für Werte, die in einer Tabellenzelle zu wenig Platz haben: FieldControlRegistry.createControl(...) mit einem kompakten FieldSpec (FieldControlService.cellSpec, mehrzeiliger Text, FieldControlRegistry.TEXT) erzeugt einen ReactCompactFieldControl – eine einzeilige Vorschau und einen Dialog mit dem schreibgeschützten Wert, wie ihn auch mehrzeilige Text-, Code- und HTML-Attribute in Tabellen erhalten. Die Darstellung fester Breite ist die Option FieldSpec.setPreformatted(true) aus #30057 (für Modellattribute <multi-line preformatted="true"/>); der Branch enthält deshalb #30057 und wird nach dessen PR gemerged. Geändert ist nur LogLineTable in com.top_logic.layout.view.
- Entwicklerdoku: neuer Abschnitt Long values in a cell in view-layer/tables (Mechanismus, wie eine in Java gebaute Spalte ihn nutzt, die Option preformatted), Hinweis in view-layer/display, dass <text> Zeilenumbrüche, aber keine Einrückung erhält.
- CSS: flex-shrink: 0 auf .tl-field-value--multiline und seine Zeilen; in der Tabellenzelle schrumpfen sie weiter bis zur Ellipse.