mirror of
https://github.com/apache/superset.git
synced 2026-04-26 03:24:53 +00:00
* split reducer logic for ExploreViewContainer * fix saveModal component and unit tests * revert changes in SaveModal_spec. will make another commit just to improve test coverage for SaveModal component. * remove comment-out code * fix merge confilicts
73 lines
2.4 KiB
JavaScript
73 lines
2.4 KiB
JavaScript
/* eslint camelcase: 0 */
|
|
import { now } from '../../modules/dates';
|
|
import * as actions from '../actions/chartActions';
|
|
import { QUERY_TIMEOUT_THRESHOLD } from '../../constants';
|
|
|
|
export default function chartReducer(state = {}, action) {
|
|
const actionHandlers = {
|
|
[actions.CHART_UPDATE_SUCCEEDED]() {
|
|
return Object.assign(
|
|
{},
|
|
state,
|
|
{
|
|
chartStatus: 'success',
|
|
queryResponse: action.queryResponse,
|
|
},
|
|
);
|
|
},
|
|
[actions.CHART_UPDATE_STARTED]() {
|
|
return Object.assign({}, state,
|
|
{
|
|
chartStatus: 'loading',
|
|
chartUpdateEndTime: null,
|
|
chartUpdateStartTime: now(),
|
|
queryRequest: action.queryRequest,
|
|
latestQueryFormData: action.latestQueryFormData,
|
|
});
|
|
},
|
|
[actions.CHART_UPDATE_STOPPED]() {
|
|
return Object.assign({}, state,
|
|
{
|
|
chartStatus: 'stopped',
|
|
chartAlert: 'Updating chart was stopped',
|
|
});
|
|
},
|
|
[actions.CHART_RENDERING_FAILED]() {
|
|
return Object.assign({}, state, {
|
|
chartStatus: 'failed',
|
|
chartAlert: 'An error occurred while rendering the visualization: ' + action.error,
|
|
});
|
|
},
|
|
[actions.CHART_UPDATE_TIMEOUT]() {
|
|
return Object.assign({}, state, {
|
|
chartStatus: 'failed',
|
|
chartAlert: '<strong>Query timeout</strong> - visualization query are set to timeout at ' +
|
|
`${QUERY_TIMEOUT_THRESHOLD / 1000} seconds. ` +
|
|
'Perhaps your data has grown, your database is under unusual load, ' +
|
|
'or you are simply querying a data source that is to large to be processed within the timeout range. ' +
|
|
'If that is the case, we recommend that you summarize your data further.',
|
|
});
|
|
},
|
|
[actions.CHART_UPDATE_FAILED]() {
|
|
return Object.assign({}, state, {
|
|
chartStatus: 'failed',
|
|
chartAlert: action.queryResponse ? action.queryResponse.error : 'Network error.',
|
|
chartUpdateEndTime: now(),
|
|
queryResponse: action.queryResponse,
|
|
});
|
|
},
|
|
[actions.UPDATE_CHART_STATUS]() {
|
|
const newState = Object.assign({}, state, { chartStatus: action.status });
|
|
if (action.status === 'success' || action.status === 'failed') {
|
|
newState.chartUpdateEndTime = now();
|
|
}
|
|
return newState;
|
|
},
|
|
};
|
|
|
|
if (action.type in actionHandlers) {
|
|
return actionHandlers[action.type]();
|
|
}
|
|
return state;
|
|
}
|