mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
[explore] show the broken query when failing (#1871)
* Return query when failing * Linting * sjson -> simplejson
This commit is contained in:
committed by
GitHub
parent
e3b296c558
commit
c14c7edc5e
@@ -129,8 +129,8 @@ export function chartUpdateSucceeded(query) {
|
||||
}
|
||||
|
||||
export const CHART_UPDATE_FAILED = 'CHART_UPDATE_FAILED';
|
||||
export function chartUpdateFailed(error) {
|
||||
return { type: CHART_UPDATE_FAILED, error };
|
||||
export function chartUpdateFailed(error, query) {
|
||||
return { type: CHART_UPDATE_FAILED, error, query };
|
||||
}
|
||||
|
||||
export const UPDATE_EXPLORE_ENDPOINTS = 'UPDATE_EXPLORE_ENDPOINTS';
|
||||
|
||||
@@ -142,7 +142,13 @@ class ChartContainer extends React.Component {
|
||||
},
|
||||
|
||||
error(msg) {
|
||||
props.actions.chartUpdateFailed(msg);
|
||||
let payload = { error: msg };
|
||||
try {
|
||||
payload = JSON.parse(msg);
|
||||
} catch (e) {
|
||||
// pass
|
||||
}
|
||||
props.actions.chartUpdateFailed(payload.error, payload.query);
|
||||
},
|
||||
|
||||
d3format: (col, number) => {
|
||||
|
||||
@@ -108,16 +108,14 @@ export const exploreReducer = function (state, action) {
|
||||
);
|
||||
},
|
||||
[actions.CHART_UPDATE_SUCCEEDED]() {
|
||||
const vizUpdates = {
|
||||
query: action.query,
|
||||
};
|
||||
return Object.assign(
|
||||
{},
|
||||
state,
|
||||
{
|
||||
chartStatus: 'success',
|
||||
viz: Object.assign({}, state.viz, vizUpdates),
|
||||
});
|
||||
viz: Object.assign({}, state.viz, { query: action.query }),
|
||||
}
|
||||
);
|
||||
},
|
||||
[actions.CHART_UPDATE_STARTED]() {
|
||||
const chartUpdateStartTime = now();
|
||||
@@ -138,9 +136,12 @@ export const exploreReducer = function (state, action) {
|
||||
});
|
||||
},
|
||||
[actions.CHART_UPDATE_FAILED]() {
|
||||
const chartUpdateEndTime = now();
|
||||
return Object.assign({}, state,
|
||||
{ chartStatus: 'failed', chartAlert: action.error, chartUpdateEndTime });
|
||||
return Object.assign({}, state, {
|
||||
chartStatus: 'failed',
|
||||
chartAlert: action.error,
|
||||
chartUpdateEndTime: now(),
|
||||
viz: Object.assign({}, state.viz, { query: action.query }),
|
||||
});
|
||||
},
|
||||
[actions.UPDATE_CHART_STATUS]() {
|
||||
const newState = Object.assign({}, state, { chartStatus: action.status });
|
||||
|
||||
@@ -68,11 +68,6 @@ const px = function () {
|
||||
$('#timer').text(num.toFixed(2) + ' sec');
|
||||
};
|
||||
let qrystr = '';
|
||||
const always = function () {
|
||||
// Private f, runs after done and error
|
||||
clearInterval(timer);
|
||||
$('#timer').removeClass('btn-warning');
|
||||
};
|
||||
slice = {
|
||||
data,
|
||||
container,
|
||||
@@ -123,6 +118,13 @@ const px = function () {
|
||||
return utils.d3format(format, number);
|
||||
},
|
||||
/* eslint no-shadow: 0 */
|
||||
always(data) {
|
||||
clearInterval(timer);
|
||||
$('#timer').removeClass('btn-warning');
|
||||
if (data && data.query) {
|
||||
slice.viewSqlQuery = data.query;
|
||||
}
|
||||
},
|
||||
done(payload) {
|
||||
Object.assign(data, payload);
|
||||
|
||||
@@ -131,14 +133,10 @@ const px = function () {
|
||||
container.fadeTo(0.5, 1);
|
||||
container.show();
|
||||
|
||||
if (data !== undefined) {
|
||||
slice.viewSqlQuery = data.query;
|
||||
}
|
||||
|
||||
$('#timer').removeClass('label-warning label-danger');
|
||||
$('#timer').addClass('label-success');
|
||||
$('#timer').removeClass('label-warning label-danger');
|
||||
$('.query-and-save button').removeAttr('disabled');
|
||||
always(data);
|
||||
this.always(data);
|
||||
controller.done(this);
|
||||
},
|
||||
getErrorMsg(xhr) {
|
||||
@@ -161,8 +159,9 @@ const px = function () {
|
||||
token.find('img.loading').hide();
|
||||
container.fadeTo(0.5, 1);
|
||||
let errHtml = '';
|
||||
let o;
|
||||
try {
|
||||
const o = JSON.parse(msg);
|
||||
o = JSON.parse(msg);
|
||||
if (o.error) {
|
||||
errorMsg = o.error;
|
||||
}
|
||||
@@ -181,7 +180,7 @@ const px = function () {
|
||||
$('span.query').removeClass('disabled');
|
||||
$('#timer').addClass('btn-danger');
|
||||
$('.query-and-save button').removeAttr('disabled');
|
||||
always(data);
|
||||
this.always(o);
|
||||
controller.error(this);
|
||||
},
|
||||
clearError() {
|
||||
|
||||
Reference in New Issue
Block a user