312 lines
14 KiB
JavaScript
312 lines
14 KiB
JavaScript
import Link from "next/link";
|
|
import { useRouter } from "next/router";
|
|
import useTranslation from "next-translate/useTranslation";
|
|
import { setCurrentReference } from "../../store/currentView/action";
|
|
import { connect } from "react-redux";
|
|
import jsonpath from "jsonpath";
|
|
import transLookup from "../../data/lookuptranslations.json";
|
|
import { getFormCollectionByID } from "../../components/utils";
|
|
|
|
const ViewAllResults = (props) => {
|
|
const {
|
|
searchString,
|
|
searchResultsObj,
|
|
currentView,
|
|
setCurrentReference,
|
|
myportal,
|
|
} = props;
|
|
|
|
let { t } = useTranslation();
|
|
|
|
const router = useRouter();
|
|
const { locale } = router;
|
|
|
|
var resultsArr = props[currentView.viewKey][currentView.viewKey].value || [
|
|
{},
|
|
];
|
|
|
|
function formatDates(dateObj) {
|
|
var dateObj = new Date(dateObj);
|
|
var dd = String(dateObj.getDate()).padStart(2, "0");
|
|
var mm = String(dateObj.getMonth() + 1).padStart(2, "0"); //January is 0!
|
|
var yyyy = dateObj.getFullYear();
|
|
|
|
return dd + "/" + mm + "/" + yyyy;
|
|
}
|
|
|
|
console.log(
|
|
currentView.viewKey,
|
|
props[currentView.viewKey],
|
|
props[currentView.viewKey][currentView.viewKey].value
|
|
);
|
|
|
|
var searchDetailsObj =
|
|
props[currentView.viewKey][currentView.viewKey + "Details"] || {};
|
|
let resultsRowArr = [];
|
|
resultsArr.map((item, key) => {
|
|
let detailsObj = jsonpath.query(
|
|
searchDetailsObj,
|
|
'$..value[?(@.pinswg_name=="' + item.pinswg_title + '")]'
|
|
);
|
|
detailsObj = detailsObj[0];
|
|
|
|
resultsRowArr.push(
|
|
<div className="govuk-summary-list__row" key={key}>
|
|
<dd className="govuk-summary-list__value govuk-!-font-size-16 govuk-!-padding-left-2">
|
|
<Link
|
|
href={
|
|
currentView.viewKey == "awaitingSubmission"
|
|
? router.locale == "cy"
|
|
? "/fymhorth/parhauigyflwyno"
|
|
: "/myportal" +
|
|
"/" +
|
|
getFormCollectionByID(
|
|
resultsArr[key].pinswg_appealcasetype
|
|
).UrlName +
|
|
"?lpa=" +
|
|
resultsArr[key][
|
|
"_pinswg_associatedlpa_value"
|
|
] +
|
|
"&apt=" +
|
|
resultsArr[key].pinswg_appealcasetype +
|
|
"&casereference=" +
|
|
resultsArr[key].pinswg_title +
|
|
"&inid=" +
|
|
resultsArr[key].incidentid
|
|
: router.locale == "cy"
|
|
? myportal == true
|
|
? "/fymhorth/achos"
|
|
: "/achos"
|
|
: myportal == true
|
|
? "/myportal/case"
|
|
: "/case"
|
|
}
|
|
>
|
|
<a
|
|
onClick={() => {
|
|
setCurrentReference({
|
|
"currentReference":
|
|
currentView.viewKey != "watchedCases"
|
|
? resultsArr[key].ticketnumber
|
|
: resultsArr[key][
|
|
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
|
|
],
|
|
|
|
"currentType": currentView.viewKey,
|
|
"incidentid":
|
|
currentView.viewKey != "watchedCases"
|
|
? resultsArr[key].incidentid
|
|
: resultsArr[key][
|
|
"_pinswg_watchedcase_value"
|
|
],
|
|
|
|
"appealType":
|
|
resultsArr[key].pinswg_appealcasetype,
|
|
});
|
|
}}
|
|
>
|
|
<span className="results-visually-hidden">
|
|
Case Reference:
|
|
</span>
|
|
|
|
{currentView.viewKey != "watchedCases"
|
|
? resultsArr[key].ticketnumber
|
|
: resultsArr[key][
|
|
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
|
|
]}
|
|
</a>
|
|
</Link>
|
|
</dd>
|
|
<dd className="govuk-summary-list__value govuk-!-font-size-16">
|
|
<span className="results-visually-hidden">
|
|
{t("search:searchresults-site-address-label")}:
|
|
</span>
|
|
{/* {getFormCollectionByID(appealTypeID).PrimaryIdAttribute ==
|
|
"pinswg_dnsid"
|
|
? detailsObj.pinswg_projectlocation != null
|
|
? detailsObj.pinswg_projectlocation.indexOf(";") < 0
|
|
? detailsObj.pinswg_projectlocation
|
|
: router.locale == "cy"
|
|
? detailsObj.pinswg_projectlocation.split(
|
|
";"
|
|
)[1]
|
|
: detailsObj.pinswg_projectlocation.split(
|
|
";"
|
|
)[0]
|
|
: ""
|
|
: ""} */}
|
|
{_.has(detailsObj, "pinswg_siteaddressline1")
|
|
? detailsObj.pinswg_siteaddressline1
|
|
: ""}
|
|
|
|
{/* {detailsObj.pinswg_siteaddressline1 !=
|
|
null && <br />} */}
|
|
|
|
{_.has(detailsObj, "pinswg_siteaddressline1") &&
|
|
detailsObj.pinswg_siteaddressline1 != null && <br />}
|
|
|
|
{_.has(detailsObj, "pinswg_siteaddressline1")
|
|
? detailsObj.pinswg_siteaddressline2
|
|
: ""}
|
|
|
|
{_.has(detailsObj, "pinswg_siteaddressline2") &&
|
|
detailsObj.pinswg_siteaddressline2 != null && <br />}
|
|
{_.has(detailsObj, "pinswg_siteaddresstown")
|
|
? detailsObj.pinswg_siteaddresstown
|
|
: ""}
|
|
{_.has(detailsObj, "pinswg_siteaddresstown") &&
|
|
detailsObj.pinswg_siteaddresstown != null && <br />}
|
|
|
|
{_.has(detailsObj, "pinswg_siteaddresscounty")
|
|
? detailsObj.pinswg_siteaddresscounty
|
|
: ""}
|
|
{_.has(detailsObj, "pinswg_siteaddresscounty") &&
|
|
detailsObj.pinswg_siteaddresscounty != null && <br />}
|
|
{_.has(detailsObj, "pinswg_siteaddresspostcode")
|
|
? detailsObj.pinswg_siteaddresspostcode
|
|
: ""}
|
|
</dd>
|
|
<dd className="govuk-summary-list__value govuk-!-font-size-16">
|
|
<span className="results-visually-hidden">
|
|
{currentView.viewKey == "awaitingSubmission"
|
|
? "Created on"
|
|
: t("search:searchresults-applicant-label")}
|
|
</span>
|
|
|
|
{currentView.viewKey == "awaitingSubmission"
|
|
? formatDates(item.createdon)
|
|
: _.has(detailsObj, [
|
|
"_pinswg_appellant_value@OData.Community.Display.V1.FormattedValue",
|
|
])
|
|
? detailsObj[
|
|
"_pinswg_appellant_value@OData.Community.Display.V1.FormattedValue"
|
|
]
|
|
: resultsArr[key][
|
|
"_customerid_value@OData.Community.Display.V1.FormattedValue"
|
|
]}
|
|
</dd>
|
|
<dd className="govuk-summary-list__value govuk-!-font-size-16">
|
|
<span className="results-visually-hidden">
|
|
{t("search:searchresults-authority-label")}:
|
|
</span>
|
|
{_.has(detailsObj, [
|
|
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue",
|
|
])
|
|
? router.locale == "cy"
|
|
? jsonpath.query(
|
|
transLookup,
|
|
'$..[?(@.value=="' +
|
|
item[
|
|
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
|
|
] +
|
|
'")].value_cy'
|
|
)
|
|
: detailsObj[
|
|
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
|
|
] || "N/A"
|
|
: ""}
|
|
</dd>
|
|
<dd className="govuk-summary-list__value govuk-!-font-size-16">
|
|
<span className="results-visually-hidden">
|
|
{t("search:searchresults-case-type-label")}:
|
|
</span>
|
|
{router.locale == "cy"
|
|
? jsonpath.query(
|
|
transLookup,
|
|
'$..[?(@.value=="' +
|
|
item[
|
|
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
|
|
] +
|
|
'")].value_cy'
|
|
)
|
|
: item[
|
|
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
|
|
] || "N/A"}
|
|
</dd>
|
|
<dd className="govuk-summary-list__value govuk-!-font-size-16">
|
|
<span className="results-visually-hidden">
|
|
{t("search:searchresults-status-label")}:
|
|
</span>
|
|
{router.locale == "cy"
|
|
? jsonpath.query(
|
|
transLookup,
|
|
'$..[?(@.value=="' +
|
|
item[
|
|
"statuscode@OData.Community.Display.V1.FormattedValue"
|
|
] +
|
|
'")].value_cy'
|
|
)
|
|
: item[
|
|
"statuscode@OData.Community.Display.V1.FormattedValue"
|
|
] || "N/A"}
|
|
</dd>
|
|
</div>
|
|
);
|
|
});
|
|
|
|
return (
|
|
<>
|
|
<div className="govuk-grid-row">
|
|
<div className="govuk-grid-column-full">
|
|
<h1 className="govuk-heading-xl govuk-!-margin-bottom-7">
|
|
{currentView.viewName}
|
|
</h1>
|
|
|
|
<dl className="govuk-summary-list govuk-!-margin-bottom-9 results">
|
|
<div className="govuk-summary-list__row results-headings">
|
|
<dd className="govuk-summary-list__key govuk-!-font-size-16 results_wider govuk-!-padding-left-2">
|
|
{t("search:searchresults-case-reference-label")}
|
|
</dd>
|
|
<dd className="govuk-summary-list__key govuk-!-font-size-16">
|
|
{t("search:searchresults-site-address-label")}
|
|
</dd>
|
|
{currentView.viewKey == "awaitingSubmission" ? (
|
|
<dd className="govuk-summary-list__key govuk-!-font-size-16">
|
|
Created on
|
|
</dd>
|
|
) : (
|
|
<dd className="govuk-summary-list__key govuk-!-font-size-16">
|
|
{t("search:searchresults-applicant-label")}
|
|
</dd>
|
|
)}
|
|
<dd className="govuk-summary-list__key govuk-!-font-size-16">
|
|
{t("search:searchresults-authority-label")}
|
|
</dd>
|
|
<dd className="govuk-summary-list__key govuk-!-font-size-16">
|
|
{t("search:searchresults-case-type-label")}
|
|
</dd>
|
|
<dd className="govuk-summary-list__key govuk-!-font-size-16">
|
|
{t("search:searchresults-status-label")}
|
|
</dd>
|
|
</div>
|
|
|
|
{resultsRowArr}
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div className="govuk-grid-row">
|
|
<div className="govuk-grid-column-full">
|
|
<div className="govuk-button-group">
|
|
<a
|
|
onClick={() => router.back()}
|
|
className="govuk-button"
|
|
>
|
|
Back
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</>
|
|
);
|
|
};
|
|
|
|
const mapDispatchToProps = (dispatch) => {
|
|
return {
|
|
setCurrentReference: (currentReference) => {
|
|
dispatch(setCurrentReference(currentReference));
|
|
},
|
|
};
|
|
};
|
|
|
|
export default connect(null, mapDispatchToProps)(ViewAllResults);
|