Merged PR 1811: use ticket number not title/reference/pinswg_name

Related work items: #18356
This commit is contained in:
Robert Bond
2025-08-12 08:42:11 +00:00
27 changed files with 226 additions and 89 deletions
+2 -2
View File
@@ -309,7 +309,7 @@ export const createRepBlob = async (formContent, containerName, caseref) => {
const tags = { const tags = {
containerid: containerName, containerid: containerName,
caseID: formContent.caseRef, caseID: formContent.ticketnumber,
blobType: "Representation", blobType: "Representation",
}; };
@@ -317,7 +317,7 @@ export const createRepBlob = async (formContent, containerName, caseref) => {
const withTags = await blockBlobClient.setTags(tags); const withTags = await blockBlobClient.setTags(tags);
const withMeta = await blockBlobClient.setMetadata(tags); const withMeta = await blockBlobClient.setMetadata(tags);
return formContent.pinswg_name; return formContent.ticketnumber;
}; };
export const createAppealPDFBlob = async ( export const createAppealPDFBlob = async (
+1
View File
@@ -41,6 +41,7 @@ const Case = (props) => {
docsOffline={props.props.docsOffline} docsOffline={props.props.docsOffline}
documentDetailsObj={props.documentDetailsObj} documentDetailsObj={props.documentDetailsObj}
showFilteredDocs={props.showFilteredDocs} showFilteredDocs={props.showFilteredDocs}
ticketnumber={props.ticketnumber}
/> />
{showRepresentations == true && ( {showRepresentations == true && (
<RepresentationList <RepresentationList
+45 -35
View File
@@ -268,7 +268,7 @@ let MakeRepresentation = (props) => {
resultsObj = jsonpath({ resultsObj = jsonpath({
path: path:
'$..[?(@ && @.ticketnumber=="' + '$..[?(@ && @.ticketnumber=="' +
currentView.caseReference.currentReference + currentView.caseReference.ticketnumber +
'")]', '")]',
json: setCaseResultsObj, json: setCaseResultsObj,
eval: true, eval: true,
@@ -296,8 +296,8 @@ let MakeRepresentation = (props) => {
}) })
: jsonpath({ : jsonpath({
path: path:
'$..[?(@ && @.pinswg_name =="' + '$..[?(@ && @.ticketnumber =="' +
currentView.caseReference.currentReference + currentView.caseReference.ticketnumber +
'")]', '")]',
json: setCaseDetailsObj, json: setCaseDetailsObj,
eval: true, eval: true,
@@ -767,6 +767,26 @@ let MakeRepresentation = (props) => {
return blobList; return blobList;
}; };
const buildAddressStr = (detailsObj) => {
const toTitleCase = (str) =>
str.toLowerCase().replace(/\b\w/g, (char) => char.toUpperCase());
return [
detailsObj?.pinswg_siteaddressline1 ||
detailsObj?.pinswg_addressline1,
detailsObj?.pinswg_siteaddressline2 ||
detailsObj?.pinswg_addressline2,
detailsObj?.pinswg_siteaddresstown ||
detailsObj?.pinswg_addresstown,
detailsObj?.pinswg_siteaddresspostcode ||
detailsObj?.pinswg_postcode,
detailsObj?.pinswg_siteaddresscounty ||
detailsObj?.pinswg_addresscounty,
]
.filter((v) => !!v && v.trim()) // remove empty/whitespace-only values
.map((v) => toTitleCase(v.trim())) // title-case each segment
.join(" ");
};
const updateRepresentation = async ( const updateRepresentation = async (
values, values,
sendSavedEmail, sendSavedEmail,
@@ -790,7 +810,6 @@ let MakeRepresentation = (props) => {
"caseRef": props.props.currentView.caseReference.currentReference, "caseRef": props.props.currentView.caseReference.currentReference,
"casereference": "casereference":
props.props.currentView.caseReference.currentReference, props.props.currentView.caseReference.currentReference,
"ticketnumber": props.props.currentView.caseReference.ticketnumber,
"pinswg_questionnaireduedate": "pinswg_questionnaireduedate":
detailsObj.pinswg_questionnaireduedate, detailsObj.pinswg_questionnaireduedate,
"pinswg_statementduedate": "pinswg_statementduedate":
@@ -808,14 +827,7 @@ let MakeRepresentation = (props) => {
"lastname": props.props.accountDetails.accountDetails.lastname, "lastname": props.props.accountDetails.accountDetails.lastname,
"emailAddress": "emailAddress":
props.props.accountDetails.accountDetails.emailaddress1, props.props.accountDetails.accountDetails.emailaddress1,
"siteAddress": "siteAddress": buildAddressStr(detailsObj),
detailsObj.pinswg_siteaddressline1 +
(detailsObj.pinswg_siteaddressline2 != null
? " " + detailsObj.pinswg_siteaddressline2 + " "
: " ") +
detailsObj.pinswg_siteaddresstown +
" " +
detailsObj.pinswg_siteaddresspostcode,
"pinswg_siteaddressline1": detailsObj.pinswg_siteaddressline1, "pinswg_siteaddressline1": detailsObj.pinswg_siteaddressline1,
"pinswg_siteaddressline2": detailsObj.pinswg_siteaddressline2, "pinswg_siteaddressline2": detailsObj.pinswg_siteaddressline2,
"pinswg_siteaddresstown": detailsObj.pinswg_siteaddresstown, "pinswg_siteaddresstown": detailsObj.pinswg_siteaddresstown,
@@ -859,7 +871,6 @@ let MakeRepresentation = (props) => {
props.props.currentView.caseReference.repDetails.appealType, props.props.currentView.caseReference.repDetails.appealType,
"casereference": "casereference":
props.props.currentView.caseReference.currentReference, props.props.currentView.caseReference.currentReference,
"ticketnumber": props.props.currentView.caseReference.ticketnumber,
"incidentID": "incidentID":
props.props.currentView.caseReference.incidentid || props.props.currentView.caseReference.incidentid ||
props.props.currentView.caseReference.repDetails.incidentid, props.props.currentView.caseReference.repDetails.incidentid,
@@ -947,7 +958,10 @@ let MakeRepresentation = (props) => {
var detailsObj = {}; var detailsObj = {};
detailsObj = jsonpath({ detailsObj = jsonpath({
path: '$..[?(@ && @.pinswg_name=="' + caseReference + '")]', path:
'$..[?(@ && @.ticketnumber=="' +
currentView.caseReference.ticketnumber +
'")]',
json: setCaseDetailsObj, json: setCaseDetailsObj,
eval: true, eval: true,
}); });
@@ -979,15 +993,16 @@ let MakeRepresentation = (props) => {
"ticketnumber": "ticketnumber":
props.props.currentView.caseReference.ticketnumber, props.props.currentView.caseReference.ticketnumber,
"pinswg_questionnaireduedate": "pinswg_questionnaireduedate":
detailsObj.pinswg_questionnaireduedate, detailsObj?.pinswg_questionnaireduedate,
"pinswg_endofrepresentationperiod": "pinswg_endofrepresentationperiod":
detailsObj.pinswg_endofrepresentationperiod, detailsObj?.pinswg_endofrepresentationperiod,
"pinswg_applicationacceptedasvalid": "pinswg_applicationacceptedasvalid":
detailsObj.pinswg_applicationacceptedasvalid, detailsObj?.pinswg_applicationacceptedasvalid,
"pinswg_statementduedate": detailsObj.pinswg_statementduedate, "pinswg_statementduedate": detailsObj?.pinswg_statementduedate,
"pinswg_statementsduedate": detailsObj.pinswg_statementsduedate, "pinswg_statementsduedate":
detailsObj?.pinswg_statementsduedate,
"pinswg_finalcommentsduedate": "pinswg_finalcommentsduedate":
detailsObj.pinswg_finalcommentsduedate, detailsObj?.pinswg_finalcommentsduedate,
"pinswg_name": "pinswg_name":
props.props.currentView.caseReference.currentReference, props.props.currentView.caseReference.currentReference,
"firstname": "firstname":
@@ -995,19 +1010,12 @@ let MakeRepresentation = (props) => {
"lastname": props.props.accountDetails.accountDetails.lastname, "lastname": props.props.accountDetails.accountDetails.lastname,
"emailAddress": "emailAddress":
props.props.accountDetails.accountDetails.emailaddress1, props.props.accountDetails.accountDetails.emailaddress1,
"siteAddress": "siteAddress": buildAddressStr(detailsObj),
detailsObj.pinswg_siteaddressline1 + "pinswg_siteaddressline1": detailsObj?.pinswg_siteaddressline1,
(detailsObj.pinswg_siteaddressline2 != null "pinswg_siteaddressline2": detailsObj?.pinswg_siteaddressline2,
? " " + detailsObj.pinswg_siteaddressline2 + " " "pinswg_siteaddresstown": detailsObj?.pinswg_siteaddresstown,
: " ") +
detailsObj.pinswg_siteaddresstown +
" " +
detailsObj.pinswg_siteaddresspostcode,
"pinswg_siteaddressline1": detailsObj.pinswg_siteaddressline1,
"pinswg_siteaddressline2": detailsObj.pinswg_siteaddressline2,
"pinswg_siteaddresstown": detailsObj.pinswg_siteaddresstown,
"pinswg_siteaddresspostcode": "pinswg_siteaddresspostcode":
detailsObj.pinswg_siteaddresspostcode, detailsObj?.pinswg_siteaddresspostcode,
"pinswg_lpareference": resultsObj?.pinswg_lpareference || "", "pinswg_lpareference": resultsObj?.pinswg_lpareference || "",
"_pinswg_appellant_value": "_pinswg_appellant_value":
detailsObj["_pinswg_appellant_value"], detailsObj["_pinswg_appellant_value"],
@@ -1072,7 +1080,7 @@ let MakeRepresentation = (props) => {
console.log("has errors:", props.invalid); console.log("has errors:", props.invalid);
Object.assign(values, { Object.assign(values, {
"locale": router.locale, "locale": router.locale,
"repComplete": currentView.caseReference.currentReference, "repComplete": currentView.caseReference.ticketnumber,
}); });
props.invalid == false && props.invalid == false &&
updateRepresentation(values, false, false); updateRepresentation(values, false, false);
@@ -1094,7 +1102,7 @@ let MakeRepresentation = (props) => {
generateRepPDF( generateRepPDF(
values, values,
props.props.accountDetails.containerID, props.props.accountDetails.containerID,
currentView.caseReference.ticketnumber currentView.caseReference.currentReference
).then((data) => { ).then((data) => {
console.log(data); console.log(data);
data.status == "success" && data.status == "success" &&
@@ -1173,7 +1181,9 @@ let MakeRepresentation = (props) => {
dataObj, dataObj,
[{}], [{}],
values.containerID, values.containerID,
props.ticketnumber + "/" + dataObj.repfile_name props.props.currentView.caseReference.ticketnumber +
"/" +
dataObj.repfile_name
).then((data) => { ).then((data) => {
return data; return data;
}); });
@@ -196,7 +196,8 @@ const RepAgent = (props) => {
"myrepresentations:add-files-label" "myrepresentations:add-files-label"
)} )}
ticketnumber={ ticketnumber={
props.props.ticketnumber props.currentView.caseReference
.ticketnumber
} }
hint={"sdsd"} hint={"sdsd"}
fileList={ fileList={
@@ -188,7 +188,10 @@ const RepAppellant = (props) => {
label={t( label={t(
"myrepresentations:add-files-label" "myrepresentations:add-files-label"
)} )}
ticketnumber={props.props.ticketnumber} ticketnumber={
props.currentView.caseReference
.ticketnumber
}
hint={"sdsd"} hint={"sdsd"}
fileList={ fileList={
props.currentView.fileList props.currentView.fileList
@@ -35,6 +35,9 @@ let RepCapacitySelection = (props) => {
currentType={currentType} currentType={currentType}
casesObj={casesObj} casesObj={casesObj}
caseReference={props.props.caseReference} caseReference={props.props.caseReference}
ticketnumber={
props.props.currentView.caseReference.ticketnumber
}
searchResultsObj={props.props.searchResultsObj} searchResultsObj={props.props.searchResultsObj}
myRepresentations={props.props.myRepresentations} myRepresentations={props.props.myRepresentations}
props={props} props={props}
@@ -10,7 +10,7 @@ const RepDetails = (props) => {
const { currentType, casesObj } = props; const { currentType, casesObj } = props;
let { caseReference } = props; let { caseReference, ticketnumber } = props;
let setCaseDetailsObj = router.query.hasOwnProperty("state") let setCaseDetailsObj = router.query.hasOwnProperty("state")
? router.query.state == "edit" ? router.query.state == "edit"
@@ -29,7 +29,7 @@ const RepDetails = (props) => {
: caseReference; : caseReference;
detailsObj = jsonpath({ detailsObj = jsonpath({
path: '$..[?(@ && @.pinswg_name=="' + caseReference + '")]', path: '$..[?(@ && @.ticketnumber=="' + ticketnumber + '")]',
json: setCaseDetailsObj, json: setCaseDetailsObj,
eval: true, eval: true,
}); });
@@ -188,7 +188,8 @@ const RepInterestedPartyPerson = (props) => {
"myrepresentations:add-files-label" "myrepresentations:add-files-label"
)} )}
ticketnumber={ ticketnumber={
props.props.ticketnumber props.currentView.caseReference
.ticketnumber
} }
hint={"sdsd"} hint={"sdsd"}
fileList={ fileList={
@@ -353,7 +353,7 @@ let RepLPA = (props) => {
"myrepresentations:add-files-label" "myrepresentations:add-files-label"
)} )}
ticketnumber={ ticketnumber={
props.props.ticketnumber props.currentView.caseReference.ticketnumber
} }
hint={"sdsd"} hint={"sdsd"}
fileList={ fileList={
@@ -84,7 +84,10 @@ const RepLandOwner = (props) => {
label={t( label={t(
"myrepresentations:add-files-label" "myrepresentations:add-files-label"
)} )}
ticketnumber={props.props.ticketnumber} ticketnumber={
props.currentView.caseReference
.ticketnumber
}
hint={"sdsd"} hint={"sdsd"}
fileList={[]} fileList={[]}
setFilesForRepresentation={[]} setFilesForRepresentation={[]}
@@ -1213,7 +1213,10 @@ let Enforcement_Questionnaire = (props) => {
name={"representationDocuments"} name={"representationDocuments"}
id={"representationDocuments"} id={"representationDocuments"}
label={t("myrepresentations:add-files-label")} label={t("myrepresentations:add-files-label")}
ticketnumber={props.props.props.ticketnumber} ticketnumber={
props.props.currentView.caseReference
.ticketnumber
}
hint={"sdsd"} hint={"sdsd"}
fileList={ fileList={
props.currentView.fileList props.currentView.fileList
@@ -1022,7 +1022,10 @@ let S78_Questionnaire = (props) => {
name={"representationDocuments"} name={"representationDocuments"}
id={"representationDocuments"} id={"representationDocuments"}
label={t("myrepresentations:add-files-label")} label={t("myrepresentations:add-files-label")}
ticketnumber={props.props.props.ticketnumber} ticketnumber={
props.props.currentView.caseReference
.ticketnumber
}
hint={"sdsd"} hint={"sdsd"}
fileList={ fileList={
props.currentView.fileList props.currentView.fileList
+4 -4
View File
@@ -177,13 +177,13 @@ const CaseSummary = (props) => {
currentType == "searchResultsObj" currentType == "searchResultsObj"
? (casesObj = jsonpath({ ? (casesObj = jsonpath({
path: '$..[?(@ && @.title=="' + caseReference + '")]', path: '$..[?(@ && @.ticketnumber=="' + ticketnumber + '")]',
json: searchResultsObj, json: searchResultsObj,
eval: true, eval: true,
})) }))
: currentType == "watchedCases" : currentType == "watchedCases"
? (casesObj = jsonpath({ ? (casesObj = jsonpath({
path: '$..[?(@ && @.pinswg_title=="' + caseReference + '")]', path: '$..[?(@ && @.ticketnumber=="' + ticketnumber + '")]',
json: setCaseQueryObj, json: setCaseQueryObj,
eval: true, eval: true,
})) }))
@@ -467,13 +467,13 @@ const CaseSummary = (props) => {
case: case:
currentType == currentType ==
"searchResultsObj" "searchResultsObj"
? detailsObj.pinswg_name ? detailsObj.ticketnumber
: currentType == : currentType ==
"watchedCases" "watchedCases"
? casesObj.pinswg_title ? casesObj.pinswg_title
: currentType == : currentType ==
"directResultsObj" "directResultsObj"
? casesObj.ticketnumber ? detailsObj.ticketnumber
: casesObj.reference, : casesObj.reference,
}, },
}} }}
+9 -2
View File
@@ -4,8 +4,14 @@ import CRMError from "./crmError";
import DNSSearchResults from "./search/dnssearchresults"; import DNSSearchResults from "./search/dnssearchresults";
export default function Search(props) { export default function Search(props) {
const { searchString, searchResultsObj, myportal, watchedCases, showMap } = const {
props; searchString,
searchResultsObj,
myportal,
watchedCases,
showMap,
showLoginCheck,
} = props;
let { t } = useTranslation(); let { t } = useTranslation();
const router = useRouter(); const router = useRouter();
@@ -41,6 +47,7 @@ export default function Search(props) {
myportal={myportal} myportal={myportal}
watchedCases={watchedCases} watchedCases={watchedCases}
showMap={showMap} showMap={showMap}
showLoginCheck={showLoginCheck}
/> />
</div> </div>
</div> </div>
+5 -5
View File
@@ -239,9 +239,8 @@ const TopThree = (props) => {
: showTopThreeArr[key][ : showTopThreeArr[key][
"_pinswg_case_value@OData.Community.Display.V1.FormattedValue" "_pinswg_case_value@OData.Community.Display.V1.FormattedValue"
] ]
: showTopThreeArr[key][ : showTopThreeArr[key]
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" .ticketnumber,
],
"currentType": topThreeType, "currentType": topThreeType,
"incidentid": getIncidentId( "incidentid": getIncidentId(
@@ -255,7 +254,8 @@ const TopThree = (props) => {
}); });
}} }}
> >
{topThreeType != "watchedCases" {showTopThreeArr[key].pinswg_title}
{/* {topThreeType != "watchedCases"
? topThreeType != "myRepresentations" ? topThreeType != "myRepresentations"
? topThreeType == "mySubmittedReps" ? topThreeType == "mySubmittedReps"
? showTopThreeArr[key].pinswg_title ? showTopThreeArr[key].pinswg_title
@@ -265,7 +265,7 @@ const TopThree = (props) => {
] ]
: showTopThreeArr[key][ : showTopThreeArr[key][
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
]}{" "} ]}{" "} */}
</Link> </Link>
)} )}
{topThreeType == "watchedCases" && !props.myReps && ( {topThreeType == "watchedCases" && !props.myReps && (
+5 -4
View File
@@ -36,6 +36,8 @@ import {
setMyRepresentationsDetails, setMyRepresentationsDetails,
} from "../../store/myRepresentations/action"; } from "../../store/myRepresentations/action";
import RepsOnResults from "../search/repsonresults";
const ViewAllResults = (props) => { const ViewAllResults = (props) => {
const { const {
searchString, searchString,
@@ -268,10 +270,7 @@ const ViewAllResults = (props) => {
? currentView.viewKey == ? currentView.viewKey ==
"myRepresentations" "myRepresentations"
? resultsArr[key].caseRef ? resultsArr[key].caseRef
: currentView.viewKey == : resultsArr[key].pinswg_title
"mySubmittedReps"
? resultsArr[key].pinswg_title
: resultsArr[key].ticketnumber
: resultsArr[key][ : resultsArr[key][
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
]} ]}
@@ -284,6 +283,8 @@ const ViewAllResults = (props) => {
</span> </span>
</> </>
)} )}
<RepsOnResults detailsObj={resultsArr[key]} />
</> </>
)} )}
</dd> </dd>
+2 -2
View File
@@ -247,8 +247,8 @@ const SearchResults = (props) => {
resultsArrPaged.map((item, key) => { resultsArrPaged.map((item, key) => {
let detailsObj = jsonpath({ let detailsObj = jsonpath({
path: path:
'$..value[?(@ && @.pinswg_name=="' + '$..value[?(@ && @.ticketnumber=="' +
item.pinswg_name + item.ticketnumber +
'")]', '")]',
json: searchDetailsObj, json: searchDetailsObj,
+53 -2
View File
@@ -32,6 +32,8 @@ import {
setWatchedCasesDetails, setWatchedCasesDetails,
} from "../../store/watchedCases/action"; } from "../../store/watchedCases/action";
import { getDetailsProxy, getSearchDetailsPaged } from "../utils"; import { getDetailsProxy, getSearchDetailsPaged } from "../utils";
import RepsOnResults from "./repsonresults";
import { signIn, useSession } from "next-auth/react";
const DNSSearchResults = (props) => { const DNSSearchResults = (props) => {
const { const {
@@ -49,11 +51,13 @@ const DNSSearchResults = (props) => {
setWatchedCases, setWatchedCases,
setWatchedCasesDetails, setWatchedCasesDetails,
showMap, showMap,
showLoginCheck,
} = props; } = props;
let { t } = useTranslation(); let { t } = useTranslation();
const router = useRouter(); const router = useRouter();
const { locale } = router; const { locale } = router;
const { data: session } = useSession();
var resultsArr = searchResultsObj.value || []; var resultsArr = searchResultsObj.value || [];
@@ -300,8 +304,8 @@ const DNSSearchResults = (props) => {
resultsArr.map((item, key) => { resultsArr.map((item, key) => {
let detailsObj = jsonpath({ let detailsObj = jsonpath({
path: path:
'$..value[?(@ && @.pinswg_name=="' + '$..value[?(@ && @.ticketnumber=="' +
item.title + item.ticketnumber +
'")]', '")]',
json: searchDetailsObj, json: searchDetailsObj,
eval: true, eval: true,
@@ -340,6 +344,8 @@ const DNSSearchResults = (props) => {
"appealType": "appealType":
item.pinswg_appealcasetype, item.pinswg_appealcasetype,
"showMap": showMap, "showMap": showMap,
"showLoginCheck":
props.showLoginCheck,
}); });
}} }}
> >
@@ -557,6 +563,51 @@ const DNSSearchResults = (props) => {
)} )}
</dd> </dd>
)} )}
{(showLoginCheck == "true" ||
showLoginCheck == true) &&
!session && (
<dd className="govuk-summary-list__value govuk-!-font-size-14 govuk-summary-list__action">
<span className="results-visually-hidden">
{t(
"case:watch-this-case-link"
)}
</span>
<button
className="govuk-summary-list__actionLink watchLink"
onClick={() => {
confirm(
t(
"case:trying-to-watch-case-label"
) +
item.title +
"\n\n" +
t(
"case:trying-to-watch-case-redirect-label"
)
) &&
// signIn("email");
signIn(
undefined,
{
callbackUrl:
"/myportal/searchresults?q=" +
searchString +
"&toWatch=" +
item.incidentid +
"_" +
item.pinswg_appealcasetype,
}
);
}}
title={t(
"case:watch-this-case-link"
)}
>
<span className="eye"></span>
</button>
</dd>
)}
</div> </div>
); );
}) })
+2 -2
View File
@@ -244,8 +244,8 @@ const SearchResults = (props) => {
resultsArr.map((item, key) => { resultsArr.map((item, key) => {
let detailsObj = jsonpath({ let detailsObj = jsonpath({
path: path:
'$..value[?(@ && @.pinswg_name=="' + '$..value[?(@ && @.ticketnumber=="' +
item.title + item.ticketnumber +
'")]', '")]',
json: searchDetailsObj, json: searchDetailsObj,
eval: true, eval: true,
+9
View File
@@ -34,6 +34,15 @@ export const getFormCollectionByID = (appealTypeID) => {
return collectionName[0]; return collectionName[0];
}; };
export const getNavigationPropertyByPrimaryAttribute = (primaryAttribute) => {
const collectionName = jsonpath({
path: "$..[?(@ && @.PrimaryIdAttribute =='" + primaryAttribute + "')]",
json: data,
eval: true,
});
return collectionName[0];
};
export const getFormIDByLogicalName = (appealTypeLogicalName) => { export const getFormIDByLogicalName = (appealTypeLogicalName) => {
const collectionName = jsonpath({ const collectionName = jsonpath({
path: "$..[?(@ && @.LogicalName =='" + appealTypeLogicalName + "')]", path: "$..[?(@ && @.LogicalName =='" + appealTypeLogicalName + "')]",
+2 -2
View File
@@ -21,10 +21,10 @@ module.exports = {
"/myportal/case": ["case"], "/myportal/case": ["case"],
"/myportal/case/[ticketnumber]": ["case"], "/myportal/case/[ticketnumber]": ["case"],
"/myportal/dnsapplications": [ "/myportal/dnsapplications": [
"case",
"search", "search",
"dnsCommon", "dnsCommon",
"dnsApplications", "dnsApplications",
"case",
], ],
"/myportal/dnsdetails": [ "/myportal/dnsdetails": [
"case", "case",
@@ -64,7 +64,7 @@ module.exports = {
"/dns": ["dnsCommon", "dnsHome"], "/dns": ["dnsCommon", "dnsHome"],
"/dns/applications": ["dnsCommon", "dnsApplications"], "/dns/applications": ["dnsCommon", "dnsApplications"],
"/dns/application-view": ["dnsCommon", "dnsApplicationView"], "/dns/application-view": ["dnsCommon", "dnsApplicationView"],
"/dnsapplications": ["case", "search", "dnsCommon", "dnsApplications"], "/dnsapplications": ["search", "dnsCommon", "dnsApplications", "case"],
"/dnsdetails": ["case", "search", "dnsCommon", "dnsApplications"], "/dnsdetails": ["case", "search", "dnsCommon", "dnsApplications"],
"/help/cookies": ["common", "cookies"], "/help/cookies": ["common", "cookies"],
"/account/register": ["common", "account"], "/account/register": ["common", "account"],
@@ -33,7 +33,7 @@ import axios from "axios";
import CryptoJS from "crypto-js"; import CryptoJS from "crypto-js";
import { azureHeaders, consoleLogger, getToken } from "../../../actions"; import { azureHeaders, consoleLogger, getToken } from "../../../actions";
import { getSelectQuery } from "../../../actions/selectQueryTypes"; import { getSelectQuery } from "../../../actions/selectQueryTypes";
import { getNavigationPropertyByPrimaryAttribute } from "../../../components/utils";
const WORDKEY = process.env.HASHKEY; const WORDKEY = process.env.HASHKEY;
const WEBAPI_URL = const WEBAPI_URL =
@@ -55,13 +55,22 @@ export default async function ApiProxy(req, res) {
var incidentID = req.query.incidentID; var incidentID = req.query.incidentID;
var token = await getToken(); var token = await getToken();
let navigationProperty =
getNavigationPropertyByPrimaryAttribute(
primaryIdAttribute
).NavigationProperty;
var queryUrl = var queryUrl =
appealTypeName + appealTypeName +
"?$filter=_" + "?$filter=_" +
primaryIdAttribute + primaryIdAttribute +
"s_value eq " + "s_value eq " +
incidentID + incidentID +
"&$count=true"; "&$count=true" +
"&$expand=" +
navigationProperty +
"($select=ticketnumber)";
//" and statuscode eq 1&$count=true"; //" and statuscode eq 1&$count=true";
queryUrl = queryUrl + getSelectQuery(appealTypeName); queryUrl = queryUrl + getSelectQuery(appealTypeName);
@@ -81,6 +90,13 @@ export default async function ApiProxy(req, res) {
azureHeaders(token.access_token) azureHeaders(token.access_token)
) )
.then(({ data }) => { .then(({ data }) => {
let flattened = data.value.map((r) => ({
...r,
ticketnumber: r[navigationProperty]?.ticketnumber || null,
}));
data.value = flattened;
res.status(200).json(data); res.status(200).json(data);
}) })
.catch((error) => { .catch((error) => {
@@ -34,7 +34,7 @@ import CryptoJS from "crypto-js";
import _ from "lodash"; import _ from "lodash";
import { azureHeadersPaged, consoleLogger, getToken } from "../../../actions"; import { azureHeadersPaged, consoleLogger, getToken } from "../../../actions";
import { getSelectQuery } from "../../../actions/selectQueryTypes"; import { getSelectQuery } from "../../../actions/selectQueryTypes";
import { getNavigationPropertyByPrimaryAttribute } from "../../../components/utils";
const WORDKEY = process.env.HASHKEY; const WORDKEY = process.env.HASHKEY;
const WEBAPI_URL = const WEBAPI_URL =
@@ -59,13 +59,22 @@ export default async function ApiProxy(req, res) {
var incidentID = req.query.incidentID; var incidentID = req.query.incidentID;
var token = await getToken(); var token = await getToken();
let navigationProperty =
getNavigationPropertyByPrimaryAttribute(
primaryIdAttribute
).NavigationProperty;
var queryUrl = var queryUrl =
appealTypeName + appealTypeName +
"?$filter=_" + "?$filter=_" +
primaryIdAttribute + primaryIdAttribute +
"s_value eq " + "s_value eq " +
incidentID + incidentID +
"&$count=true"; "&$count=true" +
"&$expand=" +
navigationProperty +
"($select=ticketnumber)";
//" and statuscode eq 1&$count=true"; //" and statuscode eq 1&$count=true";
queryUrl = queryUrl + getSelectQuery(appealTypeName); queryUrl = queryUrl + getSelectQuery(appealTypeName);
@@ -78,10 +87,18 @@ export default async function ApiProxy(req, res) {
azureHeadersPaged(token.access_token) azureHeadersPaged(token.access_token)
) )
.then(({ data }) => { .then(({ data }) => {
let flattened = data.value.map((r) => ({
...r,
ticketnumber: r[navigationProperty]?.ticketnumber || null,
}));
data.value = flattened;
var dataStr; var dataStr;
_.has(data, "@odata.nextLink") == true && _.has(data, "@odata.nextLink") == true &&
((dataStr = JSON.stringify(data["@odata.nextLink"])), ((dataStr = JSON.stringify(data["@odata.nextLink"])),
(data["@odata.nextLink"] = dataStr.split("/v8.2/")[1])); (data["@odata.nextLink"] = dataStr.split("/v8.2/")[1]));
return res.status(200).json(data); return res.status(200).json(data);
}) })
.catch((error) => { .catch((error) => {
+4
View File
@@ -79,6 +79,10 @@ const CaseHome = (props) => {
props.awaitingSubmission.awaitingSubmission props.awaitingSubmission.awaitingSubmission
} }
caseReference={ caseReference={
props.searchResultsObj.searchResultsObj.value[0]
.caseReference
}
ticketnumber={
props.searchResultsObj.searchResultsObj.value[0] props.searchResultsObj.searchResultsObj.value[0]
.ticketnumber .ticketnumber
} }
+7 -2
View File
@@ -20,7 +20,7 @@ import { wrapper } from "../store/store";
import ServiceBanner from "../components/servicebanner"; import ServiceBanner from "../components/servicebanner";
const Home = (props) => { const Home = (props) => {
const { footerLinks, pages, showMap } = props; const { footerLinks, pages, showMap, showLoginCheck } = props;
let { t, lang } = useTranslation(); let { t, lang } = useTranslation();
const router = useRouter(); const router = useRouter();
@@ -105,6 +105,7 @@ const Home = (props) => {
showMap={showMap} showMap={showMap}
searchString="DNS" searchString="DNS"
searchResultsObj={props.searchResultsObj} searchResultsObj={props.searchResultsObj}
showLoginCheck={showLoginCheck}
/> />
</div> </div>
<Footer footerLinks={footerLinks} ticketnumber={props} /> <Footer footerLinks={footerLinks} ticketnumber={props} />
@@ -134,6 +135,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
} }
: searchResultsObj; : searchResultsObj;
const showLoginCheck = process.env.SHOWLOGIN || false;
const showMapCheck = process.env.SHOWMAPS || false; const showMapCheck = process.env.SHOWMAPS || false;
if (_.has(searchResultsObj, "status") == true) { if (_.has(searchResultsObj, "status") == true) {
@@ -156,7 +158,10 @@ export const getServerSideProps = wrapper.getServerSideProps(
} }
return { return {
props: { showMap: showMapCheck }, props: {
showMap: showMapCheck,
showLoginCheck: showLoginCheck,
},
}; };
} }
); );
+9 -14
View File
@@ -124,9 +124,7 @@ const CaseHome = (props) => {
<Footer <Footer
footerLinks={footerLinks} footerLinks={footerLinks}
props={props} props={props}
ticketnumber={ ticketnumber={props.currentView.caseReference.ticketnumber}
props.currentView.caseReference.currentReference
}
/> />
<TimeOut /> <TimeOut />
</div> </div>
@@ -177,10 +175,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
store.dispatch(setAccountDetails(accountDetails)); store.dispatch(setAccountDetails(accountDetails));
store.dispatch(setLoggedInUserId(loggedInUser)); store.dispatch(setLoggedInUserId(loggedInUser));
let developmentQuery = let developmentQuery = query.ticketnumber;
query.ticketnumber.indexOf("CAS-") == 0
? query.ticketnumber
: query.ticketnumber.split("-").join(" ");
const searchResultsObj = await getBasicSearch(developmentQuery); const searchResultsObj = await getBasicSearch(developmentQuery);
const searchDetailsObj = await getSearchDetails(searchResultsObj); const searchDetailsObj = await getSearchDetails(searchResultsObj);
@@ -198,10 +193,10 @@ export const getServerSideProps = wrapper.getServerSideProps(
store.dispatch(setSearch(developmentQuery)); store.dispatch(setSearch(developmentQuery));
console.log( // console.log(
searchResultsObj["@odata.count"] > 1 || // searchResultsObj["@odata.count"] > 1 ||
searchResultsObj["@odata.count"] < 1 // searchResultsObj["@odata.count"] < 1
); // );
if (searchResultsObj["@odata.count"] < 1) { if (searchResultsObj["@odata.count"] < 1) {
return { return {
@@ -386,14 +381,14 @@ const getDetails = (resultsObj, detailsType) => {
case "myCases": case "myCases":
caseID = data.pinswg_title; caseID = data.pinswg_title;
break; break;
case "myWatchedCases": case "mySubmittedReps":
caseID = caseID =
data[ data[
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
]; ];
break; break;
case "mySubmittedReps":
case "awaitingSubmission": case "awaitingSubmission":
case "myWatchedCases":
case "myRepresentations": case "myRepresentations":
caseID = data.ticketnumber; caseID = data.ticketnumber;
break; break;
@@ -418,12 +413,12 @@ const getDetails = (resultsObj, detailsType) => {
caseID = searchDetail.pinswg_title; caseID = searchDetail.pinswg_title;
break; break;
case "myWatchedCases": case "myWatchedCases":
case "mySubmittedReps":
caseID = caseID =
searchDetail[ searchDetail[
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue" "_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
]; ];
break; break;
case "mySubmittedReps":
case "awaitingSubmission": case "awaitingSubmission":
caseID = searchDetail.ticketnumber; caseID = searchDetail.ticketnumber;
break; break;
+4
View File
@@ -79,6 +79,10 @@ const CaseHome = (props) => {
props.awaitingSubmission.awaitingSubmission props.awaitingSubmission.awaitingSubmission
} }
caseReference={ caseReference={
props.searchResultsObj.searchResultsObj.value[0]
.caseReference
}
ticketnumber={
props.searchResultsObj.searchResultsObj.value[0] props.searchResultsObj.searchResultsObj.value[0]
.ticketnumber .ticketnumber
} }