Skip to content

Commit

Permalink
Merge pull request apache#12 from graceguo-supercat/gg-CherryPickSqlL…
Browse files Browse the repository at this point in the history
…abFix

Cherry pick Sql Lab bug fixes (apache#4401)
  • Loading branch information
Grace Guo committed Feb 13, 2018
2 parents 7116f69 + 1b68389 commit 432daa9
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 21 deletions.
15 changes: 8 additions & 7 deletions superset/assets/javascripts/SqlLab/components/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,17 @@ class App extends React.PureComponent {
}
getHeight() {
const warningEl = $('#navbar-warning');
const navTabsEl = $('.nav-tabs');
const tabsEl = $('.nav-tabs');
const searchHeaderEl = $('#search-header');
const alertEl = $('#sqllab-alerts');
const headerNavEl = $('header .navbar');
const navHeight = headerNavEl.outerHeight() + parseInt(headerNavEl.css('marginBottom'), 10);
const searchHeaderHeight = searchHeaderEl.outerHeight() + parseInt(searchHeaderEl.css('marginBottom'), 10);
const headerHeight = navTabsEl.outerHeight() ? navTabsEl.outerHeight() : searchHeaderHeight;
const headerEl = $('header .navbar');
const headerHeight = headerEl.outerHeight() + parseInt(headerEl.css('marginBottom'), 10);
const searchHeaderHeight = searchHeaderEl.length > 0 ?
searchHeaderEl.outerHeight() + parseInt(searchHeaderEl.css('marginBottom'), 10) : 0;
const tabsHeight = tabsEl.length > 0 ? tabsEl.outerHeight() : searchHeaderHeight;
const warningHeight = warningEl.length > 0 ? warningEl.outerHeight() : 0;
const alertHeight = alertEl.length > 0 ? alertEl.outerHeight() : 0;
return `${window.innerHeight - navHeight - headerHeight - warningHeight - alertHeight}px`;
return `${window.innerHeight - headerHeight - tabsHeight - warningHeight - alertHeight}px`;
}
handleResize() {
this.setState({ contentHeight: this.getHeight() });
Expand All @@ -64,7 +65,7 @@ class App extends React.PureComponent {
content = (
<div>
<QueryAutoRefresh />
<TabbedSqlEditors editorHeight={this.state.contentHeight} />
<TabbedSqlEditors getHeight={this.getHeight} />
</div>
);
}
Expand Down
20 changes: 9 additions & 11 deletions superset/assets/javascripts/SqlLab/components/SqlEditor.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import { t } from '../../locales';

const propTypes = {
actions: PropTypes.object.isRequired,
height: PropTypes.string.isRequired,
getHeight: PropTypes.func.isRequired,
database: PropTypes.object,
latestQuery: PropTypes.object,
tables: PropTypes.array.isRequired,
Expand Down Expand Up @@ -73,9 +73,11 @@ class SqlEditor extends React.PureComponent {
}
onResize() {
const height = this.sqlEditorHeight();
const editorPaneHeight = this.props.queryEditor.height || 200;
const splitPaneHandlerHeight = 15;
this.setState({
editorPaneHeight: this.props.queryEditor.height,
southPaneHeight: height - this.props.queryEditor.height,
editorPaneHeight,
southPaneHeight: height - editorPaneHeight - splitPaneHandlerHeight,
height,
});

Expand Down Expand Up @@ -122,11 +124,8 @@ class SqlEditor extends React.PureComponent {
this.setState({ ctas: event.target.value });
}
sqlEditorHeight() {
// quick hack to make the white bg of the tab stretch full height.
const tabNavHeight = 40;
const navBarHeight = 56;
const mysteryVerticalHeight = 50;
return window.innerHeight - tabNavHeight - navBarHeight - mysteryVerticalHeight;
const horizontalScrollbarHeight = 25;
return parseInt(this.props.getHeight(), 10) - horizontalScrollbarHeight;
}
renderEditorBottomBar() {
let ctasControls;
Expand Down Expand Up @@ -227,8 +226,7 @@ class SqlEditor extends React.PureComponent {
<div
className="SqlEditor"
style={{
minHeight: height,
height: this.props.height,
height: height + 'px',
}}
>
<Row>
Expand Down Expand Up @@ -271,7 +269,7 @@ class SqlEditor extends React.PureComponent {
onAltEnter={this.runQuery.bind(this)}
sql={this.props.queryEditor.sql}
tables={this.props.tables}
height={((this.state.editorPaneHeight || defaultNorthHeight) - 50).toString()}
height={((this.state.editorPaneHeight || defaultNorthHeight) - 50) + 'px'}
/>
{this.renderEditorBottomBar()}
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const propTypes = {
queryEditors: PropTypes.array,
tabHistory: PropTypes.array.isRequired,
tables: PropTypes.array.isRequired,
editorHeight: PropTypes.string.isRequired,
getHeight: PropTypes.func.isRequired,
};
const defaultProps = {
queryEditors: [],
Expand Down Expand Up @@ -193,7 +193,7 @@ class TabbedSqlEditors extends React.PureComponent {
<div className="panel-body">
{isSelected &&
<SqlEditor
height={this.props.editorHeight}
getHeight={this.props.getHeight}
tables={this.props.tables.filter(xt => (xt.queryEditorId === qe.id))}
queryEditor={qe}
editorQueries={this.state.queriesArray}
Expand Down
5 changes: 5 additions & 0 deletions superset/assets/javascripts/SqlLab/main.less
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,11 @@ a.Link {
width: 100%;
overflow: scroll;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
padding-bottom: 8px;
}
.search-date-filter-container {
display: flex;

Expand Down
2 changes: 1 addition & 1 deletion superset/assets/spec/javascripts/sqllab/SqlEditor_spec.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ describe('SqlEditor', () => {
latestQuery: queries[0],
tables: [table],
queries,
height: '',
getHeight: () => ('100px'),
editorQueries: [],
dataPreviewQueries: [],
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ describe('TabbedSqlEditors', () => {
queryEditors: initialState.queryEditors,
tabHistory: initialState.tabHistory,
editorHeight: '',
getHeight: () => ('100px'),
};
const getWrapper = () => (
shallow(<TabbedSqlEditors {...mockedProps} />, {
Expand Down

0 comments on commit 432daa9

Please sign in to comment.