diff --git a/superset/assets/javascripts/explorev2/components/ChartContainer.jsx b/superset/assets/javascripts/explorev2/components/ChartContainer.jsx index 640527427c7..f6ea3469fb0 100644 --- a/superset/assets/javascripts/explorev2/components/ChartContainer.jsx +++ b/superset/assets/javascripts/explorev2/components/ChartContainer.jsx @@ -263,8 +263,8 @@ class ChartContainer extends React.PureComponent {
{this.props.chartStatus === 'success' && - this.props.queryResponse && - this.props.queryResponse.is_cached && + this.props.queryResponse && + this.props.queryResponse.is_cached && cached - + } { - this.setState({ - language: data.language, - query: data.query, - isLoading: false, - }); - }, - error: data => { - this.setState({ - error: data.error, - isLoading: false, - }); - }, - }); - } setStateFromQueryResponse() { const qr = this.props.queryResponse; this.setState({ @@ -56,6 +36,26 @@ export default class DisplayQueryButton extends React.PureComponent { isLoading: false, }); } + fetchQuery() { + this.setState({ isLoading: true }); + $.ajax({ + type: 'GET', + url: this.props.queryEndpoint, + success: (data) => { + this.setState({ + language: data.language, + query: data.query, + isLoading: false, + }); + }, + error: (data) => { + this.setState({ + error: data.error, + isLoading: false, + }); + }, + }); + } beforeOpen() { if (this.props.chartStatus === 'loading' || this.props.chartStatus === null) { this.fetchQuery(); diff --git a/superset/assets/spec/javascripts/explorev2/components/DisplayQueryButton_spec.jsx b/superset/assets/spec/javascripts/explorev2/components/DisplayQueryButton_spec.jsx index 43268508935..bdff00e777d 100644 --- a/superset/assets/spec/javascripts/explorev2/components/DisplayQueryButton_spec.jsx +++ b/superset/assets/spec/javascripts/explorev2/components/DisplayQueryButton_spec.jsx @@ -3,7 +3,7 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; import { mount } from 'enzyme'; import { Modal } from 'react-bootstrap'; -import ModalTrigger from './../../../../javascripts/components/ModalTrigger.jsx'; +import ModalTrigger from './../../../../javascripts/components/ModalTrigger'; import DisplayQueryButton from '../../../../javascripts/explorev2/components/DisplayQueryButton'; diff --git a/superset/db_engine_specs.py b/superset/db_engine_specs.py index bb211d92fa9..2d6d28d7e9c 100644 --- a/superset/db_engine_specs.py +++ b/superset/db_engine_specs.py @@ -429,18 +429,6 @@ class PrestoEngineSpec(BaseEngineSpec): row['table_schema'], row['table_name'])) return result_sets - @classmethod - def extract_error_message(cls, e): - """Extract error message for queries""" - logging.error(e) - print("-="*100) - print("-="*100) - print("-="*100) - print("-="*100) - print(type(e)) - print(dir(e)) - return error_msg_from_exception(e) - @classmethod def extra_table_metadata(cls, database, table_name, schema_name): indexes = database.get_indexes(table_name, schema_name)