diff --git a/src/qqq/pages/processes/ProcessRun.tsx b/src/qqq/pages/processes/ProcessRun.tsx index f5d1f29..f248624 100644 --- a/src/qqq/pages/processes/ProcessRun.tsx +++ b/src/qqq/pages/processes/ProcessRun.tsx @@ -35,8 +35,7 @@ import {QJobRunning} from "@kingsrook/qqq-frontend-core/lib/model/processes/QJob import {QJobStarted} from "@kingsrook/qqq-frontend-core/lib/model/processes/QJobStarted"; import {QRecord} from "@kingsrook/qqq-frontend-core/lib/model/QRecord"; import {QQueryFilter} from "@kingsrook/qqq-frontend-core/lib/model/query/QQueryFilter"; -import {Alert, Button, CircularProgress, Icon, TablePagination} from "@mui/material"; -import Box from "@mui/material/Box"; +import {Alert, Box, Button, CircularProgress, Icon, TablePagination} from "@mui/material"; import Card from "@mui/material/Card"; import Grid from "@mui/material/Grid"; import Step from "@mui/material/Step"; @@ -472,6 +471,23 @@ function ProcessRun({process, table, defaultProcessValues, isModal, isWidget, is helpRoles = ["EDIT_SCREEN", "WRITE_SCREENS", "ALL_SCREENS"]; } + ////////////////////////////////////////////////////////////////////////// + // if the component specifies a sub-set of field names to include, then // + // edit the formData object to just include those. // + ////////////////////////////////////////////////////////////////////////// + let formDataToUse = formData; + if(component.values && component.values.includeFieldNames) + { + formDataToUse = Object.assign({}, formData); + + formDataToUse.formFields = {}; + for (let i = 0; i < component.values.includeFieldNames.length; i++) + { + const fieldName = component.values.includeFieldNames[i]; + formDataToUse.formFields[fieldName] = formData.formFields[fieldName]; + } + } + return (
{ @@ -567,9 +583,22 @@ function ProcessRun({process, table, defaultProcessValues, isModal, isWidget, is ) } { - component.type === QComponentType.EDIT_FORM && ( - - ) + component.type === QComponentType.EDIT_FORM && + <> + { + component.values?.sectionLabel ? + + + + {component.values?.sectionLabel} + + + + + + : + } + } { component.type === QComponentType.VIEW_FORM && step.viewFields && ( @@ -1026,6 +1055,15 @@ function ProcessRun({process, table, defaultProcessValues, isModal, isWidget, is setProcessValues(qJobComplete.values); setQJobRunning(null); + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // if the process step sent a new frontend-step-list, then refresh what we have in state (constructing new full model objects) // + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + const updatedFrontendStepList = qJobComplete.updatedFrontendStepList; + if(updatedFrontendStepList) + { + setSteps(updatedFrontendStepList); + } + if (activeStep && activeStep.recordListFields) { setNeedRecords(true); @@ -1390,7 +1428,7 @@ function ProcessRun({process, table, defaultProcessValues, isModal, isWidget, is { !isWidget && ( - + {steps.map((step) => (