diff --git a/superset/assets/javascripts/explore/components/QueryAndSaveBtns.jsx b/superset/assets/javascripts/explore/components/QueryAndSaveBtns.jsx
index 08259e9cf4d..1d06d7a8e69 100644
--- a/superset/assets/javascripts/explore/components/QueryAndSaveBtns.jsx
+++ b/superset/assets/javascripts/explore/components/QueryAndSaveBtns.jsx
@@ -1,36 +1,46 @@
import React, { PropTypes } from 'react';
+import { Button, ButtonGroup } from 'react-bootstrap';
import classnames from 'classnames';
const propTypes = {
canAdd: PropTypes.string.isRequired,
onQuery: PropTypes.func.isRequired,
onSave: PropTypes.func,
+ disabled: PropTypes.bool,
};
const defaultProps = {
onSave: () => {},
+ disabled: false,
};
-export default function QueryAndSaveBtns({ canAdd, onQuery, onSave }) {
- const saveClasses = classnames('btn btn-default btn-sm', {
+export default function QueryAndSaveBtns({ canAdd, onQuery, onSave, disabled }) {
+ const saveClasses = classnames({
'disabled disabledButton': canAdd !== 'True',
});
return (
-
-
-
+
+
);
}
diff --git a/superset/assets/javascripts/explorev2/components/ExploreViewContainer.jsx b/superset/assets/javascripts/explorev2/components/ExploreViewContainer.jsx
index 3c594de726b..7e4d210e453 100644
--- a/superset/assets/javascripts/explorev2/components/ExploreViewContainer.jsx
+++ b/superset/assets/javascripts/explorev2/components/ExploreViewContainer.jsx
@@ -14,6 +14,7 @@ const propTypes = {
form_data: React.PropTypes.object.isRequired,
actions: React.PropTypes.object.isRequired,
datasource_type: React.PropTypes.string.isRequired,
+ chartStatus: React.PropTypes.string.isRequired,
};
@@ -94,6 +95,7 @@ class ExploreViewContainer extends React.Component {
canAdd="True"
onQuery={this.onQuery.bind(this, this.props.form_data)}
onSave={this.toggleModal.bind(this)}
+ disabled={this.props.chartStatus === 'loading'}
/>
{
});
it('renders 2 buttons', () => {
- expect(wrapper.find('button')).to.have.lengthOf(2);
+ expect(wrapper.find(Button)).to.have.lengthOf(2);
});
it('renders buttons with correct text', () => {
- expect(wrapper.find('button').contains(' Query')).to.eql(true);
- expect(wrapper.find('button').contains(' Save as')).to.eql(true);
+ expect(wrapper.find(Button).contains(' Query')).to.eql(true);
+ expect(wrapper.find(Button).contains(' Save as')).to.eql(true);
});
it('calls onQuery when query button is clicked', () => {