mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-05 00:09:35 +00:00
## What changed Every table in the app now renders through the shared `OTable` (`web/src/lib/core/Table`). Both legacy implementations are deleted — `components/TenstackTable.vue` and `plugins/logs/TenstackTable.vue` — for ~7,000 lines removed and one table behaviour contract instead of three. To get there, `OTable` gained: per-cell hover actions, per-column value filter, opt-in column close "x", sticky pivot total row + right-pinned total columns, pivot row-field cell merge, caller-owned pagination bar, delegated scroll (shared scroller with the logs/traces histogram), and variable-height virtual rows. ## Tables migrated | Area | Tables | | --- | --- | | Logs | Search results grid, correlated logs | | Traces | Search results grid, trace details sidebar (attributes / events / links), service graph node panel | | Dashboards | Table panel + pivot (incl. PromQL), panel pagination controls, import error panel | | RUM | Session player traces tab | | Pipelines | Scheduled pipeline SQL preview | ## Tested 775 unit tests across the 12 affected suites, all passing. Manually verified per table: - **Columns** — resize, reorder, close "x", persistence across reload; horizontal scroll on wide grids; wrap toggle with virtual scroll; client + 3-state server sort - **Pagination** — custom records-per-page, enabling pagination after mount, scroll-to-top on page change, no duplicate pager - **Logs** — FTS highlighting, row expand → JSON preview and its actions, hover actions + AI button, cell font / row density / status spine, histogram pinned while scrolling sideways - **Dashboards** — pivot multi-level headers, cell merge, sticky totals staying aligned under horizontal scroll, cell colouring (auto palette / value mapping / conditional rules / overrides), CSV + JSON export - **Traces, RUM, Pipelines** — events table expansion, error-row border, row click → trace navigation, SQL preview copy + send-to-AI --------- Co-authored-by: ktx-vaidehi <134508096+ktx-vaidehi@users.noreply.github.com> Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech> Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
68 lines
1.8 KiB
JSON
68 lines
1.8 KiB
JSON
{
|
|
"totals": {
|
|
"rawVarInComponent": 101
|
|
},
|
|
"files": {
|
|
"components/alerts/AlertInsightsContextMenu.vue": {
|
|
"rawVarInComponent": 2
|
|
},
|
|
"components/alerts/AlertSettingsHelpDrawer.vue": {
|
|
"rawVarInComponent": 49
|
|
},
|
|
"components/alerts/DestinationPreview.vue": {
|
|
"rawVarInComponent": 4
|
|
},
|
|
"components/ingestion/ai/content/AIIntegrationCard.vue": {
|
|
"rawVarInComponent": 1
|
|
},
|
|
"components/O2AIChat.vue": {
|
|
"rawVarInComponent": 1
|
|
},
|
|
"components/rum/errorTracking/view/ErrorEvents.vue": {
|
|
"rawVarInComponent": 5
|
|
},
|
|
"components/settings/Nodes.vue": {
|
|
"rawVarInComponent": 3
|
|
},
|
|
"enterprise/components/onlineEvals/forms/ScoreConfigDetail.vue": {
|
|
"rawVarInComponent": 1
|
|
},
|
|
"enterprise/components/onlineEvals/forms/ScoreConfigDialog.vue": {
|
|
"rawVarInComponent": 2
|
|
},
|
|
"enterprise/components/onlineEvals/forms/ScorerDetail.vue": {
|
|
"rawVarInComponent": 5
|
|
},
|
|
"enterprise/components/onlineEvals/forms/ScorerFormPage.vue": {
|
|
"rawVarInComponent": 1
|
|
},
|
|
"lib/core/Code/OCodeBlock.vue": {
|
|
"rawVarInComponent": 2
|
|
},
|
|
"lib/core/EmptyState/EmptyStateIngestionCard.vue": {
|
|
"rawVarInComponent": 7
|
|
},
|
|
"lib/core/EmptyState/EmptyStateIngestionChip.vue": {
|
|
"rawVarInComponent": 3
|
|
},
|
|
"lib/core/Table/sub-components/OTableBody.vue": {
|
|
"rawVarInComponent": 2
|
|
},
|
|
"plugins/logs/SearchBar.vue": {
|
|
"rawVarInComponent": 1
|
|
},
|
|
"plugins/traces/ThreadToolCalls.vue": {
|
|
"rawVarInComponent": 6
|
|
},
|
|
"plugins/traces/TraceDetails.vue": {
|
|
"rawVarInComponent": 2
|
|
},
|
|
"plugins/traces/TraceDetailsSidebar.vue": {
|
|
"rawVarInComponent": 3
|
|
},
|
|
"views/Dashboards/ViewDashboard.vue": {
|
|
"rawVarInComponent": 1
|
|
}
|
|
}
|
|
}
|