diff --git a/superset/assets/javascripts/explorev2/components/ExploreViewContainer.jsx b/superset/assets/javascripts/explorev2/components/ExploreViewContainer.jsx index e9e68d5150..63b3974b30 100644 --- a/superset/assets/javascripts/explorev2/components/ExploreViewContainer.jsx +++ b/superset/assets/javascripts/explorev2/components/ExploreViewContainer.jsx @@ -7,6 +7,7 @@ import ChartContainer from './ChartContainer'; import ControlPanelsContainer from './ControlPanelsContainer'; import SaveModal from './SaveModal'; import QueryAndSaveBtns from '../../explore/components/QueryAndSaveBtns'; +import { autoQueryFields } from '../stores/store'; const $ = require('jquery'); const propTypes = { @@ -29,12 +30,24 @@ class ExploreViewContainer extends React.Component { window.addEventListener('resize', this.handleResize.bind(this)); } + componentWillReceiveProps(nextProps) { + let refreshChart = false; + autoQueryFields.forEach((field) => { + if (nextProps.form_data[field] !== this.props.form_data[field]) { + refreshChart = true; + } + }); + if (refreshChart) { + this.onQuery(nextProps.form_data); + } + } + componentWillUnmount() { window.removeEventListener('resize', this.handleResize.bind(this)); } - onQuery() { + + onQuery(form_data) { const data = {}; - const form_data = this.props.form_data; Object.keys(form_data).forEach((field) => { // filter out null fields if (form_data[field] !== null && field !== 'datasource') { @@ -101,7 +114,7 @@ class ExploreViewContainer extends React.Component {