You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ma...@apache.org on 2019/07/13 21:25:20 UTC
[incubator-superset] branch master updated: [wip] fix: multi
deck.gl bug fixes (pt 2) (#7866)
This is an automated email from the ASF dual-hosted git repository.
maximebeauchemin 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 1197d25 [wip] fix: multi deck.gl bug fixes (pt 2) (#7866)
1197d25 is described below
commit 1197d25c3cec37217c5ac99b58746b97a91959c9
Author: Tom Hunter <th...@users.noreply.github.com>
AuthorDate: Sat Jul 13 17:25:04 2019 -0400
[wip] fix: multi deck.gl bug fixes (pt 2) (#7866)
* fix: update polygon example data to work with multi deck.gl
- both "point_radius_fixed" and "multiplier" attributes were not set during load_examples so these charts were failing when viewing as a multi deck.gl chart
* fix: unify deck.gl getLayers api to fix multi deck.gl tooltips
- various deck.gl layers implemented getLayers slightly differently which caused issues with generating default tooltips when the layers are viewed in a multi deck.gl chart
* fix: cleanup formData variable in scatter chart for consistency
* linting fix + polygon regression fix
* additional linting fixes
---
superset/assets/src/visualizations/deckgl/Multi/Multi.jsx | 13 +++++++++++++
.../src/visualizations/deckgl/layers/Polygon/Polygon.jsx | 3 ++-
.../src/visualizations/deckgl/layers/Scatter/Scatter.jsx | 3 ++-
.../visualizations/deckgl/layers/Screengrid/Screengrid.jsx | 2 +-
superset/data/deck.py | 2 ++
5 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/superset/assets/src/visualizations/deckgl/Multi/Multi.jsx b/superset/assets/src/visualizations/deckgl/Multi/Multi.jsx
index a0d6225..b511eaa 100644
--- a/superset/assets/src/visualizations/deckgl/Multi/Multi.jsx
+++ b/superset/assets/src/visualizations/deckgl/Multi/Multi.jsx
@@ -29,6 +29,14 @@ const propTypes = {
payload: PropTypes.object.isRequired,
setControlValue: PropTypes.func.isRequired,
viewport: PropTypes.object.isRequired,
+ onAddFilter: PropTypes.func,
+ setTooltip: PropTypes.func,
+ onSelect: PropTypes.func,
+};
+const defaultProps = {
+ onAddFilter() {},
+ setTooltip() {},
+ onSelect() {},
};
class DeckMulti extends React.PureComponent {
@@ -78,6 +86,10 @@ class DeckMulti extends React.PureComponent {
const layer = layerGenerators[subsliceCopy.form_data.viz_type](
subsliceCopy.form_data,
json,
+ this.props.onAddFilter,
+ this.props.setTooltip,
+ [],
+ this.props.onSelect,
);
this.setState({
subSlicesLayers: {
@@ -110,5 +122,6 @@ class DeckMulti extends React.PureComponent {
}
DeckMulti.propTypes = propTypes;
+DeckMulti.defaultProps = defaultProps;
export default DeckMulti;
diff --git a/superset/assets/src/visualizations/deckgl/layers/Polygon/Polygon.jsx b/superset/assets/src/visualizations/deckgl/layers/Polygon/Polygon.jsx
index 7e30668..3797d7e 100644
--- a/superset/assets/src/visualizations/deckgl/layers/Polygon/Polygon.jsx
+++ b/superset/assets/src/visualizations/deckgl/layers/Polygon/Polygon.jsx
@@ -61,7 +61,7 @@ function setTooltipContent(formData) {
};
}
-export function getLayer(formData, payload, setTooltip, selected, onSelect, filters) {
+export function getLayer(formData, payload, onAddFilter, setTooltip, selected, onSelect, filters) {
const fd = formData;
const fc = fd.fill_color_picker;
const sc = fd.stroke_color_picker;
@@ -236,6 +236,7 @@ class DeckGLPolygon extends React.Component {
const layer = getLayer(
this.props.formData,
this.props.payload,
+ this.props.onAddFilter,
this.props.setTooltip,
this.state.selected,
this.onSelect,
diff --git a/superset/assets/src/visualizations/deckgl/layers/Scatter/Scatter.jsx b/superset/assets/src/visualizations/deckgl/layers/Scatter/Scatter.jsx
index 8ca13aa..add107d 100644
--- a/superset/assets/src/visualizations/deckgl/layers/Scatter/Scatter.jsx
+++ b/superset/assets/src/visualizations/deckgl/layers/Scatter/Scatter.jsx
@@ -42,7 +42,8 @@ function setTooltipContent(formData) {
);
}
-export function getLayer(fd, payload, onAddFilter, setTooltip) {
+export function getLayer(formData, payload, onAddFilter, setTooltip) {
+ const fd = formData;
const dataWithRadius = payload.data.features.map((d) => {
let radius = unitToRadius(fd.point_unit, d.radius) || 10;
if (fd.multiplier) {
diff --git a/superset/assets/src/visualizations/deckgl/layers/Screengrid/Screengrid.jsx b/superset/assets/src/visualizations/deckgl/layers/Screengrid/Screengrid.jsx
index 1efefae..d9fba4c 100644
--- a/superset/assets/src/visualizations/deckgl/layers/Screengrid/Screengrid.jsx
+++ b/superset/assets/src/visualizations/deckgl/layers/Screengrid/Screengrid.jsx
@@ -41,7 +41,7 @@ function setTooltipContent(o) {
);
}
-export function getLayer(formData, payload, onAddFilter, setTooltip, filters) {
+export function getLayer(formData, payload, onAddFilter, setTooltip, selected, onSelect, filters) {
const fd = formData;
const c = fd.color_picker;
let data = payload.data.features.map(d => ({
diff --git a/superset/data/deck.py b/superset/data/deck.py
index 53445d5..974be90 100644
--- a/superset/data/deck.py
+++ b/superset/data/deck.py
@@ -361,6 +361,8 @@ def load_deck_dash():
"stroked": False,
"extruded": True,
"point_radius_scale": 100,
+ "point_radius_fixed": {"type": "metric", "value": "count"},
+ "multiplier": 1,
"js_columns": ["population", "area"],
"js_data_mutator": "data => data.map(d => ({\n"
" ...d,\n"