fix saving new sql lab queries (#8351)

* fix saving new sql lab queries

* allow freshly saved queries to be updated immediately
This commit is contained in:
David Aaron Suddjian 2019-10-04 16:43:05 -07:00 committed by Grace Guo
parent 04c3d1f58d
commit b093406536
3 changed files with 16 additions and 11 deletions

View File

@ -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'))));
}

View File

@ -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);

View File

@ -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/<pk>")