Enable "Run Query in New Tab" in SQL Lab (#1343)

* Enable "Clone to New Tab" btn in QueryHistoryTable

Method #1; doesn't feel very clean.

Going to attempt to reimplement using an action and changing state directly
through the reducer rather than creating a new QueryEditor object directly from
the QueryTable

* Move Clone Logic to Action

* Implement PR feedback

* Clean up reducer action; fix bug

Bug => Attempting to clone anything other than the most recent Query for a given
TabbedQueryEditor would throw an exception, because we depended on lastQueryId
to find the title of the QueryEditor to clone. Since you can only activate a
clone from the currently active tab, we can instead fetch the ID of the Editor
to copy the Title of from the tip of tabHistory.

* Tests for Reducer Action

* Fix CodeClimate feedback
This commit is contained in:
Nick Barnwell
2016-10-18 16:02:29 -07:00
committed by Maxime Beauchemin
parent 8f299448ea
commit 2edce5bf8a
4 changed files with 52 additions and 4 deletions

View File

@@ -41,10 +41,11 @@ class QueryTable extends React.Component {
restoreSql(query) {
this.props.actions.queryEditorSetSql({ id: query.sqlEditorId }, query.sql);
}
notImplemented() {
/* eslint no-alert: 0 */
alert('Not implemented yet!');
openQueryInNewTab(query) {
this.props.actions.cloneQueryToNewTab(query);
}
render() {
const data = this.props.queries.map((query) => {
const q = Object.assign({}, query);
@@ -112,7 +113,7 @@ class QueryTable extends React.Component {
/>
<Link
className="fa fa-plus-circle m-r-3"
onClick={self.notImplemented}
onClick={this.openQueryInNewTab.bind(this, query)}
tooltip="Run query in a new tab"
placement="top"
/>