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(

Reply via email to