From fb10dad803df4a7d66f3326bedb8d1269a94b329 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Tue, 18 Mar 2025 11:40:22 -0500 Subject: [PATCH 1/2] Add support for query-param defaultProcessValues (as a json object) --- src/qqq/pages/processes/ProcessRun.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/qqq/pages/processes/ProcessRun.tsx b/src/qqq/pages/processes/ProcessRun.tsx index 9a322db..baf1185 100644 --- a/src/qqq/pages/processes/ProcessRun.tsx +++ b/src/qqq/pages/processes/ProcessRun.tsx @@ -1838,6 +1838,20 @@ function ProcessRun({process, table, defaultProcessValues, isModal, isWidget, is return; } + if(urlSearchParams.get("defaultProcessValues")) + { + if(!defaultProcessValues) + { + defaultProcessValues = {} + } + + const values = JSON.parse(urlSearchParams.get("defaultProcessValues")); + for (let key in values) + { + defaultProcessValues[key] = values[key] + } + } + if (defaultProcessValues) { for (let key in defaultProcessValues) From 679375ba63bae69dff50e477355109bed8bd6c51 Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Tue, 18 Mar 2025 11:44:32 -0500 Subject: [PATCH 2/2] update processClicked to set alert if min/max input records isn't satisfied --- package.json | 2 +- src/qqq/pages/records/query/RecordQuery.tsx | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 102e896..25d9393 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "@auth0/auth0-react": "1.10.2", "@emotion/react": "11.7.1", "@emotion/styled": "11.6.0", - "@kingsrook/qqq-frontend-core": "1.0.114", + "@kingsrook/qqq-frontend-core": "1.0.119", "@mui/icons-material": "5.4.1", "@mui/material": "5.11.1", "@mui/styles": "5.11.1", diff --git a/src/qqq/pages/records/query/RecordQuery.tsx b/src/qqq/pages/records/query/RecordQuery.tsx index c26fe8c..b84a714 100644 --- a/src/qqq/pages/records/query/RecordQuery.tsx +++ b/src/qqq/pages/records/query/RecordQuery.tsx @@ -1612,6 +1612,22 @@ const RecordQuery = forwardRef(({table, usage, isModal, isPreview, allowVariable *******************************************************************************/ const processClicked = (process: QProcessMetaData) => { + if (process.minInputRecords != null && process.minInputRecords > 0 && getNoOfSelectedRecords() === 0) + { + setAlertContent(`No records were selected for the process: ${process.label}`); + return; + } + else if (process.minInputRecords != null && getNoOfSelectedRecords() < process.minInputRecords) + { + setAlertContent(`Too few records were selected for the process: ${process.label}. A minimum of ${process.minInputRecords} is required.`); + return; + } + else if (process.maxInputRecords != null && getNoOfSelectedRecords() > process.maxInputRecords) + { + setAlertContent(`Too many records were selected for the process: ${process.label}. A maximum of ${process.maxInputRecords} is allowed.`); + return; + } + // todo - let the process specify that it needs initial rows - err if none selected. // alternatively, let a process itself have an initial screen to select rows... openModalProcess(process);