enhancement
major
minor
defect
critical
major
minor
major
#30075
Log View (React UI): Display the details of an entry (stack trace) in a dialog in a readable format
Context
The log view in the React interface (Administration → Monitoring → Logs) displays the entries from a log file as a table. The Details column typically contains the stack trace of an exception. Until now, it has been displayed as plain text: the cell shows only a truncated portion, and the full text appears only as a tooltip—making it unreadable for a multi-line stack trace.
Behavior
The cell displays the first line of the details (e.g., java.lang.IllegalStateException: ...) with ellipsis characters. When you hover over the cell, it displays the “Show Full Value” button, which shows the complete details in a read-only dialog—preformatted: in a monospaced font, with line breaks and indentation of the stack trace, without wrapping long lines (they scroll horizontally), and with a button to copy to the clipboard. Entries without details display an empty cell without a button. Sorting, filtering, and searching via the Details column continue to work on the full text.
Fixed along the way: A multi-line read-only value (.tl-field-value--multiline) remained empty in the dialog of a compact table value because the value and lines were compressed to height 0 in the dialog’s flex container. This affected any multi-line read-only value opened from a table cell in the dialog. Fixed in the Design System (tl-design-system PR #25), copied to tl-layout-react.
Technical Notes
- The column uses the existing mechanism for values that do not fit in a table cell: ` FieldControlRegistry.createControl(...) ` with a compact ` FieldSpec ` (`FieldControlService.cellSpec`, multi-line text, ` FieldControlRegistry.TEXT) creates a ReactCompactFieldControl —a single-line preview and a dialog with the read-only value, similar to what multi-line text, code, and HTML attributes receive in tables. The fixed-width display is the FieldSpec.setPreformatted(true) option from #30057 (for model attributes <multi-line preformatted="true"/>); the branch therefore includes #30057 and will be merged after its PR. Only LogLineTable in com.top_logic.layout.view has been modified.
- Developer documentation: new section “Long values in a cell” in view-layer/tables (mechanism used by a column built in Java, the preformatted option), note in view-layer/display that <text> retains line breaks but no indentation.
- CSS: ` flex-shrink: 0 ` applied to `.tl-field-value--multiline ` and its lines; within the table cell, they continue to shrink until the ellipsis appears.