This is an automated email from the ASF dual-hosted git repository. msyavuz pushed a commit to branch msyavuz/feat/aggrid-row-group-counts in repository https://gitbox.apache.org/repos/asf/superset.git
commit 361b26f224709d90bbfb2686311ef15fb8185714 Author: Mehmet Salih Yavuz <[email protected]> AuthorDate: Fri May 8 17:22:45 2026 +0300 feat(ag-grid-table): add control to hide row group counts Adds a "Show row group counts" toggle (default on) above the existing "Show summary" control. When disabled, suppresses the per-group row count shown next to row group labels in the AG Grid table chart. --- .../plugin-chart-ag-grid-table/src/AgGridTable/index.tsx | 12 ++++++++++++ .../plugin-chart-ag-grid-table/src/AgGridTableChart.tsx | 2 ++ .../plugin-chart-ag-grid-table/src/controlPanel.tsx | 16 ++++++++++++++++ .../plugin-chart-ag-grid-table/src/transformProps.ts | 2 ++ .../plugins/plugin-chart-ag-grid-table/src/types.ts | 1 + .../test/AgGridTableChart.test.tsx | 16 ++++++++++++++++ 6 files changed, 49 insertions(+) diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTable/index.tsx b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTable/index.tsx index ebb66b0db28..ac8d7957955 100644 --- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTable/index.tsx +++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTable/index.tsx @@ -102,6 +102,7 @@ export interface AgGridTableProps { renderTimeComparisonDropdown: () => JSX.Element | null; cleanedTotals: DataRecord; showTotals: boolean; + showRowGroupCounts: boolean; width: number; onColumnStateChange?: (state: AgGridChartStateWithMetadata) => void; onFilterChanged?: (filterModel: Record<string, any>) => void; @@ -142,6 +143,7 @@ const AgGridDataTable: FunctionComponent<AgGridTableProps> = memo( renderTimeComparisonDropdown, cleanedTotals, showTotals, + showRowGroupCounts, width, onColumnStateChange, onFilterChanged, @@ -186,6 +188,15 @@ const AgGridDataTable: FunctionComponent<AgGridTableProps> = memo( [], ); + const autoGroupColumnDef = useMemo<ColDef>( + () => ({ + cellRendererParams: { + suppressCount: !showRowGroupCounts, + }, + }), + [showRowGroupCounts], + ); + // Memoize container style const containerStyles = useMemo( () => ({ @@ -510,6 +521,7 @@ const AgGridDataTable: FunctionComponent<AgGridTableProps> = memo( rowHeight={30} columnDefs={colDefsFromProps} defaultColDef={defaultColDef} + autoGroupColumnDef={autoGroupColumnDef} onColumnGroupOpened={params => params.api.sizeColumnsToFit()} rowSelection="multiple" animateRows diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTableChart.tsx b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTableChart.tsx index a065ff7216e..041eb1a67c3 100644 --- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTableChart.tsx +++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/AgGridTableChart.tsx @@ -80,6 +80,7 @@ export default function TableChart<D extends DataRecord = DataRecord>( colorPositiveNegative, totals, showTotals, + showRowGroupCounts, columnColorFormatters, basicColorFormatters, width, @@ -444,6 +445,7 @@ export default function TableChart<D extends DataRecord = DataRecord>( } cleanedTotals={totals || {}} showTotals={showTotals} + showRowGroupCounts={showRowGroupCounts} width={width} onColumnStateChange={handleColumnStateChange} chartState={chartState} diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx index dc3397bf774..1918cee12bb 100644 --- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx +++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/controlPanel.tsx @@ -429,6 +429,22 @@ const config: ControlPanelConfig = { }, }, ], + [ + { + name: 'show_row_group_counts', + config: { + type: 'CheckboxControl', + label: t('Show row group counts'), + renderTrigger: true, + default: true, + description: t( + 'Show the number of rows in each group next to the group label when row grouping is enabled.', + ), + visibility: isAggMode, + resetOnHide: false, + }, + }, + ], [ { name: 'show_totals', diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/transformProps.ts b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/transformProps.ts index 33ac8aa0183..6277eb37db5 100644 --- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/transformProps.ts +++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/transformProps.ts @@ -504,6 +504,7 @@ const transformProps = ( show_cell_bars: showCellBars = true, color_pn: colorPositiveNegative = true, show_totals: showTotals, + show_row_group_counts: showRowGroupCounts = true, conditional_formatting: conditionalFormatting, comparison_color_enabled: comparisonColorEnabled = false, comparison_color_scheme: comparisonColorScheme = ColorSchemeEnum.Green, @@ -778,6 +779,7 @@ const transformProps = ( colorPositiveNegative, totals, showTotals, + showRowGroupCounts, columnColorFormatters, basicColorColumnFormatters, basicColorFormatters, diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/types.ts b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/types.ts index e3d6bf07079..106026e448d 100644 --- a/superset-frontend/plugins/plugin-chart-ag-grid-table/src/types.ts +++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/src/types.ts @@ -124,6 +124,7 @@ export interface AgGridTableChartTransformedProps< colorPositiveNegative: boolean; totals: DataRecord | undefined; showTotals: boolean; + showRowGroupCounts: boolean; columnColorFormatters: ColorFormatters; basicColorFormatters?: { [Key: string]: BasicColorFormatterType }[]; basicColorColumnFormatters?: { [Key: string]: BasicColorFormatterType }[]; diff --git a/superset-frontend/plugins/plugin-chart-ag-grid-table/test/AgGridTableChart.test.tsx b/superset-frontend/plugins/plugin-chart-ag-grid-table/test/AgGridTableChart.test.tsx index 875f49331a3..5e5175dd08f 100644 --- a/superset-frontend/plugins/plugin-chart-ag-grid-table/test/AgGridTableChart.test.tsx +++ b/superset-frontend/plugins/plugin-chart-ag-grid-table/test/AgGridTableChart.test.tsx @@ -35,6 +35,22 @@ beforeEach(() => { jest.clearAllMocks(); }); +test('transformProps defaults showRowGroupCounts to true', () => { + expect(transformProps(testData.basic).showRowGroupCounts).toBe(true); +}); + +test('transformProps respects show_row_group_counts=false', () => { + expect( + transformProps({ + ...testData.basic, + rawFormData: { + ...testData.basic.rawFormData, + show_row_group_counts: false, + }, + }).showRowGroupCounts, + ).toBe(false); +}); + test('transformProps parses pageLength to pageSize', () => { expect(transformProps(testData.basic).pageSize).toBe(20); expect(
