diff --git a/superset/assets/src/SqlLab/actions/sqlLab.js b/superset/assets/src/SqlLab/actions/sqlLab.js index f4fcc8e16..8f36ecad2 100644 --- a/superset/assets/src/SqlLab/actions/sqlLab.js +++ b/superset/assets/src/SqlLab/actions/sqlLab.js @@ -35,6 +35,7 @@ import COMMON_ERR_MESSAGES from '../../utils/errorMessages'; export const RESET_STATE = 'RESET_STATE'; export const ADD_QUERY_EDITOR = 'ADD_QUERY_EDITOR'; export const UPDATE_QUERY_EDITOR = 'UPDATE_QUERY_EDITOR'; +export const QUERY_EDITOR_SAVED = 'QUERY_EDITOR_SAVED'; export const CLONE_QUERY_TO_NEW_TAB = 'CLONE_QUERY_TO_NEW_TAB'; export const REMOVE_QUERY_EDITOR = 'REMOVE_QUERY_EDITOR'; export const MERGE_TABLE = 'MERGE_TABLE'; @@ -129,7 +130,14 @@ export function saveQuery(query) { postPayload: convertQueryToServer(query), stringify: false, }) - .then(() => dispatch(addSuccessToast(t('Your query was saved')))) + .then((result) => { + dispatch({ + type: QUERY_EDITOR_SAVED, + query, + result: convertQueryToClient(result.json.item), + }); + dispatch(addSuccessToast(t('Your query was saved'))); + }) .catch(() => dispatch(addDangerToast(t('Your query could not be saved')))); } diff --git a/superset/assets/src/SqlLab/reducers/sqlLab.js b/superset/assets/src/SqlLab/reducers/sqlLab.js index aafc753c9..1d0715a5d 100644 --- a/superset/assets/src/SqlLab/reducers/sqlLab.js +++ b/superset/assets/src/SqlLab/reducers/sqlLab.js @@ -39,6 +39,11 @@ export default function sqlLabReducer(state = {}, action) { const newState = Object.assign({}, state, { tabHistory }); return addToArr(newState, 'queryEditors', action.queryEditor); }, + [actions.QUERY_EDITOR_SAVED]() { + const { query, result } = action; + const existing = state.queryEditors.find(qe => qe.id === query.id); + return alterInArr(state, 'queryEditors', existing, { remoteId: result.remoteId }, 'id'); + }, [actions.UPDATE_QUERY_EDITOR]() { const id = action.alterations.remoteId; const existing = state.queryEditors.find(qe => qe.remoteId === id); diff --git a/superset/views/sql_lab.py b/superset/views/sql_lab.py index 06339cd54..1d202fac6 100644 --- a/superset/views/sql_lab.py +++ b/superset/views/sql_lab.py @@ -156,17 +156,9 @@ class SavedQueryViewApi(SavedQueryView): "sql", "extra_json", ] - show_columns = [ - "id", - "label", - "db_id", - "schema", - "description", - "sql", - "extra_json", - ] - add_columns = show_columns + add_columns = ["label", "db_id", "schema", "description", "sql", "extra_json"] edit_columns = add_columns + show_columns = add_columns + ["id"] @has_access_api @expose("show/")