mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
[sqllab] config item for SQLLAB_DEFAULT_DBID (#1793)
This commit is contained in:
committed by
GitHub
parent
a95cd71456
commit
aeda5bd260
@@ -101,7 +101,9 @@ class TabbedSqlEditors extends React.PureComponent {
|
||||
const activeQueryEditor = this.activeQueryEditor();
|
||||
const qe = {
|
||||
title: `Untitled Query ${queryCount}`,
|
||||
dbId: (activeQueryEditor) ? activeQueryEditor.dbId : null,
|
||||
dbId: (activeQueryEditor && activeQueryEditor.dbId) ?
|
||||
activeQueryEditor.dbId :
|
||||
this.props.defaultDbId,
|
||||
schema: (activeQueryEditor) ? activeQueryEditor.schema : null,
|
||||
autorun: false,
|
||||
sql: 'SELECT ...',
|
||||
@@ -216,6 +218,7 @@ function mapStateToProps(state) {
|
||||
tabHistory: state.tabHistory,
|
||||
networkOn: state.networkOn,
|
||||
tables: state.tables,
|
||||
defaultDbId: state.defaultDbId,
|
||||
};
|
||||
}
|
||||
function mapDispatchToProps(dispatch) {
|
||||
|
||||
@@ -4,7 +4,7 @@ require('bootstrap');
|
||||
|
||||
import React from 'react';
|
||||
import { render } from 'react-dom';
|
||||
import { initialState, sqlLabReducer } from './reducers';
|
||||
import { getInitialState, sqlLabReducer } from './reducers';
|
||||
import { enhancer } from '../reduxUtils';
|
||||
import { createStore, compose, applyMiddleware } from 'redux';
|
||||
import { Provider } from 'react-redux';
|
||||
@@ -15,8 +15,12 @@ import App from './components/App';
|
||||
|
||||
require('./main.css');
|
||||
|
||||
const appContainer = document.getElementById('app');
|
||||
const bootstrapData = JSON.parse(appContainer.getAttribute('data-bootstrap'));
|
||||
const state = Object.assign({}, getInitialState(bootstrapData.defaultDbId), bootstrapData);
|
||||
|
||||
let store = createStore(
|
||||
sqlLabReducer, initialState, compose(applyMiddleware(thunkMiddleware), enhancer()));
|
||||
sqlLabReducer, state, compose(applyMiddleware(thunkMiddleware), enhancer()));
|
||||
|
||||
// jquery hack to highlight the navbar menu
|
||||
$('a:contains("SQL Lab")').parent().addClass('active');
|
||||
@@ -25,5 +29,5 @@ render(
|
||||
<Provider store={store}>
|
||||
<App />
|
||||
</Provider>,
|
||||
document.getElementById('app')
|
||||
appContainer
|
||||
);
|
||||
|
||||
@@ -4,27 +4,29 @@ import { now } from '../modules/dates';
|
||||
import { addToObject, alterInObject, alterInArr, removeFromArr, getFromArr, addToArr }
|
||||
from '../reduxUtils.js';
|
||||
|
||||
export const defaultQueryEditor = {
|
||||
id: shortid.generate(),
|
||||
title: 'Untitled Query',
|
||||
sql: 'SELECT *\nFROM\nWHERE',
|
||||
selectedText: null,
|
||||
latestQueryId: null,
|
||||
autorun: false,
|
||||
dbId: null,
|
||||
};
|
||||
export function getInitialState(defaultDbId) {
|
||||
const defaultQueryEditor = {
|
||||
id: shortid.generate(),
|
||||
title: 'Untitled Query',
|
||||
sql: 'SELECT *\nFROM\nWHERE',
|
||||
selectedText: null,
|
||||
latestQueryId: null,
|
||||
autorun: false,
|
||||
dbId: defaultDbId,
|
||||
};
|
||||
|
||||
export const initialState = {
|
||||
alerts: [],
|
||||
networkOn: true,
|
||||
queries: {},
|
||||
databases: {},
|
||||
queryEditors: [defaultQueryEditor],
|
||||
tabHistory: [defaultQueryEditor.id],
|
||||
tables: [],
|
||||
queriesLastUpdate: 0,
|
||||
activeSouthPaneTab: 'Results',
|
||||
};
|
||||
return {
|
||||
alerts: [],
|
||||
networkOn: true,
|
||||
queries: {},
|
||||
databases: {},
|
||||
queryEditors: [defaultQueryEditor],
|
||||
tabHistory: [defaultQueryEditor.id],
|
||||
tables: [],
|
||||
queriesLastUpdate: 0,
|
||||
activeSouthPaneTab: 'Results',
|
||||
};
|
||||
}
|
||||
|
||||
export const sqlLabReducer = function (state, action) {
|
||||
const actionHandlers = {
|
||||
@@ -70,7 +72,7 @@ export const sqlLabReducer = function (state, action) {
|
||||
return Object.assign({}, state, { queries: newQueries });
|
||||
},
|
||||
[actions.RESET_STATE]() {
|
||||
return Object.assign({}, initialState);
|
||||
return Object.assign({}, getInitialState());
|
||||
},
|
||||
[actions.MERGE_TABLE]() {
|
||||
const at = Object.assign({}, action.table);
|
||||
|
||||
@@ -234,6 +234,9 @@ DEFAULT_DB_ID = None
|
||||
# Timeout duration for SQL Lab synchronous queries
|
||||
SQLLAB_TIMEOUT = 30
|
||||
|
||||
# SQLLAB_DEFAULT_DBID
|
||||
SQLLAB_DEFAULT_DBID = None
|
||||
|
||||
# An instantiated derivative of werkzeug.contrib.cache.BaseCache
|
||||
# if enabled, it can be used to store the results of long-running queries
|
||||
# in SQL Lab by using the "Run Async" button/feature
|
||||
|
||||
@@ -2702,8 +2702,13 @@ class Superset(BaseSupersetView):
|
||||
@expose("/sqllab")
|
||||
def sqllab(self):
|
||||
"""SQL Editor"""
|
||||
return self.render_template('superset/sqllab.html')
|
||||
|
||||
d = {
|
||||
'defaultDbId': config.get('SQLLAB_DEFAULT_DBID'),
|
||||
}
|
||||
return self.render_template(
|
||||
'superset/sqllab.html',
|
||||
bootstrap_data=json.dumps(d, default=utils.json_iso_dttm_ser)
|
||||
)
|
||||
appbuilder.add_view_no_menu(Superset)
|
||||
|
||||
if config['DRUID_IS_ACTIVE']:
|
||||
|
||||
Reference in New Issue
Block a user