diff --git a/actions/selectQueryTypes.js b/actions/selectQueryTypes.js index 60368160..0a0aa571 100644 --- a/actions/selectQueryTypes.js +++ b/actions/selectQueryTypes.js @@ -82,7 +82,7 @@ export const getSelectQuery = (appealTypeName) => { return "&$select=pinswg_eiarequired,pinswg_anticipatedgridreferenceeastingtext,pinswg_anticipatedgridreferencenorthingtext,_pinswg_appellant_value,pinswg_name,pinswg_addressline1,pinswg_addressline2,pinswg_postcode,pinswg_addresstown,_pinswg_associatedlpa_value,pinswg_addresscounty,pinswg_applicationacceptedasvalid,pinswg_applicationrejectedasinvalid,pinswg_choiceofprocedure,pinswg_confirmrequesttovaryapplication,pinswg_dateeventrequested,pinswg_dateofdecision,pinswg_dateofrequesttovarytheapplication,pinswg_dateofsubmissionofapplication,pinswg_dateprojectpublishedonwebsite,pinswg_deadlineforsubmissionofapplication,pinswg_endofrepresentationperiod,pinswg_inspectorreportsubmittedtowelshgovernment,pinswg_procedureconfirmed,pinswg_projectdescription,pinswg_projectlocation,pinswg_recommendation,pinswg_rejectrequesttovaryapplication,pinswg_reportdueby,pinswg_suspensiondates,pinswg_suspensionenddates,pinswg_suspensionstartdate,pinswg_validnoticeofintentiontosubmitanapplicati,pinswg_webaddress,pinswg_withdrawndate,pinswg_writtenacceptanceofnotification,statuscode,pinswg_casestage,pinswg_startdateofevent,pinswg_typeofevent"; case "pinswg_sipses": // return "&$select=pinswg_anticipatedgridreferenceeastingtext,pinswg_anticipatedgridreferencenorthingtext,_pinswg_appellant_value,pinswg_name,pinswg_addressline1,pinswg_addressline2,pinswg_postcode,pinswg_addresstown,_pinswg_associatedlpa_value,pinswg_addresscounty,pinswg_applicationacceptedasvalid,pinswg_applicationrejectedasinvalid,pinswg_choiceofprocedure,pinswg_confirmrequesttovaryapplication,pinswg_dateeventrequested,pinswg_dateofdecision,pinswg_dateofrequesttovarytheapplication,pinswg_dateofsubmissionofapplication,pinswg_dateprojectpublishedonwebsite,pinswg_deadlineforsubmissionofapplication,pinswg_decision,pinswg_endofrepresentationperiod,pinswg_inspectorreportsubmittedtowelshgovernment,pinswg_procedureconfirmed,pinswg_projectdescription,pinswg_projectlocation,pinswg_recommendation,pinswg_rejectrequesttovaryapplication,pinswg_reportdueby,pinswg_suspensiondates,pinswg_suspensionenddates,pinswg_suspensionstartdates,pinswg_validnoticeofintentiontosubmitanapplicati,pinswg_webaddress,pinswg_withdrawndate,pinswg_writtenacceptanceofnotification,statuscode,pinswg_casestage,_pinswg_dnsids_value,pinswg_startdateofevent,pinswg_typeofevent"; - return "&$select=_pinswg_projecttype_value,pinswg_eiarequired,pinswg_anticipatedgridrefeasting,pinswg_anticipatedgridrefnorthing,_pinswg_appellant_value,pinswg_name,_pinswg_associatedlpa_value,pinswg_choiceofprocedure,pinswg_decision,pinswg_projectdescription,pinswg_projectlocation,pinswg_recommendation,statuscode,pinswg_casestage,_pinswg_sipscase_value,pinswg_writtenacceptanceofnotification,pinswg_validnoticeofintentiontosubmit,pinswg_deadlineforsubmissionofapplication,pinswg_screeningstartdate,pinswg_eiatargetdate,pinswg_targetextended,pinswg_directionissueddate,pinswg_eiarequired,pinswg_scopingstartdate,pinswg_scopingtargetdate,pinswg_scopingtargetextended,pinswg_scopingoutcomeissueddate,pinswg_essubmitted,pinswg_deemedmarinelicenseappliedfor,pinswg_validationdeadlineextension,pinswg_casesuspensionstartdate,pinswg_casesuspensionenddate,pinswg_consultationopen,pinswg_consultationclose"; + return "&$select=_pinswg_projecttype_value,pinswg_eiarequired,pinswg_anticipatedgridrefeasting,pinswg_anticipatedgridrefnorthing,_pinswg_appellant_value,pinswg_name,_pinswg_associatedlpa_value,pinswg_choiceofprocedure,pinswg_decision,pinswg_projectdescription,pinswg_projectlocation,pinswg_recommendation,statuscode,pinswg_casestage,_pinswg_sipscase_value,pinswg_writtenacceptanceofnotification,pinswg_validnoticeofintentiontosubmit,pinswg_deadlineforsubmissionofapplication,pinswg_screeningstartdate,pinswg_eiatargetdate,pinswg_targetextended,pinswg_directionissueddate,pinswg_eiarequired,pinswg_scopingstartdate,pinswg_scopingtargetdate,pinswg_scopingtargetextended,pinswg_scopingoutcomeissueddate,pinswg_essubmitted,pinswg_deemedmarinelicenseappliedfor,pinswg_validationdeadlineextension,pinswg_casesuspensionstartdate,pinswg_casesuspensionenddate,pinswg_consultationopen,pinswg_consultationclose,pinswg_reportissuedtowelshministers,pinswg_decisionissuedtoapplicant,pinswg_decisionoutcome"; break; default: return ""; diff --git a/components/case/summary.js b/components/case/summary.js index 3a23f05c..35a485b8 100644 --- a/components/case/summary.js +++ b/components/case/summary.js @@ -187,6 +187,27 @@ const CaseSummary = (props) => { .then((data) => data) .then(() => { getWatchedCasesProxy(cookies.pinsUser).then((data) => { + let showWatchedCases = (submittedArr) => { + const required = submittedArr.value.filter((el) => { + return ( + el.pinswg_representationsubmitted == null + ); + }); + + let newObj = {}; + return Object.assign(newObj, { + "@odata.count": required.length, + "value": required, + }); + }; + + data = showWatchedCases(data); + + data.value.sort(function compare(a, b) { + var dateA = new Date(a.createdon); + var dateB = new Date(b.createdon); + return dateB - dateA; + }); setWatchedCases(data), getDetailsProxy(data, "myWatchedCases").then( (data) => { @@ -1266,12 +1287,44 @@ const CaseSummary = (props) => { {t( "case:watch-this-case-link" )} + {" "} + - {/* */} )} diff --git a/components/case/summaryTypes/pinswg_sipscase.js b/components/case/summaryTypes/pinswg_sipscase.js index 2b616e39..6e3b938d 100644 --- a/components/case/summaryTypes/pinswg_sipscase.js +++ b/components/case/summaryTypes/pinswg_sipscase.js @@ -499,7 +499,9 @@ const Pinswg_sipscase = (props) => { {t("case:summary-dates-label")}

- Pre Submission + {t( + "case:summary-pre-submission-sub-title" + )}

@@ -579,7 +581,6 @@ const Pinswg_sipscase = (props) => {
- {(hasValidKey( detailsObj, "pinswg_validationdeadlineextension" @@ -595,6 +596,9 @@ const Pinswg_sipscase = (props) => {

Submission + {t( + "case:summary-submission-sub-title" + )}

@@ -604,8 +608,9 @@ const Pinswg_sipscase = (props) => { ) && (
- Validation - Deadline - extension + {t( + "case:summary-validation-deadline-extension" + )}
{" "}
{_.has( @@ -633,8 +638,9 @@ const Pinswg_sipscase = (props) => { ) && (
- Case Suspension Start - Date + {t( + "case:summary-case-suspension-start-date" + )}
{" "}
{_.has( @@ -662,7 +668,9 @@ const Pinswg_sipscase = (props) => { ) && (
- Case Suspension End Date + {t( + "case:summary-case-suspension-end-date" + )}
{" "}
{_.has( @@ -687,6 +695,119 @@ const Pinswg_sipscase = (props) => {
)} + {(hasValidKey( + detailsObj, + "pinswg_reportissuedtowelshministers" + ) || + hasValidKey( + detailsObj, + "pinswg_decisionissuedtoapplicant" + ) || + hasValidKey( + detailsObj, + "pinswg_decisionoutcome" + )) && ( +
+

+ {t( + "case:summary-reporting-decision-sub-title" + )} +

+ +
+ {hasValidKey( + detailsObj, + "pinswg_reportissuedtowelshministers" + ) && ( +
+
+ {t( + "case:summary-report-issued-to-welsh-ministers" + )} +
{" "} +
+ {_.has( + detailsObj, + "pinswg_reportissuedtowelshministers" + ) + ? !_.isEmpty( + detailsObj.pinswg_reportissuedtowelshministers + ) + ? formatDates( + detailsObj.pinswg_reportissuedtowelshministers + ) + : t( + "case:summary-awaiting-information-label" + ) + : t( + "case:summary-awaiting-information-label" + )} +
+
+ )} + {hasValidKey( + detailsObj, + "pinswg_decisionissuedtoapplicant" + ) && ( +
+
+ {t( + "case:summary-decision-issued-to-applicant" + )} +
{" "} +
+ {_.has( + detailsObj, + "pinswg_decisionissuedtoapplicant" + ) + ? !_.isEmpty( + detailsObj.pinswg_decisionissuedtoapplicant + ) + ? formatDates( + detailsObj.pinswg_decisionissuedtoapplicant + ) + : t( + "case:summary-awaiting-information-label" + ) + : t( + "case:summary-awaiting-information-label" + )} +
+
+ )} + {hasValidKey( + detailsObj, + "pinswg_decisionoutcome" + ) && ( +
+
+ {t( + "case:summary-decision-outcome" + )} +
{" "} +
+ {_.has( + detailsObj, + "pinswg_decisionoutcome" + ) + ? !_.isEmpty( + detailsObj.pinswg_decisionoutcome + ) + ? formatDates( + detailsObj.pinswg_decisionoutcome + ) + : t( + "case:summary-awaiting-information-label" + ) + : t( + "case:summary-awaiting-information-label" + )} +
+
+ )} +
+
+ )} {/*

EIA Screening diff --git a/components/myportal/viewall.js b/components/myportal/viewall.js index 43a2bbfb..0a39c4bc 100644 --- a/components/myportal/viewall.js +++ b/components/myportal/viewall.js @@ -759,9 +759,7 @@ const ViewAllResults = (props) => { style={{ display: "flex", flexDirection: "column" }} > {item.pinswg_emailnotifications == true ? ( )} + {isEmailSignUp(item.incidentid) + .length > + 0 == + true ? ( + + ) : ( + + )} )} @@ -639,6 +758,34 @@ const SearchResults = (props) => { > + )}

diff --git a/components/search/dnssearchresults.js b/components/search/dnssearchresults.js index 01708b5a..45c5b090 100644 --- a/components/search/dnssearchresults.js +++ b/components/search/dnssearchresults.js @@ -170,6 +170,36 @@ const DNSSearchResults = (props) => { }); }; + const selectEmailNotifications = ( + emailaddress, + loggedInUser, + incidentID, + appealType + ) => { + let updateBody = { + "pinswg_WatchedCase@odata.bind": "/incidents(" + incidentID + ")", + "pinswg_Contact@odata.bind": "/contacts(" + loggedInUser + ")", + "pinswg_appealcasetype": +appealType, + "pinswg_emailnotifications": true, + }; + + console.log("Email signed up"); + createWatchedCases(updateBody) + .then((data) => data) + .then(() => { + getWatchedCasesProxy(props.accountDetails.loggedinUserId).then( + (data) => { + setWatchedCases(data), + getDetailsProxy(data, "myWatchedCases").then( + (data) => { + setWatchedCasesDetails(data); + } + ); + } + ); + }); + }; + const isWatchedCase = (whichIncident) => { let isWatched = jsonpath({ path: @@ -183,6 +213,19 @@ const DNSSearchResults = (props) => { return isWatched; }; + const isEmailSignUp = (whichIncident) => { + let isEmail = jsonpath({ + path: + "$..value[?(@ && @._pinswg_watchedcase_value=='" + + whichIncident + + "' && @.pinswg_emailnotifications==true)]", + + json: watchedCases, + eval: true, + }); + return isEmail; + }; + const deleteItem = (caseID, topThreeType) => { let cookies = parseCookies(); topThreeType == "watchedCases" && @@ -190,6 +233,27 @@ const DNSSearchResults = (props) => { .then((data) => data) .then(() => { getWatchedCasesProxy(cookies.pinsUser).then((data) => { + let showWatchedCases = (submittedArr) => { + const required = submittedArr.value.filter((el) => { + return ( + el.pinswg_representationsubmitted == null + ); + }); + + let newObj = {}; + return Object.assign(newObj, { + "@odata.count": required.length, + "value": required, + }); + }; + + data = showWatchedCases(data); + + data.value.sort(function compare(a, b) { + var dateA = new Date(a.createdon); + var dateB = new Date(b.createdon); + return dateB - dateA; + }); setWatchedCases(data), getDetailsProxy(data, "myWatchedCases").then( (data) => { @@ -566,7 +630,7 @@ const DNSSearchResults = (props) => { .length > 0 == true ? ( - { confirm( @@ -590,9 +654,9 @@ const DNSSearchResults = (props) => { )} > - + ) : ( - { confirm( @@ -613,7 +677,61 @@ const DNSSearchResults = (props) => { )} > - + + )} + {isEmailSignUp(item.incidentid) + .length > + 0 == + true ? ( + + ) : ( + )} )} @@ -868,4 +986,13 @@ const mapDispatchToProps = (dispatch) => { }; }; -export default connect(null, mapDispatchToProps)(DNSSearchResults); +const mapStateToProps = (state) => { + return { + // currentView: state.currentView, + accountDetails: state.accountDetails, + // search: state.search, + // searchResultsObj: state.searchResultsObj, + }; +}; + +export default connect(mapStateToProps, mapDispatchToProps)(DNSSearchResults); diff --git a/components/search/searchresults.js b/components/search/searchresults.js index 59448d2d..b8803fec 100644 --- a/components/search/searchresults.js +++ b/components/search/searchresults.js @@ -180,6 +180,27 @@ const SearchResults = (props) => { getWatchedCasesProxy( props.accountDetails.loggedinUserId ).then((data) => { + let showWatchedCases = (submittedArr) => { + const required = submittedArr.value.filter((el) => { + return ( + el.pinswg_representationsubmitted == null + ); + }); + + let newObj = {}; + return Object.assign(newObj, { + "@odata.count": required.length, + "value": required, + }); + }; + + data = showWatchedCases(data); + + data.value.sort(function compare(a, b) { + var dateA = new Date(a.createdon); + var dateB = new Date(b.createdon); + return dateB - dateA; + }); setWatchedCases(data), getDetailsProxy(data, "myWatchedCases").then( (data) => { @@ -690,7 +711,9 @@ const SearchResults = (props) => { title="Email about changes" onClick={() => { confirm( - " Do you want to be sent email updates for " + + t( + "case:summary-subscribe-mail-label" + ) + item.title + "?" ) && @@ -754,10 +777,14 @@ const SearchResults = (props) => {