From 09753750e0c5bb8c99abcee2eafd742d4a62bb62 Mon Sep 17 00:00:00 2001 From: cccs-RyanS <71385290+cccs-RyanS@users.noreply.github.com> Date: Fri, 17 Feb 2023 10:23:24 -0500 Subject: [PATCH 01/10] [CLDN-1773] Adding default group by --- .../src/plugin/controlPanel.tsx | 67 +++++++++++++++++++ .../src/plugin/transformProps.ts | 7 ++ 2 files changed, 74 insertions(+) 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 d69a73c510610..82d279d8de5c1 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 @@ -595,6 +595,73 @@ config.controlPanelSections.push({ }, }, ], + [ + { + name: 'default_group_by', + config: { + type: 'SelectControl', + label: t('Default columns for row grouping'), + description: t( + 'Preselect a set of columns for row grouping in the grid.', + ), + multi: true, + freeForm: true, + allowAll: true, + default: [], + canSelectAll: true, + optionRenderer: (c: ColumnMeta) => ( + // eslint-disable-next-line react/react-in-jsx-scope + + ), + // eslint-disable-next-line react/react-in-jsx-scope + valueRenderer: (c: ColumnMeta) => ( + // eslint-disable-next-line react/react-in-jsx-scope + + ), + valueKey: 'column_name', + mapStateToProps: ( + state: ControlPanelState, + controlState: ControlState, + ) => { + const { controls } = state; + const originalMapStateToProps = isRawMode({ controls }) ? + sharedControls?.columns?.mapStateToProps : + sharedControls?.groupby?.mapStateToProps; + const newState = + originalMapStateToProps?.(state, controlState) ?? {}; + const choices = isRawMode({ controls }) + ? controls?.columns?.value + : controls?.groupby?.value; + newState.options = newState.options.filter( + (o: { column_name: string }) => + ensureIsArray(choices).includes(o.column_name), + ); + const invalidOptions = ensureIsArray( + controlState.value, + ).filter(c => !ensureIsArray(choices).includes(c)); + newState.externalValidationErrors = + invalidOptions.length > 0 + ? invalidOptions.length > 1 + ? [ + `'${invalidOptions.join(', ')}'${t( + ' are not valid options', + )}`, + ] + : [ + `'${invalidOptions}'${t( + ' is not a valid option', + )}`, + ] + : []; + return newState; + }, + visibility: ({ controls }) => + // TODO properly emsure is Bool + Boolean(controls?.enable_grouping?.value), + canCopy: true, + }, + } + ], [ { name: 'enable_row_numbers', 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 4e087ae870739..d78138c88d6df 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 @@ -84,6 +84,7 @@ export default function transformProps(chartProps: CccsGridChartProps) { column_state, enable_row_numbers, jump_action_configs, + default_group_by }: CccsGridQueryFormData = { ...DEFAULT_FORM_DATA, ...formData }; const data = queriesData[0].data as TimeseriesDataRecord[]; const agGridLicenseKey = queriesData[0].agGridLicenseKey as String; @@ -237,6 +238,9 @@ export default function transformProps(chartProps: CccsGridChartProps) { sort: sortDirection, sortIndex, enableRowGroup, + rowGroup: !!(default_group_by.find((element: any) => { + return element === column + })), getQuickFilterText: (params: any) => advancedTypeValueFormatter(params), headerTooltip: columnDescription, }; @@ -264,6 +268,9 @@ export default function transformProps(chartProps: CccsGridChartProps) { cellRenderer, sortable: isSortable, enableRowGroup, + rowGroup: !!(default_group_by.find((element: any) => { + return element === column + })), getQuickFilterText: (params: any) => advancedTypeValueFormatter(params), headerTooltip: columnDescription, From 601c04b400d11fb07ed449530c253affe284842a Mon Sep 17 00:00:00 2001 From: cccs-RyanS <71385290+cccs-RyanS@users.noreply.github.com> Date: Wed, 1 Mar 2023 11:03:37 -0500 Subject: [PATCH 02/10] Updating DockerFile --- cccs-build/superset/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cccs-build/superset/Dockerfile b/cccs-build/superset/Dockerfile index b6c2533abd11d..2b829bbb36e23 100644 --- a/cccs-build/superset/Dockerfile +++ b/cccs-build/superset/Dockerfile @@ -1,7 +1,7 @@ # Vault CA container import ARG VAULT_CA_CONTAINER=uchimera.azurecr.io/cccs/hogwarts/vault-ca:master_2921_22315d60 FROM $VAULT_CA_CONTAINER AS vault_ca -FROM uchimera.azurecr.io/cccs/superset-base:cccs-2.0_20230206181403_b6196 +FROM uchimera.azurecr.io/cccs/superset-base:feature_CLDN-1773_20230228160630_b6328 USER root From fcebc2f2f2cca99e1a8740904073c3d43c2d2ec2 Mon Sep 17 00:00:00 2001 From: cccs-RyanS <71385290+cccs-RyanS@users.noreply.github.com> Date: Wed, 1 Mar 2023 13:23:59 -0500 Subject: [PATCH 03/10] Fixing Groupby --- .../plugin-chart-cccs-grid/src/plugin/controlPanel.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 82d279d8de5c1..add853f0eb743 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 @@ -229,7 +229,7 @@ const config: ControlPanelConfig = { return newState; }, - rerender: ['metrics', 'percent_metrics', ], + rerender: ['metrics', 'percent_metrics', 'default_group_by',], }, }, ], @@ -329,7 +329,7 @@ const config: ControlPanelConfig = { : []; return newState; }, - rerender: ['principalColumns'], + rerender: ['principalColumns', 'default_group_by'], visibility: isRawMode, canCopy: true, } @@ -609,6 +609,7 @@ config.controlPanelSections.push({ allowAll: true, default: [], canSelectAll: true, + renderTrigger: true, optionRenderer: (c: ColumnMeta) => ( // eslint-disable-next-line react/react-in-jsx-scope From 085df0872ad2b34ca238ad7192efcffde35cab04 Mon Sep 17 00:00:00 2001 From: cccs-RyanS <71385290+cccs-RyanS@users.noreply.github.com> Date: Wed, 1 Mar 2023 14:08:34 -0500 Subject: [PATCH 04/10] Updating base image --- cccs-build/superset/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cccs-build/superset/Dockerfile b/cccs-build/superset/Dockerfile index 2b829bbb36e23..99b3d2692dc70 100644 --- a/cccs-build/superset/Dockerfile +++ b/cccs-build/superset/Dockerfile @@ -1,7 +1,7 @@ # Vault CA container import ARG VAULT_CA_CONTAINER=uchimera.azurecr.io/cccs/hogwarts/vault-ca:master_2921_22315d60 FROM $VAULT_CA_CONTAINER AS vault_ca -FROM uchimera.azurecr.io/cccs/superset-base:feature_CLDN-1773_20230228160630_b6328 +FROM uchimera.azurecr.io/cccs/superset-base:feature_CLDN-1773_20230301182733_b6332 USER root From aaedfaccc13897a3d731396c0d4a69053738b0fa Mon Sep 17 00:00:00 2001 From: cccs-RyanS <71385290+cccs-RyanS@users.noreply.github.com> Date: Thu, 9 Mar 2023 10:24:55 -0500 Subject: [PATCH 05/10] [CLDN-1773] Saving Group by order --- .../src/plugin/transformProps.ts | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) 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 d78138c88d6df..d5fa07e6df6d3 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 @@ -230,6 +230,12 @@ export default function transformProps(chartProps: CccsGridChartProps) { const isSortable = true; const enableRowGroup = true; const columnDescription = columnDescriptionMap[column]; + const rowGroupIndex = default_group_by.findIndex((element: any) => { + return element === column + }); + + const rowGroup = rowGroupIndex >= 0 + const hide = rowGroup; return { field: column, headerName: columnHeader, @@ -238,9 +244,9 @@ export default function transformProps(chartProps: CccsGridChartProps) { sort: sortDirection, sortIndex, enableRowGroup, - rowGroup: !!(default_group_by.find((element: any) => { - return element === column - })), + rowGroup, + hide, + rowGroupIndex, getQuickFilterText: (params: any) => advancedTypeValueFormatter(params), headerTooltip: columnDescription, }; @@ -262,15 +268,22 @@ export default function transformProps(chartProps: CccsGridChartProps) { const isSortable = true; const enableRowGroup = true; const columnDescription = columnDescriptionMap[column]; + const rowGroupIndex = default_group_by.findIndex((element: any) => { + return element === column + }); + const initialRowGroupIndex = rowGroupIndex; + const rowGroup = rowGroupIndex >= 0 + const hide = rowGroup; return { field: column, headerName: columnHeader, cellRenderer, sortable: isSortable, enableRowGroup, - rowGroup: !!(default_group_by.find((element: any) => { - return element === column - })), + rowGroup, + rowGroupIndex, + initialRowGroupIndex, + hide, getQuickFilterText: (params: any) => advancedTypeValueFormatter(params), headerTooltip: columnDescription, From 97b2d95dfe5de2a25b8d2214d722353178fefd77 Mon Sep 17 00:00:00 2001 From: cccs-RyanS <71385290+cccs-RyanS@users.noreply.github.com> Date: Thu, 9 Mar 2023 13:06:05 -0500 Subject: [PATCH 06/10] Updating dockerfile --- cccs-build/superset/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cccs-build/superset/Dockerfile b/cccs-build/superset/Dockerfile index 99b3d2692dc70..26d7c1a586098 100644 --- a/cccs-build/superset/Dockerfile +++ b/cccs-build/superset/Dockerfile @@ -1,7 +1,7 @@ # Vault CA container import ARG VAULT_CA_CONTAINER=uchimera.azurecr.io/cccs/hogwarts/vault-ca:master_2921_22315d60 FROM $VAULT_CA_CONTAINER AS vault_ca -FROM uchimera.azurecr.io/cccs/superset-base:feature_CLDN-1773_20230301182733_b6332 +FROM uchimera.azurecr.io/cccs/superset-base:feature_CLDN-1773_20230309152913_b6394 USER root From 2e140fd60e4b1cc64c89f5eaad793086d82c7f8d Mon Sep 17 00:00:00 2001 From: cccs-RyanS <71385290+cccs-RyanS@users.noreply.github.com> Date: Fri, 10 Mar 2023 10:55:19 -0500 Subject: [PATCH 07/10] Update controlPanel.tsx --- .../plugins/plugin-chart-cccs-grid/src/plugin/controlPanel.tsx | 1 - 1 file changed, 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 add853f0eb743..65530515d9f8b 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 @@ -657,7 +657,6 @@ config.controlPanelSections.push({ return newState; }, visibility: ({ controls }) => - // TODO properly emsure is Bool Boolean(controls?.enable_grouping?.value), canCopy: true, }, From 478ae838634f18993e58fbe4dd67f2ce0ecd0e5a Mon Sep 17 00:00:00 2001 From: cccs-RyanS <71385290+cccs-RyanS@users.noreply.github.com> Date: Fri, 10 Mar 2023 11:40:48 -0500 Subject: [PATCH 08/10] Update superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/plugin/transformProps.ts Co-authored-by: cccs-tom <59839056+cccs-tom@users.noreply.github.com> --- .../plugins/plugin-chart-cccs-grid/src/plugin/transformProps.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 933a3651b45de..3987599731c69 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 @@ -84,7 +84,7 @@ export default function transformProps(chartProps: CccsGridChartProps) { column_state, enable_row_numbers, jump_action_configs, - default_group_by + default_group_by, }: CccsGridQueryFormData = { ...DEFAULT_FORM_DATA, ...formData }; const data = queriesData[0].data as TimeseriesDataRecord[]; const agGridLicenseKey = queriesData[0].agGridLicenseKey as String; From 5401e52a9678fd9a1891e25cec1338b6f3281a73 Mon Sep 17 00:00:00 2001 From: cccs-RyanS <71385290+cccs-RyanS@users.noreply.github.com> Date: Fri, 10 Mar 2023 11:40:56 -0500 Subject: [PATCH 09/10] Update superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/plugin/transformProps.ts Co-authored-by: cccs-tom <59839056+cccs-tom@users.noreply.github.com> --- .../plugins/plugin-chart-cccs-grid/src/plugin/transformProps.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 3987599731c69..e4f5bf8144b2a 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 @@ -275,7 +275,7 @@ export default function transformProps(chartProps: CccsGridChartProps) { return element === column }); const initialRowGroupIndex = rowGroupIndex; - const rowGroup = rowGroupIndex >= 0 + const rowGroup = (rowGroupIndex >= 0) const hide = rowGroup; return { field: column, From 599cd02269b531edeae7b2cd72d2e3bbe88c69d5 Mon Sep 17 00:00:00 2001 From: cccs-RyanS <71385290+cccs-RyanS@users.noreply.github.com> Date: Fri, 10 Mar 2023 11:41:27 -0500 Subject: [PATCH 10/10] Update superset-frontend/src/cccs-viz/plugins/plugin-chart-cccs-grid/src/plugin/transformProps.ts Co-authored-by: cccs-RyanK <102618419+cccs-RyanK@users.noreply.github.com> --- .../plugins/plugin-chart-cccs-grid/src/plugin/transformProps.ts | 1 - 1 file changed, 1 deletion(-) 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 e4f5bf8144b2a..b9123379ff839 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 @@ -236,7 +236,6 @@ export default function transformProps(chartProps: CccsGridChartProps) { const rowGroupIndex = default_group_by.findIndex((element: any) => { return element === column }); - const rowGroup = rowGroupIndex >= 0 const hide = rowGroup; return {