Merged PR 479: Updates for dates, LPA and docs

Related work items: #6209, #6239, #6248
This commit is contained in:
Robert Bond
2021-09-27 15:59:00 +00:00
12 changed files with 1553 additions and 1071 deletions
+87 -86
View File
@@ -143,17 +143,17 @@ export const getBasicSearch = (token, searchString) => {
return axios return axios
.get( .get(
WEBAPI_URL + WEBAPI_URL +
"incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title, _primarycontactid_value&$expand=primarycontactid($select=fullname)&$filter=contains(title, '" + "incidents?$select=_accountid_value,_customerid_value,_pinswg_associatedlpa_value,_ownerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title, _primarycontactid_value&$expand=primarycontactid($select=fullname)&$filter=contains(title, '" +
searchString + searchString +
"') and pinswg_appealcasetype ne null &$orderby=createdon desc&$count=true&$top=201", "') and pinswg_appealcasetype ne null and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true&$top=201",
azureHeaders(token) azureHeaders(token)
) )
.then((res) => { .then((res) => {
console.log(" "); // console.log(" ");
console.log("/////////////////////"); // console.log("/////////////////////");
console.log("data:" + res.data.value); // console.log("data:" + res.data.value);
console.log("/////////////////////"); // console.log("/////////////////////");
console.log(" "); // console.log(" ");
return res.data; return res.data;
}) })
.catch((error) => { .catch((error) => {
@@ -165,7 +165,7 @@ export const getBasicDNSSearch = (token, searchString) => {
return axios return axios
.get( .get(
WEBAPI_URL + WEBAPI_URL +
"incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title, _primarycontactid_value&$expand=primarycontactid($select=fullname)&$filter=pinswg_appealcasetype eq 846040011&$orderby=createdon desc&$count=true", "incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title, _primarycontactid_value&$expand=primarycontactid($select=fullname)&$filter=pinswg_appealcasetype eq 846040011 and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true",
azureHeaders(token) azureHeaders(token)
) )
.then((res) => res.data) .then((res) => res.data)
@@ -210,7 +210,7 @@ export const getAdvancedSearch = (token, searchString) => {
WEBAPI_URL + WEBAPI_URL +
"incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title&$filter=" + "incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title&$filter=" +
queryString + queryString +
" and pinswg_appealcasetype ne null &$orderby=createdon desc&$count=true&$top=201", " and pinswg_appealcasetype ne null and pinswg_publishtoweb eq true&$orderby=createdon desc&$count=true&$top=201",
azureHeaders(token) azureHeaders(token)
) )
@@ -236,6 +236,65 @@ export const getBasicSearchDetails = (token, appealType, caseReference) => {
}); });
}; };
export const getSearchDocumentDetails = (token, incidentID) => {
return axios
.get(
WEBAPI_URL +
"pinswg_documents?$count=true&$filter=_pinswg_documentids_value eq " +
incidentID +
" and pinswg_publishtoweb eq true&$select=pinswg_isharedocumentlocations,_pinswg_documentids_value,pinswg_isharelabelcasetype,pinswg_isharelabellpaname,pinswg_publishtoweb,pinswg_uploadstatus,pinswg_isharedocumentclassification,pinswg_isharedocumentreference",
azureHeaders(token)
)
.then((res) => res.data)
.catch((error) => {
console.log("thiserror", error);
});
};
export const getSearchDocumentHistory = (token, documentID) => {
return axios
.get(
WEBAPI_URL +
"pinswg_documenthistories?$count=true&$select=_pinswg_documentid_value,pinswg_createddate,pinswg_state,pinswg_fileexists,statecode,pinswg_publisheddate&$filter=_pinswg_documentid_value eq " +
documentID,
azureHeaders(token)
)
.then((res) => res.data)
.catch((error) => {
console.log("thiserror", error);
});
};
export const getSearchDocumentDetails1 = (incidentID) => {
var token = getSASToken();
return axios
.get(
"/api/proxy/pinswg_documents?$count=true&$filter=_pinswg_documentids_value eq " +
incidentID +
" and pinswg_publishtoweb eq true&$select=pinswg_isharedocumentlocations,_pinswg_documentids_value,pinswg_isharelabelcasetype,pinswg_isharelabellpaname,pinswg_publishtoweb,pinswg_uploadstatus,pinswg_isharedocumentclassification,pinswg_isharedocumentreference",
azureHeaders(token)
)
.then((res) => res.data)
.catch((error) => {
console.log("thiserror", error);
});
};
export const getSearchDocumentHistory1 = (documentID) => {
var token = getSASToken();
return axios
.get(
"/api/proxy/pinswg_documenthistories?$count=true&$select=_pinswg_documentid_value,pinswg_createddate,pinswg_state,pinswg_fileexists,statecode,pinswg_publisheddate&$filter=_pinswg_documentid_value eq " +
documentID,
azureHeaders(token)
)
.then((res) => {
return res.data;
})
.catch((error) => {
console.log("thiserror", error);
});
};
export const getBasicDNSSearchDetails = (token, appealType, caseReference) => { export const getBasicDNSSearchDetails = (token, appealType, caseReference) => {
return axios return axios
.get( .get(
@@ -311,64 +370,6 @@ export const getAppealsTypes = (token) => {
}); });
}; };
export const getBasicSearch2 = (searchString) => {
var req = new XMLHttpRequest();
req.open(
"GET",
"https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title&$filter=contains(title, '" +
searchString +
"')&$count=true",
true
);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", 'odata.include-annotations="*"');
req.onreadystatechange = function () {
if (this.readyState === 4) {
req.onreadystatechange = null;
if (this.status === 200) {
var results = JSON.parse(this.response);
var recordCount = results["@odata.count"];
for (var i = 0; i < results.value.length; i++) {
var _accountid_value = results.value[i]["_accountid_value"];
var _accountid_value_formatted =
results.value[i][
"_accountid_value@OData.Community.Display.V1.FormattedValue"
];
var _accountid_value_lookuplogicalname =
results.value[i][
"_accountid_value@Microsoft.Dynamics.CRM.lookuplogicalname"
];
var _customerid_value =
results.value[i]["_customerid_value"];
var _customerid_value_formatted =
results.value[i][
"_customerid_value@OData.Community.Display.V1.FormattedValue"
];
var _customerid_value_lookuplogicalname =
results.value[i][
"_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname"
];
var pinswg_appealcasetype =
results.value[i]["pinswg_appealcasetype"];
var pinswg_appealcasetype_formatted =
results.value[i][
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
];
var statuscode = results.value[i]["statuscode"];
var ticketnumber = results.value[i]["ticketnumber"];
var title = results.value[i]["title"];
}
} else {
console.log(this.statusText);
}
}
};
return req.send();
};
//get list of entitydefinitions //get list of entitydefinitions
//https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/EntityDefinitions?$select=LogicalName //https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/EntityDefinitions?$select=LogicalName
@@ -393,25 +394,24 @@ export const getBasicSearch2 = (searchString) => {
// // Failed // // Failed
// }); // });
export const getAppealTypeDetail = (caseReference, appealcasetype) => { // export const getAppealTypeDetail = (caseReference, appealcasetype) => {
console.log("got to axios", searchString); // console.log("got to axios", searchString);
console.log("api_root: ", BASE_URL); // console.log("api_root: ", BASE_URL);
// example appealcasetype type pinswg_householderappealhases // // example appealcasetype type pinswg_householderappealhases
return axios // return axios
.get( // .get(
"https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/" + // "https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/" +
appealcasetype + // appealcasetype +
"?$filter=pinswg_name eq '" + // "?$filter=pinswg_name eq '" +
caseReference + // caseReference +
"'", // "'",
{ httpsAgent: new https.Agent({ rejectUnauthorized: false }) } // { httpsAgent: new https.Agent({ rejectUnauthorized: false }) }
) // )
.then((res) => res.data) // .then((res) => res.data)
.catch((error) => { // .catch((error) => {
console.log("thi serror", error); // console.log("thi serror", error);
}); // });
}; // };
//https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/pinswg_planningappeals78s?$filter=pinswg_name eq 'CAS-00015-L7J9H1'
export const getLPA = (token) => { export const getLPA = (token) => {
// console.log("api_root: ", BASE_URL); // console.log("api_root: ", BASE_URL);
@@ -472,6 +472,7 @@ export const createCase = (appealTypeId) => {
appealTypeId = parseInt(appealTypeId); appealTypeId = parseInt(appealTypeId);
var data = JSON.stringify({ var data = JSON.stringify({
"title": "insertion test case", "title": "insertion test case",
"caseorigincode": 3,
"customerid_contact@odata.bind": "customerid_contact@odata.bind":
"/contacts(f8b454ed-eded-eb11-aac7-00224800be9c)", "/contacts(f8b454ed-eded-eb11-aac7-00224800be9c)",
"pinswg_appealcasetype": appealTypeId, "pinswg_appealcasetype": appealTypeId,
+43 -10
View File
@@ -1,8 +1,10 @@
import Link from "next/link"; import Link from "next/link";
import jsonpath from "jsonpath"; import jsonpath from "jsonpath";
import _ from "lodash"; import _ from "lodash";
import { useState } from "react";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation"; import useTranslation from "next-translate/useTranslation";
import LoadingOverlay from "react-loading-overlay";
const Breadcrumbs = (props) => { const Breadcrumbs = (props) => {
const { courseContent, slug, currentView } = props; const { courseContent, slug, currentView } = props;
@@ -36,9 +38,19 @@ const Breadcrumbs = (props) => {
} }
} }
const [showSpinnerState, setShowSpinnerState] = useState(false);
let spinnerState = () => {
showSpinnerState == true
? setShowSpinnerState(false)
: setShowSpinnerState(true);
};
return ( return (
<>
<nav <nav
aria-label={"Breadcrumb for " + _.startCase(_.toLower(appealType))} aria-label={
"Breadcrumb for " + _.startCase(_.toLower(appealType))
}
role="navigation" role="navigation"
data-module="track-click" data-module="track-click"
> >
@@ -54,7 +66,9 @@ const Breadcrumbs = (props) => {
<li className="govuk-breadcrumbs__list-item"> <li className="govuk-breadcrumbs__list-item">
<Link <Link
href={ href={
router.pathname.includes("/dns/") ? "/dns" : "/" router.pathname.includes("/dns/")
? "/dns"
: "/"
} }
> >
<a className="govuk-breadcrumbs__link"> <a className="govuk-breadcrumbs__link">
@@ -118,17 +132,22 @@ const Breadcrumbs = (props) => {
<Link <Link
href={ href={
router.locale != "en" router.locale != "en"
? router.locale + "/advancedsearch" ? router.locale +
"/advancedsearch"
: "/advancedsearch" : "/advancedsearch"
} }
> >
<a className="govuk-breadcrumbs__link"> <a className="govuk-breadcrumbs__link">
{t("common:breadcrumb-advanced-search")} {t(
"common:breadcrumb-advanced-search"
)}
</a> </a>
</Link> </Link>
</li> </li>
<li className="govuk-breadcrumbs__list-item"> <li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-advanced-search-results")} {t(
"common:breadcrumb-advanced-search-results"
)}
</li> </li>
</> </>
) : ( ) : (
@@ -282,16 +301,23 @@ const Breadcrumbs = (props) => {
router.locale != "en" router.locale != "en"
? router.locale + ? router.locale +
"/searchresults?q=" + "/searchresults?q=" +
props.props.search.searchString props.props.search
.searchString
: "/searchresults?q=" + : "/searchresults?q=" +
props.props.search.searchString props.props.search
.searchString
} }
> >
<a <a
onClick={() => router.back()} onClick={() => {
spinnerState();
router.back();
}}
className="govuk-breadcrumbs__link" className="govuk-breadcrumbs__link"
> >
{t("common:breadcrumb-search-results")} {t(
"common:breadcrumb-search-results"
)}
</a> </a>
</Link> </Link>
</li> </li>
@@ -419,7 +445,8 @@ const Breadcrumbs = (props) => {
<Link <Link
href={ href={
router.locale != "en" router.locale != "en"
? router.locale + "/dnsapplications" ? router.locale +
"/dnsapplications"
: "/dnsapplications" : "/dnsapplications"
} }
> >
@@ -540,6 +567,12 @@ const Breadcrumbs = (props) => {
</ol> </ol>
</div> </div>
</nav> </nav>
<LoadingOverlay
active={showSpinnerState}
spinner
text={t("common:spinner-searching")}
/>
</>
); );
}; };
export default Breadcrumbs; export default Breadcrumbs;
+8 -1
View File
@@ -31,7 +31,14 @@ const CaseSummary = (props) => {
searchDetailsObj={props.searchDetailsObj} searchDetailsObj={props.searchDetailsObj}
searchString={props.searchString} searchString={props.searchString}
/> />
<Documents /> <Documents
incidentid={props.incidentid}
caseReference={props.caseReference}
searchResultsObj={props.searchResultsObj}
searchDetailsObj={props.searchDetailsObj}
documentDetailsObj={props.documentDetailsObj}
documentHistoryObj={props.documentHistoryObj}
/>
</div> </div>
</div> </div>
</main> </main>
+181 -14
View File
@@ -1,17 +1,49 @@
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation"; import useTranslation from "next-translate/useTranslation";
import jsonpath from "jsonpath";
import { useState, useEffect, useRef } from "react";
import { useDispatch, useSelector, shallowEqual, connect } from "react-redux";
export default function CaseSummary() { import {
getBasicSearch,
getBasicSearchDetails,
getSearchDocumentDetails1,
getSearchDocumentHistory1,
getSASToken,
} from "../../actions";
import {
setSearchResults,
setSearchDetails,
setDocumentDetails,
setDocumentHistory,
getSearchResultsObj,
} from "../../store/searchOutput/action";
const DocumentDetails = (props) => {
let { t } = useTranslation(); let { t } = useTranslation();
const firstRender = useRef(false);
const {
incidentid,
caseReference,
searchResultsObj,
searchDetailsObj,
documentDetailsObj,
documentHistoryObj,
} = props;
const router = useRouter(); const router = useRouter();
const { locale } = router; const { locale } = router;
var documentDetailsArr = documentDetailsObj || [];
const DocumentView = (documentDetailsArr) => {
console.log(documentDetailsArr);
documentDetailsArr = documentDetailsArr.value;
return ( return (
<div>
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<h2>Documents</h2>
<dl className="govuk-summary-list govuk-!-margin-bottom-9 results"> <dl className="govuk-summary-list govuk-!-margin-bottom-9 results">
<div className="govuk-summary-list__row results-headings"> <div className="govuk-summary-list__row results-headings">
<dd className="govuk-summary-list__key govuk-!-font-size-14 govuk-!-padding-left-2"> <dd className="govuk-summary-list__key govuk-!-font-size-14 govuk-!-padding-left-2">
@@ -27,28 +59,77 @@ export default function CaseSummary() {
{t("case:documents-size-label")} {t("case:documents-size-label")}
</dd> </dd>
</div> </div>
<div className="govuk-summary-list__row">
{documentDetailsArr.map((item) => {
let detailsObj = jsonpath.query(
item,
"$..[?(@._pinswg_documentids_value=='" +
incidentid +
"')]"
);
detailsObj = item;
if (typeof detailsObj != "undefined") {
var documentHistoryArr = documentHistoryObj || [];
return documentHistoryArr.map((historyItem, key) => {
let historyObj = jsonpath.query(
documentHistoryObj[key],
"$..value[?(@._pinswg_documentid_value=='" +
detailsObj.pinswg_documentid +
"')]"
);
historyObj = historyObj[0];
return !_.isEmpty(historyObj) ? (
<div
className="govuk-summary-list__row"
key={key}
>
<dd className="govuk-summary-list__value govuk-!-font-size-14 govuk-!-padding-left-2"> <dd className="govuk-summary-list__value govuk-!-font-size-14 govuk-!-padding-left-2">
<Link href="/case"> <Link href="/">
<a> <a>
<span className="results-visually-hidden"> <span className="results-visually-hidden">
{t("case:documents-name-label")}: {t(
"case:documents-name-label"
)}
:
</span> </span>
3272770 Appeal Decision.pdf {_.has(historyObj, [
"_pinswg_documentid_value@OData.Community.Display.V1.FormattedValue",
])
? historyObj[
"_pinswg_documentid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
</a> </a>
</Link> </Link>
</dd> </dd>
<dd className="govuk-summary-list__value govuk-!-font-size-14"> <dd className="govuk-summary-list__value govuk-!-font-size-14">
<span className="results-visually-hidden"> <span className="results-visually-hidden">
{t("case:documents-doc-type-label")}: {t("case:documents-doc-type-label")}
:
</span> </span>
Outcome / Decision {
detailsObj[
"pinswg_isharedocumentlocations@OData.Community.Display.V1.FormattedValue"
]
}
</dd> </dd>
<dd className="govuk-summary-list__value govuk-!-font-size-14"> <dd className="govuk-summary-list__value govuk-!-font-size-14">
<span className="results-visually-hidden"> <span className="results-visually-hidden">
{t("case:documents-date-published-label")}: {t(
"case:documents-date-published-label"
)}
:
</span> </span>
15/06/2021
{_.has(historyObj, [
"pinswg_publisheddate@OData.Community.Display.V1.FormattedValue",
])
? historyObj[
"pinswg_publisheddate@OData.Community.Display.V1.FormattedValue"
]
: ""}
</dd> </dd>
<dd className="govuk-summary-list__value govuk-!-font-size-14"> <dd className="govuk-summary-list__value govuk-!-font-size-14">
<span className="results-visually-hidden"> <span className="results-visually-hidden">
@@ -57,9 +138,95 @@ export default function CaseSummary() {
92 92
</dd> </dd>
</div> </div>
) : (
""
);
});
}
})}
</dl> </dl>
);
};
useEffect(() => {
const docDetailsObj = async () => {
let docObj = await getSearchDocumentDetails1(incidentid)
.then((data) => {
props.setDocumentDetails(data);
return data;
})
.then((data) => {
let historyObj = getDocumentHistory(data.value).then(
(result) => {
props.setDocumentHistory(result);
return result;
}
);
return data;
});
return docObj;
};
const getDocumentHistory = async (searchDocumentDetailsObj) => {
let historyArr = [];
searchDocumentDetailsObj = searchDocumentDetailsObj;
const detailsObj = searchDocumentDetailsObj.map(
(historyDetail, index) => {
if (historyDetail.pinswg_publishtoweb != true) {
console.log(historyDetail.pinswg_documentid);
} else {
historyArr.push(
getSearchDocumentHistory1(
historyDetail.pinswg_documentid
)
);
}
}
);
return Promise.all(historyArr);
};
const searchDocumentResultsObj = docDetailsObj();
}, []);
return (
<div>
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<h2>Documents</h2>
{_.isEmpty(documentHistoryObj) ? (
<div className="govuk-grid-row">
<div className="govuk-grid-column-two-thirds">
<h3>There are no documents for this appeal</h3>
</div>
</div>
) : (
DocumentView(documentDetailsArr)
)}
</div> </div>
</div> </div>
</div> </div>
); );
} };
const mapStateToProps = (state) => {
return {
...state,
};
};
const mapDispatchToProps = (dispatch) => {
return {
setDocumentDetails: (detailsObj) => {
dispatch(setDocumentDetails(detailsObj));
},
setDocumentHistory: (historyObj) => {
dispatch(setDocumentHistory(historyObj));
},
};
};
export default connect(mapStateToProps, mapDispatchToProps)(DocumentDetails);
+133 -82
View File
@@ -1,9 +1,11 @@
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { useState } from "react";
import useTranslation from "next-translate/useTranslation"; import useTranslation from "next-translate/useTranslation";
import jsonpath from "jsonpath"; import jsonpath from "jsonpath";
import _ from "lodash"; import _ from "lodash";
import transLookup from "../../data/lookuptranslations.json"; import transLookup from "../../data/lookuptranslations.json";
import LoadingOverlay from "react-loading-overlay";
const CaseSummary = (props) => { const CaseSummary = (props) => {
let { t } = useTranslation(); let { t } = useTranslation();
@@ -53,7 +55,11 @@ const CaseSummary = (props) => {
)); ));
detailsObj = detailsObj[0]; detailsObj = detailsObj[0];
return (
let showDetails = typeof detailsObj != "undefined" ? true : false;
let showDetailsBlock =
showDetails == true ? (
<div> <div>
<div className="govuk-grid-row"> <div className="govuk-grid-row">
<div className="govuk-grid-column-full"> <div className="govuk-grid-column-full">
@@ -97,11 +103,17 @@ const CaseSummary = (props) => {
{t("case:summary-site-address-label")} {t("case:summary-site-address-label")}
</dt> </dt>
<dd className="govuk-summary-list__value"> <dd className="govuk-summary-list__value">
{_.has(detailsObj, "pinswg_siteaddressline1") {_.has(
detailsObj,
"pinswg_siteaddressline1"
)
? detailsObj.pinswg_siteaddressline1 ? detailsObj.pinswg_siteaddressline1
: ""} : ""}
<br /> <br />
{_.has(detailsObj, "pinswg_siteaddressline2") {_.has(
detailsObj,
"pinswg_siteaddressline2"
)
? detailsObj.pinswg_siteaddressline2 ? detailsObj.pinswg_siteaddressline2
: ""} : ""}
<br /> <br />
@@ -109,11 +121,17 @@ const CaseSummary = (props) => {
? detailsObj.pinswg_siteaddresstown ? detailsObj.pinswg_siteaddresstown
: ""} : ""}
<br /> <br />
{_.has(detailsObj, "pinswg_siteaddresscounty") {_.has(
detailsObj,
"pinswg_siteaddresscounty"
)
? detailsObj.pinswg_siteaddresscounty ? detailsObj.pinswg_siteaddresscounty
: ""} : ""}
<br /> <br />
{_.has(detailsObj, "pinswg_siteaddresspostcode") {_.has(
detailsObj,
"pinswg_siteaddresspostcode"
)
? detailsObj.pinswg_siteaddresspostcode ? detailsObj.pinswg_siteaddresspostcode
: ""} : ""}
</dd> </dd>
@@ -138,7 +156,10 @@ const CaseSummary = (props) => {
)} )}
<a <a
onClick={() => router.back()} onClick={() => {
spinnerState();
router.back();
}}
className="govuk-button govuk-button--secondary" className="govuk-button govuk-button--secondary"
> >
{t("case:summary-back-button-label")} {t("case:summary-back-button-label")}
@@ -158,7 +179,9 @@ const CaseSummary = (props) => {
<dl className="govuk-summary-list govuk-!-font-size-14 govuk-!-margin-bottom-9"> <dl className="govuk-summary-list govuk-!-font-size-14 govuk-!-margin-bottom-9">
<div className="govuk-summary-list__row"> <div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key"> <dt className="govuk-summary-list__key">
{t("case:summary-case-type-label")} {t(
"case:summary-case-type-label"
)}
</dt> </dt>
<dd className="govuk-summary-list__value"> <dd className="govuk-summary-list__value">
{router.locale == "cy" {router.locale == "cy"
@@ -187,31 +210,16 @@ const CaseSummary = (props) => {
? jsonpath.query( ? jsonpath.query(
transLookup, transLookup,
'$..[?(@.value=="' + '$..[?(@.value=="' +
detailsObj[ casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue" "_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] + ] +
'")].value_cy' '")].value_cy'
) )
: detailsObj[ : casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue" "_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""} ] || ""}
</dd> </dd>
</div> </div>
{/* <div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t(
"case:summary-case-summary-label"
)}
</dt>
<dd className="govuk-summary-list__value">
{_.has(
detailsObj,
"pinswg_casedescription"
)
? detailsObj.pinswg_casedescription
: ""}
</dd>
</div> */}
<div className="govuk-summary-list__row"> <div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key"> <dt className="govuk-summary-list__key">
{t( {t(
@@ -223,16 +231,20 @@ const CaseSummary = (props) => {
{/* {casesObj.caseDetails.caseOfficer || {/* {casesObj.caseDetails.caseOfficer ||
""} */} ""} */}
{_.has( {_.has(
detailsObj, casesObj,
"pinswg_casedescription" "_ownerid_value"
) )
? detailsObj.pinswg_casedescription ? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""} : ""}
</dd> </dd>
</div> </div>
<div className="govuk-summary-list__row"> <div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key"> <dt className="govuk-summary-list__key">
{t("case:summary-procedure-label")} {t(
"case:summary-procedure-label"
)}
</dt> </dt>
<dd className="govuk-summary-list__value"> <dd className="govuk-summary-list__value">
{router.locale == "cy" {router.locale == "cy"
@@ -273,7 +285,9 @@ const CaseSummary = (props) => {
</div> </div>
<div className="govuk-summary-list__row"> <div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key"> <dt className="govuk-summary-list__key">
{t("case:summary-decision-label")} {t(
"case:summary-decision-label"
)}
</dt> </dt>
<dd className="govuk-summary-list__value"> <dd className="govuk-summary-list__value">
{router.locale == "cy" {router.locale == "cy"
@@ -343,16 +357,18 @@ const CaseSummary = (props) => {
<dl className="govuk-summary-list govuk-!-font-size-14 govuk-!-margin-bottom-9"> <dl className="govuk-summary-list govuk-!-font-size-14 govuk-!-margin-bottom-9">
<div className="govuk-summary-list__row"> <div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key"> <dt className="govuk-summary-list__key">
{t("case:summary-start-date-label")} {t(
"case:summary-start-date-label"
)}
</dt> </dt>
<dd className="govuk-summary-list__value"> <dd className="govuk-summary-list__value">
{_.has( {_.has(
detailsObj, detailsObj,
"pinswg_startdate@OData.Community.Display.V1.FormattedValue" "pinswg_startdate"
)
? formatDates(
detailsObj.pinswg_startdate
) )
? detailsObj[
"pinswg_startdate@OData.Community.Display.V1.FormattedValue"
]
: t( : t(
"case:summary-no-date-entered-label" "case:summary-no-date-entered-label"
)} )}
@@ -368,11 +384,11 @@ const CaseSummary = (props) => {
<dd className="govuk-summary-list__value"> <dd className="govuk-summary-list__value">
{_.has( {_.has(
detailsObj, detailsObj,
"pinswg_questionnaireduedate@OData.Community.Display.V1.FormattedValue" "pinswg_questionnaireduedate"
)
? formatDates(
detailsObj.pinswg_questionnaireduedate
) )
? detailsObj[
"pinswg_questionnaireduedate@OData.Community.Display.V1.FormattedValue"
]
: t( : t(
"case:summary-no-date-entered-label" "case:summary-no-date-entered-label"
)} )}
@@ -388,11 +404,11 @@ const CaseSummary = (props) => {
<dd className="govuk-summary-list__value"> <dd className="govuk-summary-list__value">
{_.has( {_.has(
detailsObj, detailsObj,
"pinswg_statementduedate@OData.Community.Display.V1.FormattedValue" "pinswg_statementduedate"
)
? formatDates(
detailsObj.pinswg_statementduedate
) )
? detailsObj[
"pinswg_statementduedate@OData.Community.Display.V1.FormattedValue"
]
: t( : t(
"case:summary-no-date-entered-label" "case:summary-no-date-entered-label"
)} )}
@@ -408,11 +424,11 @@ const CaseSummary = (props) => {
<dd className="govuk-summary-list__value"> <dd className="govuk-summary-list__value">
{_.has( {_.has(
detailsObj, detailsObj,
"pinswg_otherpartiesstatement@OData.Community.Display.V1.FormattedValue" "pinswg_otherpartiesstatement"
)
? formatDates(
detailsObj.pinswg_otherpartiesstatement
) )
? detailsObj[
"pinswg_otherpartiesstatement@OData.Community.Display.V1.FormattedValue"
]
: t( : t(
"case:summary-no-date-entered-label" "case:summary-no-date-entered-label"
)} )}
@@ -428,49 +444,30 @@ const CaseSummary = (props) => {
<dd className="govuk-summary-list__value"> <dd className="govuk-summary-list__value">
{_.has( {_.has(
detailsObj, detailsObj,
"pinswg_finalcommentsduedate@OData.Community.Display.V1.FormattedValue" "pinswg_finalcommentsduedate"
)
? formatDates(
detailsObj.pinswg_finalcommentsduedate
) )
? detailsObj[
"pinswg_finalcommentsduedate@OData.Community.Display.V1.FormattedValue"
]
: t( : t(
"case:summary-no-date-entered-label" "case:summary-no-date-entered-label"
)} )}
</dd> </dd>
</div> </div>
<div className="govuk-summary-list__row"> <div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key"> <dt className="govuk-summary-list__key">
{t( {t(
"case:summary-inquiry-evidence-date-label" "case:summary-event-date-label"
)} )}
</dt> </dt>
<dd className="govuk-summary-list__value"> <dd className="govuk-summary-list__value">
{_.has( {_.has(
detailsObj, detailsObj,
"pinswg_finalcommentsduedate@OData.Community.Display.V1.FormattedValue" "pinswg_dateeventrequested"
) )
? detailsObj[ ? formatDates(
"pinswg_finalcommentsduedate@OData.Community.Display.V1.FormattedValue" detailsObj.pinswg_dateeventrequested
]
: t(
"case:summary-no-date-entered-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-event-date-label")}
</dt>
<dd className="govuk-summary-list__value">
{_.has(
detailsObj,
"pinswg_dateeventrequested@OData.Community.Display.V1.FormattedValue"
) )
? detailsObj[
"pinswg_dateeventrequested@OData.Community.Display.V1.FormattedValue"
]
: t( : t(
"case:summary-no-date-entered-label" "case:summary-no-date-entered-label"
)} )}
@@ -486,11 +483,11 @@ const CaseSummary = (props) => {
<dd className="govuk-summary-list__value"> <dd className="govuk-summary-list__value">
{_.has( {_.has(
detailsObj, detailsObj,
"pinswg_dateoflpadecision@OData.Community.Display.V1.FormattedValue" "pinswg_dateoflpadecision"
)
? formatDates(
detailsObj.pinswg_dateoflpadecision
) )
? detailsObj[
"pinswg_dateoflpadecision@OData.Community.Display.V1.FormattedValue"
]
: t( : t(
"case:summary-no-date-entered-label" "case:summary-no-date-entered-label"
)} )}
@@ -502,19 +499,73 @@ const CaseSummary = (props) => {
</div> </div>
</div> </div>
</div> </div>
</div>
{/* <div className="govuk-grid-row"> ) : (
<>
<div>
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<h1>Not details currently held</h1>
</div>
</div>
</div>
<div className="govuk-grid-row">
<div className="govuk-grid-column-full"> <div className="govuk-grid-column-full">
<div className="govuk-button-group"> <div className="govuk-button-group">
<Link href="/advancedsearch"> {noRepresentationLink.includes(router.pathname) ==
true ? (
""
) : (
<Link href="/representation">
<a className="govuk-button"> <a className="govuk-button">
{t("case:summary-documents-button-label")} {t(
"case:summary-make-representation-label"
)}
</a> </a>
</Link> </Link>
)}
<a
onClick={() => {
spinnerState();
router.back();
}}
className="govuk-button govuk-button--secondary"
>
{t("case:summary-back-button-label")}
</a>
</div> </div>
</div> </div>
</div> */}
</div> </div>
</>
);
const [showSpinnerState, setShowSpinnerState] = useState(false);
let spinnerState = () => {
showSpinnerState == true
? setShowSpinnerState(false)
: setShowSpinnerState(true);
};
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;
}
return (
<>
{showDetailsBlock}
<LoadingOverlay
active={showSpinnerState}
spinner
text={t("common:spinner-searching")}
/>{" "}
</>
); );
}; };
+4 -3
View File
@@ -62,6 +62,7 @@ const SearchResults = (props) => {
"currentReference": item.title, "currentReference": item.title,
"currentType": "currentType":
"searchResultsObj", "searchResultsObj",
"incidentid": item.incidentid,
}); });
}} }}
> >
@@ -119,19 +120,19 @@ const SearchResults = (props) => {
{t("search:searchresults-authority-label")}: {t("search:searchresults-authority-label")}:
</span> </span>
{_.has(item, [ {_.has(item, [
"_customerid_value@OData.Community.Display.V1.FormattedValue", "_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue",
]) ])
? router.locale == "cy" ? router.locale == "cy"
? jsonpath.query( ? jsonpath.query(
transLookup, transLookup,
'$..[?(@.value=="' + '$..[?(@.value=="' +
item[ item[
"_customerid_value@OData.Community.Display.V1.FormattedValue" "_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] + ] +
'")].value_cy' '")].value_cy'
) )
: item[ : item[
"_customerid_value@OData.Community.Display.V1.FormattedValue" "_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || "N/A" ] || "N/A"
: ""} : ""}
</dd> </dd>
+62
View File
@@ -291,6 +291,11 @@
"value_cy": "Cyngor Bwrdeistref Sirol Rhondda Cynon Taf", "value_cy": "Cyngor Bwrdeistref Sirol Rhondda Cynon Taf",
"pinswg_lpa": 0 "pinswg_lpa": 0
}, },
{
"value": "Rhondda Cynon Taf CBC",
"value_cy": "Cyngor Bwrdeistref Sirol Rhondda Cynon Taf",
"pinswg_lpa": 0
},
{ {
"value": "Swansea Council", "value": "Swansea Council",
"value_cy": "Cyngor a Dinas Abertawe", "value_cy": "Cyngor a Dinas Abertawe",
@@ -343,5 +348,62 @@
"value_cy": "Ymholiad", "value_cy": "Ymholiad",
"pinswg_procedure": 0 "pinswg_procedure": 0
} }
],
"pinswg_isharedocumentlocations": [
{
"value": "Main Party - Pre-Submission Docs",
"value_cy": "Prif Blaid - Dociau Cyn Cyflwyno",
"pinswg_isharedocumentlocations": 0
},
{
"value": "Main Party - Submission Document",
"value_cy": "Prif Blaid - Dogfen Gyflwyno",
"pinswg_isharedocumentlocations": 0
},
{
"value": "Main Party - Questionnaire",
"value_cy": "Prif Blaid - Holiadur",
"pinswg_isharedocumentlocations": 0
},
{
"value": "Main Party - Statements",
"value_cy": "Prif Blaid - Datganiadau",
"pinswg_isharedocumentlocations": 0
},
{
"value": "Main Party - Comments",
"value_cy": "Prif Blaid - Sylwadau",
"pinswg_isharedocumentlocations": 0
},
{
"value": "Main Party - Written Statements of Evidence",
"value_cy": "Prif Blaid - Datganiadau Tystiolaeth Ysgrifenedig",
"pinswg_isharedocumentlocations": 0
},
{
"value": "Main Party - Environmental Statements",
"value_cy": "Prif Blaid - Datganiadau Amgylcheddol",
"pinswg_isharedocumentlocations": 0
},
{
"value": "Interested Party Representations",
"value_cy": "Cynrychioliadau Partïon â Diddordeb",
"pinswg_isharedocumentlocations": 0
},
{
"value": "Correspondence",
"value_cy": "Gohebiaeth",
"pinswg_isharedocumentlocations": 0
},
{
"value": "Inspector Notes",
"value_cy": "Nodiadau Arolygydd",
"pinswg_isharedocumentlocations": 0
},
{
"value": "Final Decision/Report",
"value_cy": "Penderfyniad / Adroddiad Terfyno",
"pinswg_isharedocumentlocations": 0
}
] ]
} }
+62 -2
View File
@@ -20,11 +20,15 @@ import { setSearch, getSearchObj } from "../store/search/action";
import { import {
setSearchResults, setSearchResults,
setSearchDetails, setSearchDetails,
setDocumentDetails,
setDocumentHistory,
getSearchResultsObj, getSearchResultsObj,
} from "../store/searchOutput/action"; } from "../store/searchOutput/action";
import { import {
getAdvancedSearch, getAdvancedSearch,
getBasicSearchDetails, getBasicSearchDetails,
getSearchDocumentDetails,
getSearchDocumentHistory,
getSASToken, getSASToken,
} from "../actions"; } from "../actions";
@@ -74,10 +78,21 @@ export const getServerSideProps = wrapper.getServerSideProps(
token, token,
searchResultsObj searchResultsObj
); );
// console.log(searchDetailsObj); const searchDocumentResultsObj = await getDocumentDetails(
token,
searchResultsObj
);
const searchDocumentHistoryObj = await getDocumentHistory(
token,
searchDocumentResultsObj
);
//console.log(searchDocumentHistoryObj);
store.dispatch(setSearchResults(searchResultsObj)); store.dispatch(setSearchResults(searchResultsObj));
store.dispatch(setSearchDetails(searchDetailsObj)); store.dispatch(setSearchDetails(searchDetailsObj));
//store.dispatch(setSearch(query.q)); store.dispatch(setDocumentDetails(searchDocumentResultsObj));
store.dispatch(setDocumentHistory(searchDocumentHistoryObj));
} }
); );
@@ -121,6 +136,51 @@ const getSearchDetails = (token, searchResultsObj) => {
return Promise.all(detailsArr); return Promise.all(detailsArr);
}; };
const getDocumentDetails = (token, searchResultsObj) => {
//console.log(searchResultsObj);
let detailsArr = [];
//console.log("search results", searchResultsObj);
searchResultsObj = searchResultsObj.value;
const detailsObj = searchResultsObj.map((searchDetail, index) => {
if (searchDetail.pinswg_appealcasetype == null) {
console.log(searchDetail.incidentid);
} else {
detailsArr.push(
getSearchDocumentDetails(token, searchDetail.incidentid)
);
}
});
//console.log(detailsArr);
return Promise.all(detailsArr);
};
const getDocumentHistory = (token, searchDocumentDetailsObj) => {
//console.log(searchResultsObj);
let historyArr = [];
//console.log("search results", searchDocumentDetailsObj);
searchDocumentDetailsObj = searchDocumentDetailsObj[0].value;
//console.log(searchDocumentDetailsObj);
const detailsObj = searchDocumentDetailsObj.map((historyDetail, index) => {
//console.log(historyDetail);
if (historyDetail.pinswg_publishtoweb != true) {
console.log(historyDetail.pinswg_documentid);
} else {
// console.log(
// "history detail documentid:",
// historyDetail.pinswg_documentid
// );
historyArr.push(
getSearchDocumentHistory(token, historyDetail.pinswg_documentid)
);
}
});
console.log(historyArr);
return Promise.all(historyArr);
};
const mapStateToProps = (state) => { const mapStateToProps = (state) => {
return { return {
currentView: state.currentView, currentView: state.currentView,
+7
View File
@@ -48,6 +48,12 @@ const Home = (props) => {
searchDetailsObj={ searchDetailsObj={
props.searchResultsObj.searchDetailsObj props.searchResultsObj.searchDetailsObj
} }
documentDetailsObj={
props.searchResultsObj.documentDetailsObj
}
documentHistoryObj={
props.searchResultsObj.documentHistoryObj
}
myRepresentations={ myRepresentations={
props.myRepresentations.myRepresentations props.myRepresentations.myRepresentations
} }
@@ -61,6 +67,7 @@ const Home = (props) => {
currentType={ currentType={
props.currentView.caseReference.currentType props.currentView.caseReference.currentType
} }
incidentid={props.currentView.caseReference.incidentid}
/> />
</div> </div>
<Footer footerLinks={footerLinks} /> <Footer footerLinks={footerLinks} />
+69 -3
View File
@@ -20,9 +20,17 @@ import { setSearch, getSearchObj } from "../store/search/action";
import { import {
setSearchResults, setSearchResults,
setSearchDetails, setSearchDetails,
setDocumentDetails,
setDocumentHistory,
getSearchResultsObj, getSearchResultsObj,
} from "../store/searchOutput/action"; } from "../store/searchOutput/action";
import { getBasicSearch, getBasicSearchDetails, getSASToken } from "../actions"; import {
getBasicSearch,
getBasicSearchDetails,
getSearchDocumentDetails,
getSearchDocumentHistory,
getSASToken,
} from "../actions";
const Home = (props) => { const Home = (props) => {
const { footerLinks, pages } = props; const { footerLinks, pages } = props;
@@ -71,9 +79,22 @@ export const getServerSideProps = wrapper.getServerSideProps(
token, token,
searchResultsObj searchResultsObj
); );
//console.log(searchDetailsObj);
// const searchDocumentResultsObj = await getDocumentDetails(
// token,
// searchResultsObj
// );
// const searchDocumentHistoryObj = await getDocumentHistory(
// token,
// searchDocumentResultsObj
// );
// console.log(searchDocumentHistoryObj);
store.dispatch(setSearchResults(searchResultsObj)); store.dispatch(setSearchResults(searchResultsObj));
store.dispatch(setSearchDetails(searchDetailsObj)); store.dispatch(setSearchDetails(searchDetailsObj));
//store.dispatch(setDocumentDetails(searchDocumentResultsObj));
//store.dispatch(setDocumentHistory(searchDocumentHistoryObj));
store.dispatch(setSearch(query.q)); store.dispatch(setSearch(query.q));
} }
); );
@@ -91,7 +112,7 @@ const getSearchDetails = (token, searchResultsObj) => {
//console.log(searchResultsObj); //console.log(searchResultsObj);
let detailsArr = []; let detailsArr = [];
console.log("search results", searchResultsObj); //console.log("search results", searchResultsObj);
searchResultsObj = searchResultsObj.value; searchResultsObj = searchResultsObj.value;
const detailsObj = searchResultsObj.map((searchDetail, index) => { const detailsObj = searchResultsObj.map((searchDetail, index) => {
if (searchDetail.pinswg_appealcasetype == null) { if (searchDetail.pinswg_appealcasetype == null) {
@@ -118,6 +139,51 @@ const getSearchDetails = (token, searchResultsObj) => {
return Promise.all(detailsArr); return Promise.all(detailsArr);
}; };
const getDocumentDetails = (token, searchResultsObj) => {
//console.log(searchResultsObj);
let detailsArr = [];
//console.log("search results", searchResultsObj);
searchResultsObj = searchResultsObj.value;
const detailsObj = searchResultsObj.map((searchDetail, index) => {
if (searchDetail.pinswg_appealcasetype == null) {
console.log(searchDetail.incidentid);
} else {
detailsArr.push(
getSearchDocumentDetails(token, searchDetail.incidentid)
);
}
});
//console.log(detailsArr);
return Promise.all(detailsArr);
};
const getDocumentHistory = (token, searchDocumentDetailsObj) => {
//console.log(searchResultsObj);
let historyArr = [];
//console.log("search results", searchDocumentDetailsObj);
searchDocumentDetailsObj = searchDocumentDetailsObj[0].value;
//console.log(searchDocumentDetailsObj);
const detailsObj = searchDocumentDetailsObj.map((historyDetail, index) => {
//console.log(historyDetail);
if (historyDetail.pinswg_publishtoweb != true) {
console.log(historyDetail.pinswg_documentid);
} else {
// console.log(
// "history detail documentid:",
// historyDetail.pinswg_documentid
// );
historyArr.push(
getSearchDocumentHistory(token, historyDetail.pinswg_documentid)
);
}
});
console.log(historyArr);
return Promise.all(historyArr);
};
const mapStateToProps = (state) => { const mapStateToProps = (state) => {
return { return {
currentView: state.currentView, currentView: state.currentView,
+15
View File
@@ -3,6 +3,8 @@ export const searchResultsActionTypes = {
SETSEARCHRESULTS: "SETSEARCHRESULTS", SETSEARCHRESULTS: "SETSEARCHRESULTS",
UPDATESEARCHRESULTS: "UPDATESEARCHRESULTS", UPDATESEARCHRESULTS: "UPDATESEARCHRESULTS",
SETSEARCHDETAILS: "SETSEARCHDETAILS", SETSEARCHDETAILS: "SETSEARCHDETAILS",
SETDOCUMENTDETAILS: "SETDOCUMENTDETAILS",
SETDOCUMENTHISTORY: "SETDOCUMENTHISTORY",
}; };
export const getSearchResultshObj = () => (dispatch) => { export const getSearchResultshObj = () => (dispatch) => {
@@ -24,3 +26,16 @@ export const setSearchDetails = (searchDetails) => (dispatch) => {
searchDetailsObj: searchDetails, searchDetailsObj: searchDetails,
}); });
}; };
export const setDocumentDetails = (documentDetails) => (dispatch) => {
return dispatch({
type: searchResultsActionTypes.SETDOCUMENTDETAILS,
documentDetailsObj: documentDetails,
});
};
export const setDocumentHistory = (documentHistory) => (dispatch) => {
return dispatch({
type: searchResultsActionTypes.SETDOCUMENTHISTORY,
documentHistoryObj: documentHistory,
});
};
+12
View File
@@ -3,6 +3,8 @@ import { searchResultsActionTypes } from "./action";
const searchResultsInitialState = { const searchResultsInitialState = {
searchResultsObj: {}, searchResultsObj: {},
searchDetailsObj: {}, searchDetailsObj: {},
documentDetailsObj: {},
documentHistoryObj: {},
}; };
export default function reducer(state = searchResultsInitialState, action) { export default function reducer(state = searchResultsInitialState, action) {
@@ -17,6 +19,16 @@ export default function reducer(state = searchResultsInitialState, action) {
...state, ...state,
searchDetailsObj: action.searchDetailsObj, searchDetailsObj: action.searchDetailsObj,
}; };
case searchResultsActionTypes.SETDOCUMENTDETAILS:
return {
...state,
documentDetailsObj: action.documentDetailsObj,
};
case searchResultsActionTypes.SETDOCUMENTHISTORY:
return {
...state,
documentHistoryObj: action.documentHistoryObj,
};
default: default:
return state; return state;
} }