You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2020/04/02 16:27:27 UTC
[incubator-superset] branch master updated: migrating unique
controls (#9446)
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git
The following commit(s) were added to refs/heads/master by this push:
new c003189 migrating unique controls (#9446)
c003189 is described below
commit c003189d0dd6af9766af273f17174a1d3ca02f88
Author: Evan Rusackas <ev...@preset.io>
AuthorDate: Thu Apr 2 09:26:52 2020 -0700
migrating unique controls (#9446)
---
CONTRIBUTING.md | 7 -
.../src/explore/controlPanels/DeckGeojson.js | 34 ++++-
.../src/explore/controlPanels/DeckHex.js | 35 ++++-
.../src/explore/controlPanels/DeckMulti.js | 31 ++++-
.../src/explore/controlPanels/DeckPolygon.js | 64 ++++++++-
.../src/explore/controlPanels/DeckScatter.js | 58 ++++++++-
superset-frontend/src/explore/controls.jsx | 145 ---------------------
7 files changed, 213 insertions(+), 161 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d6a93a9..38c76ab 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1118,7 +1118,6 @@ Note the `y_axis_format` is defined under various section for some charts.
| `contribution` | _N/A_ | |
| `country_fieldtype` | _N/A_ | |
| `date_filter` | _N/A_ | |
-| `deck_slices` | _N/A_ | |
| `default_filters` | _N/A_ | |
| `dimension` | _N/A_ | |
| `end_spatial` | _N/A_ | |
@@ -1141,7 +1140,6 @@ Note the `y_axis_format` is defined under various section for some charts.
| `grid_size` | _N/A_ | |
| `import_time` | _N/A_ | |
| `instant_filtering` | _N/A_ | |
-| `js_agg_function` | _N/A_ | |
| `js_columns` | _N/A_ | |
| `label` | _N/A_ | |
| `labels_outside` | _N/A_ | |
@@ -1160,14 +1158,11 @@ Note the `y_axis_format` is defined under various section for some charts.
| `marker_lines` | _N/A_ | |
| `markers` | _N/A_ | |
| `markup_type` | _N/A_ | |
-| `max_radius` | _N/A_ | |
| `min_periods` | _N/A_ | |
-| `min_radius` | _N/A_ | |
| `multiplier` | _N/A_ | |
| `new_dashboard_name` | _N/A_ | |
| `new_slice_name` | _N/A_ | |
| `normalize_across` | _N/A_ | |
-| `num_buckets` | _N/A_ | |
| `num_period_compare` | _N/A_ | |
| `order_bars` | _N/A_ | |
| `order_desc` | _N/A_ | |
@@ -1175,7 +1170,6 @@ Note the `y_axis_format` is defined under various section for some charts.
| `period_ratio_type` | _N/A_ | |
| `perm` | _N/A_ | |
| `point_radius_fixed` | _N/A_ | |
-| `point_unit` | _N/A_ | |
| `prefix_metric_with_slice_name` | _N/A_ | |
| `range_labels` | _N/A_ | |
| `ranges` | _N/A_ | |
@@ -1216,7 +1210,6 @@ Note the `y_axis_format` is defined under various section for some charts.
| `table_filter` | _N/A_ | |
| `time_compare` | _N/A_ | |
| `timed_refresh_immune_slices` | _N/A_ | |
-| `toggle_polygons` | _N/A_ | |
| `url` | _N/A_ | |
| `userid` | _N/A_ | |
| `viewport` | _N/A_ | |
diff --git a/superset-frontend/src/explore/controlPanels/DeckGeojson.js b/superset-frontend/src/explore/controlPanels/DeckGeojson.js
index 63dd8e0..e41c3e3 100644
--- a/superset-frontend/src/explore/controlPanels/DeckGeojson.js
+++ b/superset-frontend/src/explore/controlPanels/DeckGeojson.js
@@ -17,6 +17,9 @@
* under the License.
*/
import { t } from '@superset-ui/translation';
+import { nonEmpty, integer } from '../validators';
+import { formatSelectOptions } from '../../modules/utils';
+import { columnChoices } from '../controls';
export default {
requiresTime: true,
@@ -25,7 +28,21 @@ export default {
label: t('Query'),
expanded: true,
controlSetRows: [
- ['geojson', null],
+ [
+ {
+ name: 'geojson',
+ config: {
+ type: 'SelectControl',
+ label: t('GeoJson Column'),
+ validators: [nonEmpty],
+ description: t('Select the geojson column'),
+ mapStateToProps: state => ({
+ choices: columnChoices(state.datasource),
+ }),
+ },
+ },
+ null,
+ ],
['row_limit', 'filter_nulls'],
['adhoc_filters'],
],
@@ -43,7 +60,20 @@ export default {
['fill_color_picker', 'stroke_color_picker'],
['filled', 'stroked'],
['extruded', null],
- ['point_radius_scale', null],
+ [
+ {
+ name: 'point_radius_scale',
+ config: {
+ type: 'SelectControl',
+ freeForm: true,
+ label: t('Point Radius Scale'),
+ validators: [integer],
+ default: null,
+ choices: formatSelectOptions([0, 100, 200, 300, 500]),
+ },
+ },
+ null,
+ ],
],
},
{
diff --git a/superset-frontend/src/explore/controlPanels/DeckHex.js b/superset-frontend/src/explore/controlPanels/DeckHex.js
index 62daeb9..01e221b 100644
--- a/superset-frontend/src/explore/controlPanels/DeckHex.js
+++ b/superset-frontend/src/explore/controlPanels/DeckHex.js
@@ -17,6 +17,10 @@
* under the License.
*/
import { t } from '@superset-ui/translation';
+import {
+ formatSelectOptions,
+ formatSelectOptionsForRange,
+} from '../../modules/utils';
export default {
requiresTime: true,
@@ -36,7 +40,36 @@ export default {
['mapbox_style', 'viewport'],
['color_picker', 'autozoom'],
['grid_size', 'extruded'],
- ['js_agg_function', null],
+ [
+ {
+ name: 'js_agg_function',
+ config: {
+ type: 'SelectControl',
+ label: t('Dynamic Aggregation Function'),
+ description: t(
+ 'The function to use when aggregating points into groups',
+ ),
+ default: 'sum',
+ clearable: false,
+ renderTrigger: true,
+ choices: formatSelectOptions([
+ 'sum',
+ 'min',
+ 'max',
+ 'mean',
+ 'median',
+ 'count',
+ 'variance',
+ 'deviation',
+ 'p1',
+ 'p5',
+ 'p95',
+ 'p99',
+ ]),
+ },
+ },
+ null,
+ ],
],
},
{
diff --git a/superset-frontend/src/explore/controlPanels/DeckMulti.js b/superset-frontend/src/explore/controlPanels/DeckMulti.js
index d61b6db..f05e6f3 100644
--- a/superset-frontend/src/explore/controlPanels/DeckMulti.js
+++ b/superset-frontend/src/explore/controlPanels/DeckMulti.js
@@ -17,6 +17,7 @@
* under the License.
*/
import { t } from '@superset-ui/translation';
+import { nonEmpty } from '../validators';
export default {
requiresTime: true,
@@ -26,7 +27,35 @@ export default {
expanded: true,
controlSetRows: [
['mapbox_style', 'viewport'],
- ['deck_slices', null],
+ [
+ {
+ name: 'deck_slices',
+ config: {
+ type: 'SelectAsyncControl',
+ multi: true,
+ label: t('deck.gl charts'),
+ validators: [nonEmpty],
+ default: [],
+ description: t(
+ 'Pick a set of deck.gl charts to layer on top of one another',
+ ),
+ dataEndpoint:
+ '/sliceasync/api/read?_flt_0_viz_type=deck_&_flt_7_viz_type=deck_multi',
+ placeholder: t('Select charts'),
+ onAsyncErrorMessage: t('Error while fetching charts'),
+ mutator: data => {
+ if (!data || !data.result) {
+ return [];
+ }
+ return data.result.map(o => ({
+ value: o.id,
+ label: o.slice_name,
+ }));
+ },
+ },
+ },
+ null,
+ ],
],
},
{
diff --git a/superset-frontend/src/explore/controlPanels/DeckPolygon.js b/superset-frontend/src/explore/controlPanels/DeckPolygon.js
index cc29b84..75439df 100644
--- a/superset-frontend/src/explore/controlPanels/DeckPolygon.js
+++ b/superset-frontend/src/explore/controlPanels/DeckPolygon.js
@@ -18,6 +18,7 @@
*/
import { t } from '@superset-ui/translation';
import timeGrainSqlaAnimationOverrides from './timeGrainSqlaAnimationOverrides';
+import { formatSelectOptions } from '../../modules/utils';
export default {
requiresTime: true,
@@ -49,9 +50,66 @@ export default {
['filled', 'stroked'],
['extruded', 'multiplier'],
['line_width', null],
- ['linear_color_scheme', 'opacity'],
- ['num_buckets', 'break_points'],
- ['table_filter', 'toggle_polygons'],
+ [
+ 'linear_color_scheme',
+ {
+ name: 'opacity',
+ config: {
+ type: 'SliderControl',
+ label: t('Opacity'),
+ default: 80,
+ step: 1,
+ min: 0,
+ max: 100,
+ renderTrigger: true,
+ description: t('Opacity, expects values between 0 and 100'),
+ },
+ },
+ ],
+ [
+ {
+ name: 'num_buckets',
+ config: {
+ type: 'SelectControl',
+ multi: false,
+ freeForm: true,
+ label: t('Number of buckets to group data'),
+ default: 5,
+ choices: formatSelectOptions([2, 3, 5, 10]),
+ description: t('How many buckets should the data be grouped in.'),
+ renderTrigger: true,
+ },
+ },
+ {
+ name: 'break_points',
+ config: {
+ type: 'SelectControl',
+ multi: true,
+ freeForm: true,
+ label: t('Bucket break points'),
+ choices: formatSelectOptions([]),
+ description: t(
+ 'List of n+1 values for bucketing metric into n buckets.',
+ ),
+ renderTrigger: true,
+ },
+ },
+ ],
+ [
+ 'table_filter',
+ {
+ name: 'toggle_polygons',
+ config: {
+ type: 'CheckboxControl',
+ label: t('Multiple filtering'),
+ renderTrigger: true,
+ default: true,
+ description: t(
+ 'Allow sending multiple polygons as a filter event',
+ ),
+ },
+ },
+ ],
['legend_position', 'legend_format'],
],
},
diff --git a/superset-frontend/src/explore/controlPanels/DeckScatter.js b/superset-frontend/src/explore/controlPanels/DeckScatter.js
index e00edc9..dcc5f19 100644
--- a/superset-frontend/src/explore/controlPanels/DeckScatter.js
+++ b/superset-frontend/src/explore/controlPanels/DeckScatter.js
@@ -18,6 +18,7 @@
*/
import { t } from '@superset-ui/translation';
import timeGrainSqlaAnimationOverrides from './timeGrainSqlaAnimationOverrides';
+import { nonEmpty } from '../validators';
export default {
requiresTime: true,
@@ -53,8 +54,61 @@ export default {
{
label: t('Point Size'),
controlSetRows: [
- ['point_radius_fixed', 'point_unit'],
- ['min_radius', 'max_radius'],
+ [
+ 'point_radius_fixed',
+ {
+ name: 'point_unit',
+ config: {
+ type: 'SelectControl',
+ label: t('Point Unit'),
+ default: 'square_m',
+ clearable: false,
+ choices: [
+ ['square_m', 'Square meters'],
+ ['square_km', 'Square kilometers'],
+ ['square_miles', 'Square miles'],
+ ['radius_m', 'Radius in meters'],
+ ['radius_km', 'Radius in kilometers'],
+ ['radius_miles', 'Radius in miles'],
+ ],
+ description: t(
+ 'The unit of measure for the specified point radius',
+ ),
+ },
+ },
+ ],
+ [
+ {
+ name: 'min_radius',
+ config: {
+ type: 'TextControl',
+ label: t('Minimum Radius'),
+ isFloat: true,
+ validators: [nonEmpty],
+ renderTrigger: true,
+ default: 2,
+ description: t(
+ 'Minimum radius size of the circle, in pixels. As the zoom level changes, this ' +
+ 'insures that the circle respects this minimum radius.',
+ ),
+ },
+ },
+ {
+ name: 'max_radius',
+ config: {
+ type: 'TextControl',
+ label: t('Maximum Radius'),
+ isFloat: true,
+ validators: [nonEmpty],
+ renderTrigger: true,
+ default: 250,
+ description: t(
+ 'Maxium radius size of the circle, in pixels. As the zoom level changes, this ' +
+ 'insures that the circle respects this maximum radius.',
+ ),
+ },
+ },
+ ],
['multiplier', null],
],
},
diff --git a/superset-frontend/src/explore/controls.jsx b/superset-frontend/src/explore/controls.jsx
index 0c14116..cb983cd 100644
--- a/superset-frontend/src/explore/controls.jsx
+++ b/superset-frontend/src/explore/controls.jsx
@@ -607,16 +607,6 @@ export const controls = {
description: t('Whether to ignore locations that are null'),
},
- geojson: {
- type: 'SelectControl',
- label: t('GeoJson Column'),
- validators: [v.nonEmpty],
- description: t('Select the geojson column'),
- mapStateToProps: state => ({
- choices: columnChoices(state.datasource),
- }),
- },
-
polygon: {
type: 'SelectControl',
label: t('Polygon Column'),
@@ -629,15 +619,6 @@ export const controls = {
}),
},
- point_radius_scale: {
- type: 'SelectControl',
- freeForm: true,
- label: t('Point Radius Scale'),
- validators: [v.integer],
- default: null,
- choices: formatSelectOptions([0, 100, 200, 300, 500]),
- },
-
stroke_width: {
type: 'SelectControl',
freeForm: true,
@@ -1187,29 +1168,6 @@ export const controls = {
),
},
- js_agg_function: {
- type: 'SelectControl',
- label: t('Dynamic Aggregation Function'),
- description: t('The function to use when aggregating points into groups'),
- default: 'sum',
- clearable: false,
- renderTrigger: true,
- choices: formatSelectOptions([
- 'sum',
- 'min',
- 'max',
- 'mean',
- 'median',
- 'count',
- 'variance',
- 'deviation',
- 'p1',
- 'p5',
- 'p95',
- 'p99',
- ]),
- },
-
header_font_size: {
type: 'SelectControl',
label: t('Header Font Size'),
@@ -1363,35 +1321,6 @@ export const controls = {
description: t('Send range filter events to other charts'),
},
- toggle_polygons: {
- type: 'CheckboxControl',
- label: t('Multiple filtering'),
- renderTrigger: true,
- default: true,
- description: t('Allow sending multiple polygons as a filter event'),
- },
-
- num_buckets: {
- type: 'SelectControl',
- multi: false,
- freeForm: true,
- label: t('Number of buckets to group data'),
- default: 5,
- choices: formatSelectOptions([2, 3, 5, 10]),
- description: t('How many buckets should the data be grouped in.'),
- renderTrigger: true,
- },
-
- break_points: {
- type: 'SelectControl',
- multi: true,
- freeForm: true,
- label: t('Bucket break points'),
- choices: formatSelectOptions([]),
- description: t('List of n+1 values for bucketing metric into n buckets.'),
- renderTrigger: true,
- },
-
show_labels: {
type: 'CheckboxControl',
label: t('Show Labels'),
@@ -1589,22 +1518,6 @@ export const controls = {
}),
},
- point_unit: {
- type: 'SelectControl',
- label: t('Point Unit'),
- default: 'square_m',
- clearable: false,
- choices: [
- ['square_m', 'Square meters'],
- ['square_km', 'Square kilometers'],
- ['square_miles', 'Square miles'],
- ['radius_m', 'Radius in meters'],
- ['radius_km', 'Radius in kilometers'],
- ['radius_miles', 'Radius in miles'],
- ],
- description: t('The unit of measure for the specified point radius'),
- },
-
global_opacity: {
type: 'TextControl',
label: t('Opacity'),
@@ -1615,17 +1528,6 @@ export const controls = {
),
},
- opacity: {
- type: 'SliderControl',
- label: t('Opacity'),
- default: 80,
- step: 1,
- min: 0,
- max: 100,
- renderTrigger: true,
- description: t('Opacity, expects values between 0 and 100'),
- },
-
viewport: {
type: 'ViewportControl',
label: t('Viewport'),
@@ -1778,32 +1680,6 @@ export const controls = {
controlName: 'TimeSeriesColumnControl',
},
- min_radius: {
- type: 'TextControl',
- label: t('Minimum Radius'),
- isFloat: true,
- validators: [v.nonEmpty],
- renderTrigger: true,
- default: 2,
- description: t(
- 'Minimum radius size of the circle, in pixels. As the zoom level changes, this ' +
- 'insures that the circle respects this minimum radius.',
- ),
- },
-
- max_radius: {
- type: 'TextControl',
- label: t('Maximum Radius'),
- isFloat: true,
- validators: [v.nonEmpty],
- renderTrigger: true,
- default: 250,
- description: t(
- 'Maxium radius size of the circle, in pixels. As the zoom level changes, this ' +
- 'insures that the circle respects this maximum radius.',
- ),
- },
-
line_column: {
type: 'SelectControl',
label: t('Lines column'),
@@ -1887,27 +1763,6 @@ export const controls = {
default: false,
},
- deck_slices: {
- type: 'SelectAsyncControl',
- multi: true,
- label: t('deck.gl charts'),
- validators: [v.nonEmpty],
- default: [],
- description: t(
- 'Pick a set of deck.gl charts to layer on top of one another',
- ),
- dataEndpoint:
- '/sliceasync/api/read?_flt_0_viz_type=deck_&_flt_7_viz_type=deck_multi',
- placeholder: t('Select charts'),
- onAsyncErrorMessage: t('Error while fetching charts'),
- mutator: data => {
- if (!data || !data.result) {
- return [];
- }
- return data.result.map(o => ({ value: o.id, label: o.slice_name }));
- },
- },
-
js_data_mutator: jsFunctionControl(
t('Javascript data interceptor'),
t(