diff --git a/components/breadcrumbs.js b/components/breadcrumbs.js
index 3c9d11b6..4dca5cf2 100644
--- a/components/breadcrumbs.js
+++ b/components/breadcrumbs.js
@@ -420,6 +420,19 @@ const Breadcrumbs = (props) => {
""
)}
+ {router.pathname == "/case/[ticketnumber]" ? (
+ <>
+
+ {t("common:breadcrumb-case-reference")}:{" "}
+ {
+ props.props.searchResultsObj
+ .searchResultsObj.value[0].title
+ }
+
+ >
+ ) : (
+ ""
+ )}
{router.pathname == "/myportal/dnsapplications" ? (
<>
{" "}
diff --git a/components/case.js b/components/case.js
index 9a0d97b3..8bfd8f04 100644
--- a/components/case.js
+++ b/components/case.js
@@ -32,6 +32,7 @@ const Case = (props) => {
currentType={props.currentType}
appealTypeID={props.appealTypeID}
searchResultsObj={props.searchResultsObj}
+ directSearchResultsObj={props.directSearchResultsObj}
searchDetailsObj={props.searchDetailsObj}
searchString={props.searchString}
incidentid={props.incidentid}
diff --git a/components/case/summary.js b/components/case/summary.js
index ff8a9d0f..17f4e73c 100644
--- a/components/case/summary.js
+++ b/components/case/summary.js
@@ -69,6 +69,7 @@ const CaseSummary = (props) => {
awaitingSubmission,
searchResultsObj,
searchDetailsObj,
+ directSearchResultsObj,
currentType,
setCurrentLinkedCases,
linkedCasesReference,
@@ -79,9 +80,9 @@ const CaseSummary = (props) => {
currentView,
} = props;
- const showLoginCheck = currentView.showLogin;
+ const showLoginCheck =
+ currentType == "directResultsObj" ? "true" : currentView.showLogin;
const { data: session, status } = useSession();
- //console.log("session status:", status, session);
const cookies = parseCookies();
@@ -182,6 +183,8 @@ const CaseSummary = (props) => {
'$..[?(@.pinswg_title=="' + caseReference + '")]',
setCaseQueryObj
))
+ : currentType == "directResultsObj"
+ ? (casesObj = directSearchResultsObj.value)
: (casesObj = jsonpath(
'$..[?(@.reference=="' + caseReference + '")]',
setCaseQueryObj
@@ -196,6 +199,8 @@ const CaseSummary = (props) => {
'$..[?(@.pinswg_name=="' + caseReference + '")]',
searchDetailsObj
))
+ : currentType == "directResultsObj"
+ ? (detailsObj = searchDetailsObj[0].value)
: (detailsObj = jsonpath(
'$..[?(@.pinswg_name=="' + caseReference + '")]',
setCaseDetailsObj
@@ -226,6 +231,10 @@ const CaseSummary = (props) => {
{t("case:summary-reference-label")}:{" "}
{currentType == "searchResultsObj"
? detailsObj.pinswg_name
+ : currentType == "directResultsObj"
+ ? casesObj.title
+ : currentType == "watchedCases"
+ ? casesObj.pinswg_title
: casesObj.reference}
@@ -367,12 +376,12 @@ const CaseSummary = (props) => {
{router.locale == "cy"
? jsonpath(
- transLookup,
'$..[?(@.value=="' +
detailsObj[
"pinswg_casestage@OData.Community.Display.V1.FormattedValue"
] +
- '")].value_cy'
+ '")].value_cy',
+ transLookup
)
: detailsObj[
"pinswg_casestage@OData.Community.Display.V1.FormattedValue"
@@ -531,14 +540,32 @@ const CaseSummary = (props) => {
.currentReference +
"\n\nYou will now be prompted to sign in"
) &&
- signIn("email", {
- callbackUrl:
- "/myportal/searchresults?q=" +
- props
- .currentView
- .caseReference
- .currentReference,
- });
+ // signIn("email", {
+ // callbackUrl:
+ // "/myportal/case/" +
+ // props
+ // .currentView
+ // .caseReference
+ // .ticketnumber,
+ // });
+
+ setCookie(
+ null,
+ "pedwWatchCase",
+ currentType ==
+ "searchResultsObj"
+ ? detailsObj.pinswg_name
+ : currentType ==
+ "directResultsObj"
+ ? casesObj.title
+ : casesObj.reference,
+ {
+ path: "/",
+ expires:
+ expDate,
+ }
+ ),
+ signIn();
}}
title={t(
"case:watch-this-case-link"
@@ -921,13 +948,10 @@ const CaseSummary = (props) => {
const linkedCases = linkCaseObj();
}, [incidentid, setCurrentLinkedCases]);
- // const [showSpinnerState, setShowSpinnerState] = useState(false);
+ let now = new Date();
+ let expDate = new Date(now);
- // let spinnerState = () => {
- // showSpinnerState == true
- // ? setShowSpinnerState(false)
- // : setShowSpinnerState(true);
- // };
+ expDate.setDate(now.getDate() + 365);
function formatDates(dateObj, showTime) {
var dateObj = new Date(dateObj);
@@ -998,6 +1022,15 @@ const CaseSummary = (props) => {
return date > start && date > end ? true : false;
}
+ if (status == "authenticated" && cookies.pedwWatchCase != null) {
+ selectWatchedCase(
+ props.accountDetails.accountDetails.contactid,
+ incidentid,
+ appealTypeID
+ );
+ destroyCookie({}, "pedwWatchCase", { path: "/" });
+ }
+
return <>{showDetailsBlock}>;
};
diff --git a/pages/case/[ticketnumber].js b/pages/case/[ticketnumber].js
new file mode 100644
index 00000000..f3a3b1a5
--- /dev/null
+++ b/pages/case/[ticketnumber].js
@@ -0,0 +1,225 @@
+import useTranslation from "next-translate/useTranslation";
+import Head from "next/head";
+import { useRouter } from "next/router";
+import { connect } from "react-redux";
+import {
+ getBasicSearch,
+ getIP,
+ getPortalLogin,
+ getPersonalAccount,
+} from "../../actions";
+import CookieBanner from "../../components/cookieBanner";
+import Footer from "../../components/footer";
+import Header from "../../components/header";
+import { getSearchDetails } from "../../components/utils";
+import { setCurrentReference } from "../../store/currentView/action";
+import { setSearch } from "../../store/search/action";
+import {
+ setSearchDetails,
+ setSearchResults,
+} from "../../store/searchOutput/action";
+import { wrapper } from "../../store/store";
+import Case from "../../components/case";
+import Breadcrumbs from "../../components/breadcrumbs";
+import { getSession, useSession } from "next-auth/react";
+import {
+ setAccountDetails,
+ setContainerID,
+ setLoggedInUserId,
+} from "../../store/accountDetails/action";
+
+const CaseHome = (props) => {
+ const { footerLinks, pages } = props;
+ let { t, lang } = useTranslation();
+
+ const router = useRouter();
+ const { locale } = router;
+ const { ticketnumber } = router.query;
+
+ return (
+
+
+
+ Reference:{" "}
+ {props.currentView.caseReference.currentReference}{" "}
+
+
+
+
+ );
+};
+
+export const getServerSideProps = wrapper.getServerSideProps(
+ (store) => async (ctx) => {
+ const { query, req, res } = ctx;
+ getIP(req);
+ const { cookies } = req;
+
+ console.log(cookies);
+ console.log("the query :", query.ticketnumber);
+
+ let thisSession = await getSession(ctx);
+ let loggedInUser = {};
+
+ if (thisSession) {
+ console.log(" has sesssion.......");
+ [loggedInUser] = await Promise.all([
+ await getPortalLogin(thisSession.user.email),
+ ]);
+
+ loggedInUser = loggedInUser.value[0].contactid;
+
+ const accountDetails = await getPersonalAccount(loggedInUser);
+ store.dispatch(setAccountDetails(accountDetails));
+ } else {
+ console.log("not has sesssion.......");
+ }
+
+ let developmentQuery =
+ query.ticketnumber.indexOf("CAS-") == 0
+ ? query.ticketnumber
+ : query.ticketnumber.split("-").join(" ");
+
+ const searchResultsObj = await getBasicSearch(developmentQuery);
+ const searchDetailsObj = await getSearchDetails(searchResultsObj);
+
+ console.log(
+ "\n======================================\n",
+ searchResultsObj,
+ "\n======================================\n"
+ );
+ console.log(
+ "\n======================================\n",
+ searchDetailsObj[0],
+ "\n======================================\n"
+ );
+
+ store.dispatch(setSearch(developmentQuery));
+
+ console.log(
+ searchResultsObj["@odata.count"] > 1 ||
+ searchResultsObj["@odata.count"] < 1
+ );
+
+ if (searchResultsObj["@odata.count"] < 1) {
+ return {
+ redirect: {
+ destination: "/404",
+ permanent: false,
+ },
+ };
+ } else {
+ if (searchResultsObj["@odata.count"] > 1) {
+ return {
+ redirect: {
+ //destination: "/dns-not-found",
+ destination: "/404",
+ permanent: false,
+ },
+ };
+ } else {
+ store.dispatch(
+ setCurrentReference({
+ "ticketnumber": searchResultsObj.value[0].ticketnumber,
+ "currentReference": searchResultsObj.value[0].title,
+ "currentType": "searchResultsObj",
+ "incidentid": searchResultsObj.value[0].incidentid,
+ "appealType":
+ searchResultsObj.value[0].pinswg_appealcasetype,
+ })
+ );
+ }
+ }
+ // console.log(searchResultsObj);
+ return {
+ props: {
+ searchResultsObj: {
+ searchResultsObj: searchResultsObj,
+ searchDetailsObj: searchDetailsObj,
+ },
+ currentType: "directResultsObj",
+ },
+ };
+ }
+);
+
+const mapStateToProps = (state) => {
+ return {
+ accountDetails: state.accountDetails,
+ currentView: state.currentView,
+ search: state.search,
+ //searchResultsObj: state.searchResultsObj,
+ documentDetailsObj: state.searchResultsObj.documentDetailsObj,
+ formData: state.formData,
+ appealType: state.appealType,
+ form: state.form,
+ myCases: state.myCases,
+ watchedCases: state.watchedCases,
+ myRepresentations: state.myRepresentations,
+ awaitingSubmission: state.awaitingSubmission,
+ };
+};
+
+const mapDispatchToProps = (dispatch) => {
+ return {
+ setCurrentReference: (currentReference) => {
+ dispatch(setCurrentReference(refno));
+ },
+ };
+};
+
+export default connect(mapStateToProps, mapDispatchToProps)(CaseHome);