mirror of
https://github.com/Kingsrook/qqq-frontend-material-dashboard.git
synced 2025-07-17 21:00:45 +00:00
Update to POST (as multipart form) instead of query-string - so yuge filters work.
This commit is contained in:
@ -1089,19 +1089,17 @@ function ProcessRun({process, table, defaultProcessValues, isModal, isWidget, is
|
|||||||
|
|
||||||
(async () =>
|
(async () =>
|
||||||
{
|
{
|
||||||
|
const formData = new FormData();
|
||||||
const urlSearchParams = new URLSearchParams(location.search);
|
const urlSearchParams = new URLSearchParams(location.search);
|
||||||
let queryStringPairsForInit = [];
|
|
||||||
if (urlSearchParams.get("recordIds"))
|
if (urlSearchParams.get("recordIds"))
|
||||||
{
|
{
|
||||||
const recordIdsFromQueryString = urlSearchParams.get("recordIds").split(",");
|
formData.append("recordsParam", "recordIds")
|
||||||
const encodedRecordIds = recordIdsFromQueryString.map(r => encodeURIComponent(r)).join(",");
|
formData.append("recordIds", urlSearchParams.get("recordIds"))
|
||||||
queryStringPairsForInit.push("recordsParam=recordIds");
|
|
||||||
queryStringPairsForInit.push(`recordIds=${encodedRecordIds}`);
|
|
||||||
}
|
}
|
||||||
else if (urlSearchParams.get("filterJSON"))
|
else if (urlSearchParams.get("filterJSON"))
|
||||||
{
|
{
|
||||||
queryStringPairsForInit.push("recordsParam=filterJSON");
|
formData.append("recordsParam", "filterJSON")
|
||||||
queryStringPairsForInit.push(`filterJSON=${encodeURIComponent(urlSearchParams.get("filterJSON"))}`);
|
formData.append("filterJSON", urlSearchParams.get("filterJSON"));
|
||||||
}
|
}
|
||||||
// todo once saved filters exist
|
// todo once saved filters exist
|
||||||
//else if(urlSearchParams.get("filterId")) {
|
//else if(urlSearchParams.get("filterId")) {
|
||||||
@ -1110,23 +1108,23 @@ function ProcessRun({process, table, defaultProcessValues, isModal, isWidget, is
|
|||||||
// }
|
// }
|
||||||
else if (recordIds)
|
else if (recordIds)
|
||||||
{
|
{
|
||||||
if (recordIds instanceof QQueryFilter)
|
// @ts-ignore - we're checking to see if recordIds is a QQueryFilter-looking object here.
|
||||||
|
if (recordIds instanceof QQueryFilter || (typeof recordIds === "object" && recordIds.criteria))
|
||||||
{
|
{
|
||||||
queryStringPairsForInit.push("recordsParam=filterJSON");
|
formData.append("recordsParam", "filterJSON")
|
||||||
queryStringPairsForInit.push(`filterJSON=${encodeURIComponent(JSON.stringify(recordIds))}`);
|
formData.append("filterJSON", JSON.stringify(recordIds));
|
||||||
}
|
}
|
||||||
else if (typeof recordIds === "object" && recordIds.length)
|
else if (typeof recordIds === "object" && recordIds.length)
|
||||||
{
|
{
|
||||||
const encodedRecordIds = recordIds.map(r => encodeURIComponent(r)).join(",");
|
formData.append("recordsParam", "recordIds")
|
||||||
queryStringPairsForInit.push("recordsParam=recordIds");
|
formData.append("recordIds", recordIds.join(","))
|
||||||
queryStringPairsForInit.push(`recordIds=${encodedRecordIds}`);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tableVariantLocalStorageKey && localStorage.getItem(tableVariantLocalStorageKey))
|
if (tableVariantLocalStorageKey && localStorage.getItem(tableVariantLocalStorageKey))
|
||||||
{
|
{
|
||||||
let tableVariant = JSON.parse(localStorage.getItem(tableVariantLocalStorageKey));
|
let tableVariant = JSON.parse(localStorage.getItem(tableVariantLocalStorageKey));
|
||||||
queryStringPairsForInit.push(`tableVariant=${encodeURIComponent(JSON.stringify(tableVariant))}`);
|
formData.append("tableVariant", JSON.stringify(tableVariant));
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
@ -1170,18 +1168,18 @@ function ProcessRun({process, table, defaultProcessValues, isModal, isWidget, is
|
|||||||
{
|
{
|
||||||
for (let key in defaultProcessValues)
|
for (let key in defaultProcessValues)
|
||||||
{
|
{
|
||||||
queryStringPairsForInit.push(`${key}=${encodeURIComponent(defaultProcessValues[key])}`);
|
formData.append(key, defaultProcessValues[key]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tableMetaData)
|
if (tableMetaData)
|
||||||
{
|
{
|
||||||
queryStringPairsForInit.push(`tableName=${encodeURIComponent(tableMetaData.name)}`);
|
formData.append("tableName", tableMetaData.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
const processResponse = await Client.getInstance().processInit(processName, queryStringPairsForInit.join("&"));
|
const processResponse = await Client.getInstance().processInit(processName, formData);
|
||||||
setProcessUUID(processResponse.processUUID);
|
setProcessUUID(processResponse.processUUID);
|
||||||
setLastProcessResponse(processResponse);
|
setLastProcessResponse(processResponse);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user