Merged PR 1186: email signup fixes

Related work items: #11390
This commit is contained in:
Robert Bond
2024-06-10 10:08:48 +00:00
19 changed files with 151 additions and 135 deletions
@@ -73,11 +73,22 @@ const RepAgent = (props) => {
</>
) : (
<label className="govuk-label govuk-body-m">
Representation Type:{" "}
{
formObj.representationForm.values
.representationType
}{" "}
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
</div>
@@ -73,11 +73,22 @@ const RepAppellant = (props) => {
</>
) : (
<label className="govuk-label govuk-body-m">
Representation Type:{" "}
{
formObj.representationForm.values
.representationType
}{" "}
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
</div>
@@ -210,7 +210,18 @@ const RepCompleteSubmit = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{repFormData.representationType}
{router.locale == "cy"
? repFormData.representationType ==
"Questionnaire"
? "Holiadur"
: repFormData.representationType ==
"Statement"
? "Datganiad"
: repFormData.representationType ==
"Final comments"
? "Sylwadau terfynol"
: repFormData.representationType
: repFormData.representationType}
</dd>
<dd className="govuk-summary-list__actions">
@@ -475,6 +475,8 @@ export const RenderPickList = ({
...custom
}) => {
console.log(custom.disabled);
let { t } = useTranslation();
return (
<>
<div
@@ -503,11 +505,20 @@ export const RenderPickList = ({
disabled={custom.disabled}
onChange={onChange}
>
<option>Select...</option>
<option>{t("common:drop-down-select")}</option>
{Object.keys(optionsArr).map((key, index) => {
return (
<option key={key} value={optionsArr[key]}>
{optionsArr[key]}
{router.locale == "cy"
? optionsArr[key] == "Questionnaire"
? "Holiadur"
: optionsArr[key] == "Statement"
? "Datganiad"
: optionsArr[key] ==
"Final comments"
? "Sylwadau terfynol"
: optionsArr[key]
: optionsArr[key]}
</option>
);
})}
@@ -73,11 +73,22 @@ const RepInterestedPartyPerson = (props) => {
</>
) : (
<label className="govuk-label govuk-body-m">
Representation Type:{" "}
{
formObj.representationForm.values
.representationType
}{" "}
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
</div>
@@ -266,71 +266,24 @@ let RepLPA = (props) => {
</>
) : (
<label className="govuk-label govuk-body-m">
Representation Type:{" "}
{
formObj.representationForm.values
.representationType
}{" "}
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
{/* {!formObj["representationForm"].hasOwnProperty("values") ||
typeof formObj.representationForm.values
.representationType == "undefined" ? (
<>
<h2 className="govuk-heading-m ">
{typeof props.representationType !=
"undefined" ||
typeof formObj.representationForm.values
.representationType != "undefined"
? props.representationType ==
"Questionnaire"
? locale == "cy"
? "Holiadur"
: props.representationType
: props.representationType
: locale == "cy"
? "Cynrychioliadau"
: "Representation"}{" "}
{locale == "cy"
? "o ACLI am a"
: "from an LPA for a"}{" "}
{locale == "cy"
? jsonpath(
'$..[?(@.attributevalue=="' +
currentView.caseReference
.appealType +
'")].value_cy',
transLookup
)
: getFormCollectionByID(
currentView.caseReference.appealType
).value}
</h2>
<label
className="govuk-label govuk-body-m"
htmlFor="representationType"
>
{t(
"myrepresentations:representation-from-an-lpa-heading"
)}
</label>
<Field
id="representationType"
name="representationType"
component={RenderPickList}
datafieldname="representationType"
optionsArr={appellantApplicantRepresentationArr}
/>
</>
) : (
<label className="govuk-label govuk-body-m">
Representation Type:{" "}
{
formObj.representationForm.values
.representationType
}{" "}
</label>
)} */}
</div>
</div>
<div className="govuk-grid-row">
+28 -8
View File
@@ -409,7 +409,7 @@ const CaseSummary = (props) => {
)}
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
Last modified
{t("case:summary-last-modified-label")}
</dt>
<dd className="govuk-summary-list__value">
{detailsObj.modifiedon > casesObj.modifiedon
@@ -492,7 +492,28 @@ const CaseSummary = (props) => {
<div className="govuk-grid-column-full govuk-!-padding-left-0">
<div className="govuk-button-group">
<p className="govuk-body">
The
{t(
"case:representation-date-passed-label",
{
startDate:
formatDates(
detailsObj.pinswg_startdate
),
endDate:
props
.currentView
.caseReference
.appealType ==
846040019
? formatDates(
detailsObj.pinswg_statementduedate
)
: formatDates(
detailsObj.pinswg_finalcommentsduedate
),
}
)}
{/* The
representation
period for
this appeal
@@ -511,12 +532,11 @@ const CaseSummary = (props) => {
)
: formatDates(
detailsObj.pinswg_finalcommentsduedate
)}
<br />
You can make
a
representation
by emailing{" "}
)} */}
<br />{" "}
{t(
"case:representation-date-passed-additional-label"
)}{" "}
<Link href="mailto:pedw.casework@gov.wales">
pedw.casework@gov.wales
</Link>
@@ -16,7 +16,7 @@ const MyRepresentations = (props) => {
<div className="card" id="my-representations-card">
<div className="card-body">
<h3 className="heading-small card-heading">
{t("myportal:myrepresentations-card-title")}dd
{t("myportal:myrepresentations-card-title")}
</h3>
<div className="cardModuleContainer">
<TopThree
+6 -3
View File
@@ -109,7 +109,7 @@ const TopThree = (props) => {
const deleteRepItem = (containerID, caseID, repfile) => {
let cookies = parseCookies();
console.log("sssss", containerID, caseID, repfile);
//console.log("sssss", containerID, caseID, repfile);
deleteMyRepresentationsFromBlob(containerID, caseID, repfile)
.then((data) => {
@@ -209,11 +209,14 @@ const TopThree = (props) => {
<div className="cardModuleItem" key={index}>
<div className="cardModuleDetails">
<div className="cardModuleReference">
<b>{t("myportal:case-reference")}:</b>{" "}
<b>{t("myportal:case-reference")}:</b>
<Link
// href="#"
href={{
pathname: "/myportal/representation",
pathname:
router.locale == "cy"
? "/fymhorth/representation"
: "/myportal/representation",
query: {
case: showTopThreeArr[key].caseRef,
state: "edit",
+1 -1
View File
@@ -21,7 +21,7 @@ const WatchedCases = (props) => {
<div className="card-body">
<h3 className="heading-small card-heading">
{props.myReps
? "Submitted representations"
? t("myportal:submitted-reps-card-title")
: t("myportal:watchedcases-card-title")}
</h3>
<div className="cardModuleContainer">
+4 -1
View File
@@ -9,6 +9,7 @@
"summary-site-address-label": "Cyfeiriad y Safle",
"summary-description-label": "Disgrifiad",
"summary-case-stage-label": "Cyfnod Achos",
"summary-last-modified-label": "Addaswyd ddiwethaf",
"summary-make-representation-label": "Cyflwyno cynrychiolaeth",
"summary-back-button-label": "Ewch yn ôl",
"summary-case-details-label": "Manylion yr Achos",
@@ -93,5 +94,7 @@
"trying-to-watch-case-redirect-label": "Fe'ch anogir nawr i fewngofnodi",
"you-have-stopped-watching-label": "Ydych chi am roi'r gorau i wylio achos ",
"do-you-want-to-delete-case-label": "Ydych chi am ddileu achos",
"do-you-want-to-delete-case-disclaimer-label": "Unwaith y caiff ei dileu, bydd yr holl wybodaeth a gyflwynwyd gennych yn cael ei cholli."
"do-you-want-to-delete-case-disclaimer-label": "Unwaith y caiff ei dileu, bydd yr holl wybodaeth a gyflwynwyd gennych yn cael ei cholli.",
"representation-date-passed-label": "Y cyfnod cynrychioli ar gyfer yr apêl hon yw rhwng {{startDate}} a {{endDate}}",
"representation-date-passed-additional-label": "Gallwch wneud sylw drwy e-bostio,"
}
+1
View File
@@ -22,6 +22,7 @@
"awatitingsubmission-card-title": "Eto iw gyflwyno",
"myrepresentations-card-title": "Cyflwyniadau'r achos",
"watchedcases-card-title": "Achosion a gwylio",
"submitted-reps-card-title": "Sylwadau a gyflwynwyd",
"case-reference": "Cyfeirnod achos",
"temp-reference": "Cyfeirnod Dros Dro",
"case-address": "Cyfeiriad",
+2 -1
View File
@@ -211,5 +211,6 @@
"statement-signed-label": "Llofnodwyd",
"statement-date-label": "Dyddiad",
"statement-onbehalf-label": "Ar ran",
"final-comments-label": "Sylwadau terfynol"
"final-comments-label": "Sylwadau terfynol",
"representation-type": "Math o gynrychiolaeth"
}
+4 -1
View File
@@ -9,6 +9,7 @@
"summary-site-address-label": "Site Address",
"summary-description-label": "Description",
"summary-case-stage-label": "Case Stage",
"summary-last-modified-label": "Last modified",
"summary-make-representation-label": "Make representation",
"summary-back-button-label": "Go back",
"summary-case-details-label": "Case Details",
@@ -93,5 +94,7 @@
"trying-to-watch-case-redirect-label": "You will now be prompted to sign in",
"you-have-stopped-watching-label": "Do you want to stop watching case ",
"do-you-want-to-delete-case-label": "Do you want to delete case ",
"do-you-want-to-delete-case-disclaimer-label": "Once deleted all information you have submited, will be lost."
"do-you-want-to-delete-case-disclaimer-label": "Once deleted all information you have submited, will be lost.",
"representation-date-passed-label": "The representation period for this appeal is between {{startDate}} and {{endDate}}",
"representation-date-passed-additional-label": "You can make a representation by emailing,"
}
+1
View File
@@ -22,6 +22,7 @@
"awatitingsubmission-card-title": "Awaiting submission",
"myrepresentations-card-title": "My representations",
"watchedcases-card-title": "Watched cases",
"submitted-reps-card-title": "Submitted representations",
"case-reference": "Case reference",
"temp-reference": "Temporary reference",
"case-address": "Address",
+2 -1
View File
@@ -212,5 +212,6 @@
"statement-signed-label": "Signed",
"statement-date-label": "Date",
"statement-onbehalf-label": "On behalf of",
"final-comments-label": "Final comments"
"final-comments-label": "Final comments",
"representation-type": "Representation type"
}
+8
View File
@@ -151,6 +151,10 @@ module.exports = {
source: "/fymhorth/achos/id/:slug",
destination: "/myportal/case/id/:slug",
},
{
source: "/fymhorth/achos/:slug",
destination: "/myportal/case/:slug",
},
{
source: "/fymhorth/gweldpopeth",
destination: "/myportal/viewall",
@@ -159,6 +163,10 @@ module.exports = {
source: "/fymhorth/:slug",
destination: "/myportal/:slug",
},
{
source: "/fymhorth/cynrychiolaeth",
destination: "/myportal/representation",
},
{
source: "/allgofnodi",
destination: "/logout",
+3 -36
View File
@@ -24,18 +24,11 @@ const SignIn = (props) => {
"/api/auth/signin/email";
const [buttonDisabled, setButtonDisabled] = useState(false);
const [hasError, setHasError] = useState(false);
const emailRegex =
/(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/gi;
const handleSubmit = async (event) => {
event.preventDefault();
//!emailRegex.test(event.currentTarget[2].value) && setHasError(true);
!emailRegex.test(event.currentTarget[2].value)
? (setHasError(true), setButtonDisabled(true))
: (setButtonDisabled(true), event.target.submit());
setButtonDisabled(true);
event.target.submit();
};
return (
@@ -67,13 +60,7 @@ const SignIn = (props) => {
action="/api/auth/signin/email"
onSubmit={handleSubmit}
>
<div
className={
hasError
? "govuk-form-group govuk-form-group--error"
: "govuk-form-group "
}
>
<div className={"govuk-form-group "}>
<input
className="govuk-input"
name="csrfToken"
@@ -93,32 +80,12 @@ const SignIn = (props) => {
>
{t("auth:auth-email-label")}
</label>
{hasError && (
<span
id={"email-error"}
className="govuk-error-message"
>
<span className="govuk-visually-hidden">
Error:
</span>{" "}
Enter a valid email address
</span>
)}
<input
className="govuk-input govuk-!-width-three-quarters"
type="email"
id="email"
name="email"
onBlur={(e) => {
!emailRegex.test(
e.currentTarget.value
)
? (setHasError(true),
setButtonDisabled(true))
: (setHasError(false),
setButtonDisabled(false));
}}
/>
</div>
<div className="govuk-form-group">
+1 -1
View File
@@ -119,7 +119,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
const watchedCases = await getWatchedCases(loggedInUser);
console.log("sssss", loggedInUser);
//console.log("sssss", loggedInUser);
const [accountDetails, searchDetailsObj, watchedCasesDetails] =
await Promise.all([