Skip to content

Commit 2e5982a

Browse files
authored
Merge pull request #6053 from bcgov/release/FOIMOD-release22.3-to-main
Release 22.3: DEV <> MAIN
2 parents 8e96630 + 8a9c573 commit 2e5982a

File tree

26 files changed

+188
-51
lines changed

26 files changed

+188
-51
lines changed

docker-compose-linux.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ services:
8888
- EMAIL_FOLDER_OUTBOX=${EMAIL_FOLDER_OUTBOX}
8989
- EMAIL_FOLDER_INBOX=${EMAIL_FOLDER_INBOX}
9090
- PAYMENT_CONFIG=${PAYMENT_CONFIG}
91+
- FOI_UNOPENED_REQUEST_DATE_RESTRICTION=${FOI_UNOPENED_REQUEST_DATE_RESTRICTION}
9192
#- LOG_ROOT=${LOG_ROOT}
9293
#- LOG_BASIC=${LOG_BASIC}
9394
#- LOG_TRACING=${LOG_TRACING}

docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ services:
120120
- SKIP_OPENINFO_MINISTRIES=${SKIP_OPENINFO_MINISTRIES}
121121
- FOI_SOLR_USERNAME=${FOI_SOLR_USERNAME}
122122
- FOI_SOLR_PASSWORD=${FOI_SOLR_PASSWORD}
123+
- FOI_UNOPENED_REQUEST_DATE_RESTRICTION=${FOI_UNOPENED_REQUEST_DATE_RESTRICTION}
123124
#- LOG_ROOT=${LOG_ROOT}
124125
#- LOG_BASIC=${LOG_BASIC}
125126
#- LOG_TRACING=${LOG_TRACING}

forms-flow-web/src/components/FOI/FOIRequest/AdditionalApplicantDetails.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import Typography from '@material-ui/core/Typography';
1111
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
1212
import { Box, Fade } from "@mui/material";
1313

