From b45cc00c227c54b5422fda26af18ebd4ff9c4e1f Mon Sep 17 00:00:00 2001 From: Amit Miran <47772523+amitmiran137@users.noreply.github.com> Date: Thu, 11 Feb 2021 19:35:54 +0200 Subject: [PATCH] feat(core): add custom_params to form_data (#929) * feat(core): add custom_params to form_data * Update packages/superset-ui-chart-controls/src/sections.tsx Co-authored-by: Jesse Yang * Update packages/superset-ui-chart-controls/src/sections.tsx Co-authored-by: Jesse Yang Co-authored-by: Jesse Yang --- .../superset-ui-chart-controls/src/sections.tsx | 13 ++++++++++++- .../superset-ui-core/src/query/buildQueryObject.ts | 2 ++ .../superset-ui-core/src/query/types/Query.ts | 2 ++ .../src/query/types/QueryFormData.ts | 1 + .../test/query/buildQueryObject.test.ts | 11 +++++++++++ 5 files changed, 28 insertions(+), 1 deletion(-) diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/sections.tsx b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/sections.tsx index b675d78bf7c8..f423df0faa2e 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/sections.tsx +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-chart-controls/src/sections.tsx @@ -75,7 +75,18 @@ export const datasourceAndVizType: ControlPanelSectionConfig = { type: 'HiddenControl', label: t('URL Parameters'), hidden: true, - description: t('Extra parameters for use in jinja templated queries'), + description: t('Extra url parameters for use in Jinja templated queries'), + }, + }, + { + name: 'custom_params', + config: { + type: 'HiddenControl', + label: t('Extra Parameters'), + hidden: true, + description: t( + 'Extra parameters that any plugins can choose to set for use in Jinja templated queries', + ), }, }, { diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/buildQueryObject.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/buildQueryObject.ts index 5f297ce27425..345a38da9bd7 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/buildQueryObject.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/buildQueryObject.ts @@ -32,6 +32,7 @@ export default function buildQueryObject( timeseries_limit_metric, granularity, url_params = {}, + custom_params = {}, ...residualFormData } = formData; const { append_form_data = {}, override_form_data = {} } = extra_form_data; @@ -65,6 +66,7 @@ export default function buildQueryObject( timeseries_limit_metric: timeseries_limit_metric || undefined, order_desc: typeof order_desc === 'undefined' ? true : order_desc, url_params: url_params || undefined, + custom_params, }; // append and override extra form data used by native filters queryObject = appendExtraFormData(queryObject, append_form_data); diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/Query.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/Query.ts index 17e6d0743ee0..8310aaa866b9 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/Query.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/Query.ts @@ -116,6 +116,8 @@ export interface QueryObject extends QueryFields, TimeRange, ResidualQueryObject url_params?: Record; + custom_params?: Record; + /** Free-form WHERE SQL: multiple clauses are concatenated by AND */ where?: string; } diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/QueryFormData.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/QueryFormData.ts index a5c569a31b04..2177432b1f74 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/QueryFormData.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/src/query/types/QueryFormData.ts @@ -143,6 +143,7 @@ export interface BaseFormData extends TimeRange, FormDataResidual { time_range_endpoints?: TimeRangeEndpoints; annotation_layers?: AnnotationLayer[]; url_params?: Record; + custom_params?: Record; } /** diff --git a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/query/buildQueryObject.test.ts b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/query/buildQueryObject.test.ts index 1fb6add78d2a..411391a3783d 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/query/buildQueryObject.test.ts +++ b/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-core/test/query/buildQueryObject.test.ts @@ -218,4 +218,15 @@ describe('buildQueryObject', () => { }).url_params, ).toBeUndefined(); }); + + it('should populate custom_params', () => { + const customParams = { customObject: { id: 137, name: 'C-137' } }; + query = buildQueryObject({ + datasource: '5__table', + granularity_sqla: 'ds', + viz_type: 'table', + custom_params: customParams, + }); + expect(query.custom_params).toEqual(customParams); + }); });