mirror of
https://github.com/apache/superset.git
synced 2026-05-12 19:35:17 +00:00
feat!: pass datasource_type and datasource_id to form_data (#19981)
* pass datasource_type and datasource_id to form_data * add datasource_type to delete command * add datasource_type to delete command * fix old keys implementation * add more tests
This commit is contained in:
committed by
GitHub
parent
a813528958
commit
32bb1ce3ff
@@ -92,7 +92,7 @@ test('generates a new form_data param when none is available', async () => {
|
||||
expect(replaceState).toHaveBeenCalledWith(
|
||||
expect.anything(),
|
||||
undefined,
|
||||
expect.stringMatching('dataset_id'),
|
||||
expect.stringMatching('datasource_id'),
|
||||
);
|
||||
replaceState.mockRestore();
|
||||
});
|
||||
@@ -109,7 +109,7 @@ test('generates a different form_data param when one is provided and is mounting
|
||||
expect(replaceState).toHaveBeenCalledWith(
|
||||
expect.anything(),
|
||||
undefined,
|
||||
expect.stringMatching('dataset_id'),
|
||||
expect.stringMatching('datasource_id'),
|
||||
);
|
||||
replaceState.mockRestore();
|
||||
});
|
||||
|
||||
@@ -152,14 +152,24 @@ const ExplorePanelContainer = styled.div`
|
||||
`;
|
||||
|
||||
const updateHistory = debounce(
|
||||
async (formData, datasetId, isReplace, standalone, force, title, tabId) => {
|
||||
async (
|
||||
formData,
|
||||
datasourceId,
|
||||
datasourceType,
|
||||
isReplace,
|
||||
standalone,
|
||||
force,
|
||||
title,
|
||||
tabId,
|
||||
) => {
|
||||
const payload = { ...formData };
|
||||
const chartId = formData.slice_id;
|
||||
const additionalParam = {};
|
||||
if (chartId) {
|
||||
additionalParam[URL_PARAMS.sliceId.name] = chartId;
|
||||
} else {
|
||||
additionalParam[URL_PARAMS.datasetId.name] = datasetId;
|
||||
additionalParam[URL_PARAMS.datasourceId.name] = datasourceId;
|
||||
additionalParam[URL_PARAMS.datasourceType.name] = datasourceType;
|
||||
}
|
||||
|
||||
const urlParams = payload?.url_params || {};
|
||||
@@ -173,11 +183,24 @@ const updateHistory = debounce(
|
||||
let key;
|
||||
let stateModifier;
|
||||
if (isReplace) {
|
||||
key = await postFormData(datasetId, formData, chartId, tabId);
|
||||
key = await postFormData(
|
||||
datasourceId,
|
||||
datasourceType,
|
||||
formData,
|
||||
chartId,
|
||||
tabId,
|
||||
);
|
||||
stateModifier = 'replaceState';
|
||||
} else {
|
||||
key = getUrlParam(URL_PARAMS.formDataKey);
|
||||
await putFormData(datasetId, key, formData, chartId, tabId);
|
||||
await putFormData(
|
||||
datasourceId,
|
||||
datasourceType,
|
||||
key,
|
||||
formData,
|
||||
chartId,
|
||||
tabId,
|
||||
);
|
||||
stateModifier = 'pushState';
|
||||
}
|
||||
const url = mountExploreUrl(
|
||||
@@ -229,11 +252,12 @@ function ExploreViewContainer(props) {
|
||||
dashboardId: props.dashboardId,
|
||||
}
|
||||
: props.form_data;
|
||||
const datasetId = props.datasource.id;
|
||||
const { id: datasourceId, type: datasourceType } = props.datasource;
|
||||
|
||||
updateHistory(
|
||||
formData,
|
||||
datasetId,
|
||||
datasourceId,
|
||||
datasourceType,
|
||||
isReplace,
|
||||
props.standalone,
|
||||
props.force,
|
||||
@@ -245,6 +269,7 @@ function ExploreViewContainer(props) {
|
||||
props.dashboardId,
|
||||
props.form_data,
|
||||
props.datasource.id,
|
||||
props.datasource.type,
|
||||
props.standalone,
|
||||
props.force,
|
||||
tabId,
|
||||
|
||||
Reference in New Issue
Block a user