mirror of
https://github.com/apache/superset.git
synced 2026-04-18 07:35:09 +00:00
[explore] force control validation before runQuery (#2544)
* [explore] force control validation before runQuery * Addressing comments
This commit is contained in:
committed by
GitHub
parent
493ba18362
commit
75a358c616
@@ -58,6 +58,7 @@ class ChartContainer extends React.PureComponent {
|
||||
|
||||
componentDidUpdate(prevProps) {
|
||||
if (
|
||||
this.props.queryResponse &&
|
||||
(
|
||||
prevProps.queryResponse !== this.props.queryResponse ||
|
||||
prevProps.height !== this.props.height ||
|
||||
|
||||
@@ -48,8 +48,12 @@ export default class Control extends React.PureComponent {
|
||||
super(props);
|
||||
this.validate = this.validate.bind(this);
|
||||
this.onChange = this.onChange.bind(this);
|
||||
this.validateAndSetValue(props.value, []);
|
||||
}
|
||||
onChange(value, errors) {
|
||||
this.validateAndSetValue(value, errors);
|
||||
}
|
||||
validateAndSetValue(value, errors) {
|
||||
let validationErrors = this.validate(value);
|
||||
if (errors && errors.length > 0) {
|
||||
validationErrors = validationErrors.concat(errors);
|
||||
|
||||
@@ -47,7 +47,7 @@ class ExploreViewContainer extends React.Component {
|
||||
}
|
||||
|
||||
componentDidUpdate() {
|
||||
if (this.props.triggerQuery) {
|
||||
if (this.props.triggerQuery && !this.hasErrors()) {
|
||||
this.runQuery();
|
||||
}
|
||||
}
|
||||
@@ -95,6 +95,10 @@ class ExploreViewContainer extends React.Component {
|
||||
toggleModal() {
|
||||
this.setState({ showModal: !this.state.showModal });
|
||||
}
|
||||
hasErrors() {
|
||||
const ctrls = this.props.controls;
|
||||
return Object.keys(ctrls).some(k => ctrls[k].validationErrors.length > 0);
|
||||
}
|
||||
renderErrorMessage() {
|
||||
// Returns an error message as a node if any errors are in the store
|
||||
const errors = [];
|
||||
|
||||
@@ -9,7 +9,7 @@ const propTypes = {
|
||||
onSave: PropTypes.func,
|
||||
onStop: PropTypes.func,
|
||||
loading: PropTypes.bool,
|
||||
errorMessage: PropTypes.string,
|
||||
errorMessage: PropTypes.node,
|
||||
};
|
||||
|
||||
const defaultProps = {
|
||||
@@ -37,6 +37,7 @@ export default function QueryAndSaveBtns(
|
||||
className="query"
|
||||
onClick={onQuery}
|
||||
bsStyle={qryButtonStyle}
|
||||
disabled={!!errorMessage}
|
||||
>
|
||||
<i className="fa fa-bolt" /> Query
|
||||
</Button>
|
||||
|
||||
Reference in New Issue
Block a user