14-
const AdditionalApplicantDetails = React.memo(({requestDetails, createSaveRequestObject, disableInput, defaultExpanded, warning}) => {
14+
const AdditionalApplicantDetails = React.memo(({requestDetails, createSaveRequestObject, disableInput, defaultExpanded, warning, setError}) => {
1515
/**
1616
* Addition Applicant details box in the UI
1717
* No mandatory fields here
@@ -117,6 +117,7 @@ const AdditionalApplicantDetails = React.memo(({requestDetails, createSaveReques
117117
},[requestDetails])
118118

119119
const handlePersonalHealthNumber = (e) => {
120+
setError(prev => ({...prev, additionalApplicantPHN: validateTextFieldError(e.target.value)}));
120121
setPersonalHealthNumber(e.target.value);
121122
createSaveRequestObject(FOI_COMPONENT_CONSTANTS.PERSONAL_HEALTH_NUMBER, e.target.value);
122123
}
@@ -127,11 +128,13 @@ const AdditionalApplicantDetails = React.memo(({requestDetails, createSaveReques
127128
}
128129

129130
const handleCorrectionsNumber = (e) => {
131+
setError(prev => ({...prev, additionalApplicantCorrectionsNum: validateTextFieldError(e.target.value)}));
130132
setCorrectionsNumber(e.target.value);
131133
createSaveRequestObject(FOI_COMPONENT_CONSTANTS.CORRECTIONS_NUMBER, e.target.value);
132134
}
133135

134136
const handleEmployeeNumber = (e) => {
137+
setError(prev => ({...prev, additionalApplicantEmployerNumber: validateTextFieldError(e.target.value)}));
135138
setEmployeeNumber(e.target.value);
136139
createSaveRequestObject(FOI_COMPONENT_CONSTANTS.EMPLOYEE_NUMBER, e.target.value);
137140
}
@@ -147,6 +150,10 @@ const AdditionalApplicantDetails = React.memo(({requestDetails, createSaveReques
147150
setDOB(e.target.value);
148151
createSaveRequestObject(FOI_COMPONENT_CONSTANTS.DOB, e.target.value);
149152
}
153+
const TEXTFIELD_LENGTH_ERROR = "Text field length must not exceed 50 characters";
154+
const validateTextFieldError = (value) => {
155+
return value.length > 50;
156+
}
150157

151158
return (
152159
<div className='request-accordian' >
@@ -169,6 +176,8 @@ const AdditionalApplicantDetails = React.memo(({requestDetails, createSaveReques
169176
onChange={handlePersonalHealthNumber}
170177
fullWidth
171178
disabled={disableInput}
179+
error={validateTextFieldError(personalHealthNumberText)}
180+
helperText={validateTextFieldError(personalHealthNumberText) ? TEXTFIELD_LENGTH_ERROR : null}
172181
/>
173182
<TextField
174183
id='DOB'
@@ -210,6 +219,8 @@ const AdditionalApplicantDetails = React.memo(({requestDetails, createSaveReques
210219
onChange={handleCorrectionsNumber}
211220
fullWidth
212221
disabled={disableInput}
222+
error={validateTextFieldError(correctionsNumberText)}
223+
helperText={validateTextFieldError(correctionsNumberText) ? TEXTFIELD_LENGTH_ERROR : null}
213224
/>
214225
<TextField
215226
id='employeeNumber'
@@ -222,6 +233,8 @@ const AdditionalApplicantDetails = React.memo(({requestDetails, createSaveReques
222233
onChange={handleEmployeeNumber}
223234
fullWidth
224235
disabled={disableInput}
236+
error={validateTextFieldError(employeeNumberText)}
237+
helperText={validateTextFieldError(employeeNumberText) ? TEXTFIELD_LENGTH_ERROR : null}
225238
/>
226239
<Box sx={{
227240
".MuiInputBase-multiline.Mui-disabled": {

forms-flow-web/src/components/FOI/FOIRequest/AxisDetails/AxisDetails.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ const AxisDetails = React.memo(({
3636
const dispatch = useDispatch();
3737
const [axisRequestId, setAxisRequestId] = React.useState("");
3838
const [validation, setValidation] = React.useState({});
39+
const [enableAxisSync, setEnableAxisSync] = React.useState(false)
3940
let axisIdValidation = {};
4041

4142

@@ -149,12 +150,24 @@ const AxisDetails = React.memo(({
149150
value={axisRequestId}
150151
fullWidth
151152
onChange={handleAxisIdChange}
152-
error={(validation.helperTextValue !== "" && validation.helperTextValue !== undefined) || axisRequestId === ""}
153+
error={(validation.helperTextValue !== "" && validation.helperTextValue !== undefined)}
153154
helperText={validation.helperTextValue}
154-
required
155+
disabled={!enableAxisSync}
155156
/>
156157
</div>
157-
<div className="col-lg-6 foi-details-col">
158+
<div className="col-lg-3 foi-details-col">
159+
<button
160+
type="button"
161+
onClick={() => setEnableAxisSync((prev) => {
162+
setAxisRequestId("")
163+
handleAxisDetailsValue("", FOI_COMPONENT_CONSTANTS.AXIS_REQUEST_ID);
164+
createSaveRequestObject(FOI_COMPONENT_CONSTANTS.AXIS_REQUEST_ID, "");
165+
return !prev
166+
})}
167+
style={{float: "left"}}
168+
className='btn-enable-axis-sync'>{!enableAxisSync ? "Enable Sync" : "Disable Sync"}</button>
169+
</div>
170+
<div className="col-lg-3 foi-details-col">
158171
<button type="button" onClick={() => syncWithAxis()} style={{float: "right"}} disabled={!axisRequestId || validation.helperTextValue !== ""}
159172
className='btn-axis-sync'>Sync with AXIS</button>
160173
</div>

forms-flow-web/src/components/FOI/FOIRequest/ChildDetails.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {closeChildDetails} from '../FOIRequest/utils';
1313
import { Box, Fade } from "@mui/material";
1414

1515

16-
const ChildDetails = React.memo(({additionalInfo, createSaveRequestObject, disableInput,userDetail,requestType}) => {
16+
const ChildDetails = React.memo(({additionalInfo, createSaveRequestObject, disableInput,userDetail,requestType,setError}) => {
1717

1818
/**
1919
* Child details box in the UI
@@ -76,14 +76,17 @@ const ChildDetails = React.memo(({additionalInfo, createSaveRequestObject, disab
7676
}, [additionalInfo]);
7777

7878
const handleFirtNameChange = (e) => {
79+
setError(prev => ({...prev, childDetailFirstName: validateTextFieldError(e.target.value)}));
7980
setChildFirstName(e.target.value);
8081
createSaveRequestObject(FOI_COMPONENT_CONSTANTS.CHILD_FIRST_NAME, e.target.value);
8182
}
8283
const handleMiddleNameChange = (e) => {
84+
setError(prev => ({...prev, childDetailMiddleName: validateTextFieldError(e.target.value)}));
8385
setChildMiddleName(e.target.value);
8486
createSaveRequestObject(FOI_COMPONENT_CONSTANTS.CHILD_MIDDLE_NAME, e.target.value);
8587
}
8688
const handleLastNameChange = (e) => {
89+
setError(prev => ({...prev, childDetailLastName: validateTextFieldError(e.target.value)}));
8790
setChildLastName(e.target.value);
8891
createSaveRequestObject(FOI_COMPONENT_CONSTANTS.CHILD_LAST_NAME, e.target.value);
8992
}
@@ -94,7 +97,12 @@ const ChildDetails = React.memo(({additionalInfo, createSaveRequestObject, disab
9497
const handleDOBChange = (e) => {
9598
setDOB(e.target.value);
9699
createSaveRequestObject(FOI_COMPONENT_CONSTANTS.CHILD_DOB, e.target.value);
97-
}
100+
}
101+
const TEXTFIELD_LENGTH_ERROR = "Text field length must not exceed 50 characters";
102+
const validateTextFieldError = (value) => {
103+
return value.length > 50;
104+
}
105+
98106
return (
99107

100108
<div className='request-accordian' id="childDetails">
@@ -116,6 +124,8 @@ const ChildDetails = React.memo(({additionalInfo, createSaveRequestObject, disab
116124
onChange={handleFirtNameChange}
117125
fullWidth
118126
disabled={disableInput}
127+
error={validateTextFieldError(childFirstNameText)}
128+
helperText={validateTextFieldError(childFirstNameText) ? TEXTFIELD_LENGTH_ERROR : null}
119129
/>
120130
<TextField
121131
id='childMiddleName'
@@ -127,6 +137,8 @@ const ChildDetails = React.memo(({additionalInfo, createSaveRequestObject, disab
127137
onChange={handleMiddleNameChange}
128138
fullWidth
129139
disabled={disableInput}
140+
error={validateTextFieldError(childMiddleNameText)}
141+
helperText={validateTextFieldError(childMiddleNameText) ? TEXTFIELD_LENGTH_ERROR : null}
130142
/>
131143
<TextField
132144
id='childLastName'
@@ -138,6 +150,8 @@ const ChildDetails = React.memo(({additionalInfo, createSaveRequestObject, disab
138150
onChange={handleLastNameChange}
139151
fullWidth
140152
disabled={disableInput}
153+
error={validateTextFieldError(childLastNameText)}
154+
helperText={validateTextFieldError(childLastNameText) ? TEXTFIELD_LENGTH_ERROR : null}
141155
/>
142156
</div>
143157
<div className="col-lg-6 foi-details-col">

forms-flow-web/src/components/FOI/FOIRequest/FOIRequest.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,21 @@ const FOIRequest = React.memo(({ userDetail, openApplicantProfileModal }) => {
778778
axisRequestId: "",
779779
};
780780

781+
const personalRequestDetailErrorsInit = {
782+
additionalApplicantPHN: false,
783+
additionalApplicantCorrectionsNum: false,
784+
additionalApplicantEmployerNumber: false,
785+
additionalApplicantAKA: false,
786+
childDetailFirstName: false,
787+
childDetailMiddleName: false,
788+
childDetailLastName: false,
789+
childDetailAKA: false,
790+
onBehalfFirstName: false,
791+
onBehalfMiddleName: false,
792+
onBehalfLastName: false,
793+
onBehalfAKA: false
794+
}
795+
781796
//below states are used to find if required fields are set or not
782797
const [
783798
requiredRequestDescriptionValues,
@@ -799,6 +814,7 @@ const FOIRequest = React.memo(({ userDetail, openApplicantProfileModal }) => {
799814
const [requiredAxisDetails, setRequiredAxisDetails] = React.useState(
800815
requiredAxisDetailsValue
801816
);
817+
const [personalRequestDetailErrors, setPersonalRequestDetailErrors] = React.useState(personalRequestDetailErrorsInit);
802818
//get the initial value of the required fields to enable/disable bottom button at the initial load of review request
803819
const handleInitialRequiredRequestDescriptionValues = React.useCallback(
804820
(requestDescriptionObject) => {
@@ -948,6 +964,8 @@ const FOIRequest = React.memo(({ userDetail, openApplicantProfileModal }) => {
948964
requestDetails.isoipcreview,
949965
requestDetails.isconsultflag,
950966
requiredContactDetails,
967+
personalRequestDetailErrors,
968+
requestDetails?.sourceOfSubmission,
951969
);
952970

953971
const classes = useStyles();
@@ -1533,13 +1551,15 @@ const FOIRequest = React.memo(({ userDetail, openApplicantProfileModal }) => {
15331551
disableInput={disableInput || isHistoricalRequest}
15341552
userDetail={userDetail}
15351553
requestType={requestDetails?.requestType}
1554+
setError={setPersonalRequestDetailErrors}
15361555
/>
15371556
<OnBehalfOfDetails
15381557
additionalInfo={
15391558
requestDetails.additionalPersonalInfo
15401559
}
15411560
createSaveRequestObject={createSaveRequestObject}
15421561
disableInput={disableInput || isHistoricalRequest}
1562+
setError={setPersonalRequestDetailErrors}
15431563
/>
15441564
</>
15451565
)}
@@ -1604,6 +1624,7 @@ const FOIRequest = React.memo(({ userDetail, openApplicantProfileModal }) => {
16041624
createSaveRequestObject={createSaveRequestObject}
16051625
disableInput={disableInput /* || requestDetails?.axisApplicantID /* requestDetails?.foiRequestApplicantID > 0 comment back in after axis decommission*/}
16061626
defaultExpanded={true}
1627+
setError={setPersonalRequestDetailErrors}
16071628
/>
16081629
)}
16091630
{showDivisionalTracking && (

forms-flow-web/src/components/FOI/FOIRequest/FOIRequestHeader/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,9 @@ const FOIRequestHeader = React.memo(
157157
}
158158

159159
const saveAssigneeDetails = (assigneeVal, assigneeName) => {
160+
const isOnlineFormUnopenedReq = requestDetails?.currentState?.toLowerCase() === StateEnum.unopened.name.toLowerCase() && requestDetails?.sourceOfSubmission === "onlineform";
160161
setAssignedTo(assigneeVal);
161-
if (isAddRequest) {
162+
if (isAddRequest || isOnlineFormUnopenedReq) {
162163
//event bubble up - to validate required fields
163164
handleAssignedToValue(assigneeVal);
164165
createSaveRequestObject(
@@ -307,7 +308,7 @@ const FOIRequestHeader = React.memo(
307308
fullWidth
308309
required
309310
disabled={disableHeaderInput}
310-
error={selectedAssignedTo.toLowerCase().includes("unassigned")}
311+
error={selectedAssignedTo.toLowerCase().includes("unassigned") || (requestDetails?.currentState?.toLowerCase() === StateEnum.unopened.name.toLowerCase() && requestDetails?.sourceOfSubmission === "onlineform" && requestDetails?.assignedGroup === "Intake Team")}
311312
>
312313
{menuItems}
313314
</TextField>

forms-flow-web/src/components/FOI/FOIRequest/FOIRequestHeader/utils.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,21 @@ export const getHeaderText = ({requestDetails, ministryId, status}) => {
9595
if (window.location.href.includes(FOI_COMPONENT_CONSTANTS.ADDREQUEST)) {
9696
return FOI_COMPONENT_CONSTANTS.ADD_REQUEST;
9797
}
98-
99-
if(status?.toLowerCase() === StateEnum.unopened.name.toLowerCase()){
100-
return FOI_COMPONENT_CONSTANTS.REVIEW_REQUEST;
101-
}
10298

10399
if(requestDetails.axisRequestId)
104100
return requestDetails.axisRequestId;
105101

106102
if (requestDetails.idNumber && ministryId) {
107103
return requestDetails.idNumber;
108104
}
105+
106+
if (requestDetails.rawRequestId) {
107+
return 'U-00' + String(requestDetails.rawRequestId)//.padStart(6, '0')
108+
}
109+
110+
if(status?.toLowerCase() === StateEnum.unopened.name.toLowerCase()){
111+
return FOI_COMPONENT_CONSTANTS.REVIEW_REQUEST;
112+
}
109113

110114
return FOI_COMPONENT_CONSTANTS.REVIEW_REQUEST;
111115
};

forms-flow-web/src/components/FOI/FOIRequest/MinistryReview/AdditionalApplicantDetails.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,15 @@ const AdditionalApplicantDetails = React.memo((requestDetails) => {
4444
<b>Personal Health Number</b>
4545
</div>
4646
<div>
47-
<span>{additionalApplicantDetails.personalHealthNumber}</span>
47+
<span className="long-text">{additionalApplicantDetails.personalHealthNumber}</span>
4848
</div>
4949
</div>
5050
<div className="col-lg-4 foi-details-col">
5151
<div>
5252
<b>Employee Number</b>
5353
</div>
5454
<div>
55-
<span>{additionalApplicantDetails.employeeNumber}</span>
55+
<span className="long-text">{additionalApplicantDetails.employeeNumber}</span>
5656
</div>
5757
</div>
5858
<div className="col-lg-4 foi-details-col">
@@ -83,7 +83,7 @@ const AdditionalApplicantDetails = React.memo((requestDetails) => {
8383
<b>Corrections Number</b>
8484
</div>
8585
<div>
86-
<span>{additionalApplicantDetails.correctionsNumber}</span>
86+
<span className="long-text">{additionalApplicantDetails.correctionsNumber}</span>
8787
</div>
8888
</div>
8989
<div className="col-lg-4 foi-details-col">

forms-flow-web/src/components/FOI/FOIRequest/MinistryReview/ApplicantDetails.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,23 @@ const ApplicantDetails = React.memo((requestDetails) => {
2929
<b>First Name</b>
3030
</div>
3131
<div>
32-
<span>{_requestDetails.firstName}</span>
32+
<span className="long-text">{_requestDetails.firstName}</span>
3333
</div>
3434
</div>
3535
<div className="col-lg-3 foi-details-col">
3636
<div>
3737
<b>Middle Name</b>
3838
</div>
3939
<div>
40-
<span>{_requestDetails.middleName}</span>
40+
<span className="long-text">{_requestDetails.middleName}</span>
4141
</div>
4242
</div>
4343
<div className="col-lg-3 foi-details-col">
4444
<div>
4545
<b>Last Name</b>
4646
</div>
4747
<div>
48-
<span>{_requestDetails.lastName}</span>
48+
<span className="long-text">{_requestDetails.lastName}</span>
4949
</div>
5050
</div>
5151
</div>

0 commit comments

Comments
 (0)