From a463b4daf9777c431dd24d1729fd8a5b26b221bc Mon Sep 17 00:00:00 2001 From: Beto Dealmeida Date: Thu, 30 Aug 2018 11:17:15 -0700 Subject: [PATCH] Fix redirect to SQL Lab (#5777) (cherry picked from commit 8af3e1f3a17618ffda70d659d0eb0fe776925673) (cherry picked from commit 1d64350ecb12c8360c39f920e780e04e6daac7bd) --- superset/assets/src/chart/chartAction.js | 9 +++++++-- superset/assets/src/chart/chartReducer.js | 6 ++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/superset/assets/src/chart/chartAction.js b/superset/assets/src/chart/chartAction.js index 1d3e9f333cc64..58ad1028520ea 100644 --- a/superset/assets/src/chart/chartAction.js +++ b/superset/assets/src/chart/chartAction.js @@ -202,8 +202,13 @@ export function runQuery(formData, force = false, timeout = 60, key) { }; } +export const SQLLAB_REDIRECT_FAILED = 'SQLLAB_REDIRECT_FAILED'; +export function sqllabRedirectFailed(error, key) { + return { type: SQLLAB_REDIRECT_FAILED, error, key }; +} + export function redirectSQLLab(formData) { - return function () { + return function (dispatch) { const { url, payload } = getExploreUrlAndPayload({ formData, endpointType: 'query' }); $.ajax({ type: 'POST', @@ -218,7 +223,7 @@ export function redirectSQLLab(formData) { .search({ datasourceKey: formData.datasource, sql: response.query }); window.open(redirectUrl.href(), '_blank'); }, - error: () => notify.error(t("The SQL couldn't be loaded")), + error: (xhr, status, error) => dispatch(sqllabRedirectFailed(error, formData.slice_id)), }); }; } diff --git a/superset/assets/src/chart/chartReducer.js b/superset/assets/src/chart/chartReducer.js index ea8de8b54d9ea..5563d5c8b2096 100644 --- a/superset/assets/src/chart/chartReducer.js +++ b/superset/assets/src/chart/chartReducer.js @@ -133,6 +133,12 @@ export default function chartReducer(charts = {}, action) { annotationQuery, }; }, + [actions.SQLLAB_REDIRECT_FAILED](state) { + return { ...state, + chartStatus: 'failed', + chartAlert: t('An error occurred while redirecting to SQL Lab: %s', action.error), + }; + }, }; /* eslint-disable no-param-reassign */