From 7c85228df70957f63c2df3a374fa241f4c615fbc Mon Sep 17 00:00:00 2001 From: Reese <10563996+reesercollins@users.noreply.github.com> Date: Mon, 25 Jul 2022 13:16:02 -0400 Subject: [PATCH] Add row number option to CCCS-Grid (#181) * Add row number option to CCCS-Grid * Have row numbers show by default Co-authored-by: cccs-Dustin <96579982+cccs-Dustin@users.noreply.github.com> Co-authored-by: cccs-Dustin <96579982+cccs-Dustin@users.noreply.github.com> --- .../src/plugin/controlPanel.tsx | 12 ++++++++++++ .../src/plugin/transformProps.ts | 13 ++++++++++++- .../plugins/plugin-chart-cccs-grid/src/types.ts | 1 + .../test/plugin/buildQuery.test.ts | 1 + .../test/plugin/transformProps.test.ts | 1 + 5 files changed, 27 insertions(+), 1 deletion(-) diff --git a/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/plugin/controlPanel.tsx b/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/plugin/controlPanel.tsx index b2afdf876cf00..7bfaccc95a88a 100644 --- a/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/plugin/controlPanel.tsx +++ b/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/plugin/controlPanel.tsx @@ -565,6 +565,18 @@ config.controlPanelSections.push({ }, }, ], + [ + { + name: 'enable_row_numbers', + config: { + type: 'CheckboxControl', + label: t('Row numbers'), + renderTrigger: true, + default: true, + description: t('Whether to enable row numbers'), + }, + }, + ], [ { name: 'page_length', diff --git a/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/plugin/transformProps.ts b/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/plugin/transformProps.ts index 9450651974412..deed97444e9cd 100644 --- a/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/plugin/transformProps.ts +++ b/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/plugin/transformProps.ts @@ -81,6 +81,7 @@ export default function transformProps(chartProps: CccsGridChartProps) { include_search, enable_grouping, column_state, + enable_row_numbers, }: CccsGridQueryFormData = { ...DEFAULT_FORM_DATA, ...formData }; const data = queriesData[0].data as TimeseriesDataRecord[]; const agGridLicenseKey = queriesData[0].agGridLicenseKey as String; @@ -167,7 +168,7 @@ export default function transformProps(chartProps: CccsGridChartProps) { COUNTRY: 'countryValueRenderer', JSON: 'jsonValueRenderer', }; - + const percentMetricValueFormatter = function (params: ValueFormatterParams) { return getNumberFormatter(NumberFormats.PERCENT_3_POINT).format( params.value, @@ -271,6 +272,16 @@ export default function transformProps(chartProps: CccsGridChartProps) { } } + if (enable_row_numbers) { + columnDefs.splice(0, 0, { + headerName: '#', + colId: 'rowNum', + pinned: 'left', + valueGetter: (params: any) => + params.node ? params.node.rowIndex + 1 : null, + } as any); + } + return { formData, setDataMask, diff --git a/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/types.ts b/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/types.ts index 30b9a002cb1e2..b6b07d71dd2d7 100644 --- a/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/types.ts +++ b/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/types.ts @@ -36,6 +36,7 @@ export type CccsGridQueryFormData = QueryFormData & { page_length: number; enable_grouping: boolean; column_state: ColumnState[]; + enable_row_numbers: boolean; }; export interface CccsGridStylesProps { diff --git a/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/test/plugin/buildQuery.test.ts b/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/test/plugin/buildQuery.test.ts index 9bd0cfea1c7a5..e9675148ad381 100644 --- a/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/test/plugin/buildQuery.test.ts +++ b/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/test/plugin/buildQuery.test.ts @@ -12,6 +12,7 @@ describe('CccsGrid buildQuery', () => { enable_grouping: false, viz_type: 'my_chart', column_state: [], + enable_row_numbers: false, }; it('should build groupby with series in form data', () => { diff --git a/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/test/plugin/transformProps.test.ts b/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/test/plugin/transformProps.test.ts index 39d4ba5c407aa..bf0e8a76e9cea 100644 --- a/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/test/plugin/transformProps.test.ts +++ b/superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/test/plugin/transformProps.test.ts @@ -17,6 +17,7 @@ describe('CccsGrid tranformProps', () => { enable_grouping: false, viz_type: 'my_chart', column_state: [], + enable_row_numbers: false, }; const chartProps = new CccsGridChartProps({ formData,