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/components/footer.js b/components/footer.js index df8f2e88..b5627591 100644 --- a/components/footer.js +++ b/components/footer.js @@ -23,15 +23,31 @@ export default function Footer(props) { )); const [showShareState, setShowShareState] = useState(false); + const [copySuccess, setCopySuccess] = useState(""); let shareState = () => { showShareState == true - ? setShowShareState(false) + ? (setShowShareState(false), setCopySuccess("")) : setShowShareState(true); }; - //console.log(router.asPath); - const shareBodyStr = t("common:service-home-url") + router.asPath; + const copyToClipBoard = async (copyMe) => { + try { + await navigator.clipboard.writeText(copyMe); + setCopySuccess(" - done!"); + } catch (err) { + setCopySuccess("Failed to copy!"); + } + }; + + const shareBodyStr = + t("common:service-home-url") + + (router.route == "/case" || + router.route == "/dnsdetails" || + router.route == "/myportal/case" + ? (router.route == "/dnsdetails" ? "/dns/" : "/case/") + + encodeURIComponent(props.ticketnumber) + : router.asPath); const shareSubjectStr = t("common:social-shared-from") + " " + @@ -110,7 +126,7 @@ export default function Footer(props) { shareBodyStr + "&subject=" + shareSubjectStr - } //https%3A//gov.wales/&subject=Shared%20from%20gov.wales" + } className="email" > @@ -119,6 +135,19 @@ export default function Footer(props) { Email +
  • + { + copyToClipBoard(shareBodyStr); + }} + className="link" + > + + Share this page via{" "} + + Copy Link {copySuccess} + +
  • - {/*
  • - - {t( - "common:footer-alternative-languages-link-label" - )} - -
  • */}
    { data-id={index} onClick={() => { setCurrentReference({ + "ticketnumber": + showTopThreeArr[key].ticketnumber, "currentReference": topThreeType != "watchedCases" ? topThreeType != diff --git a/components/myportal/topthree_reps.js b/components/myportal/topthree_reps.js index 92fc4ae5..fc86e376 100644 --- a/components/myportal/topthree_reps.js +++ b/components/myportal/topthree_reps.js @@ -169,6 +169,8 @@ const TopThree = (props) => { data-id={index} onClick={() => { setCurrentReference({ + "ticketnumber": + showTopThreeArr[key].ticketnumber, "currentReference": showTopThreeArr[key].caseRef, "currentType": topThreeType, diff --git a/components/myportal/viewall.js b/components/myportal/viewall.js index d50fbe38..be66c4d9 100644 --- a/components/myportal/viewall.js +++ b/components/myportal/viewall.js @@ -119,6 +119,8 @@ const ViewAllResults = (props) => { } onClick={() => { setCurrentReference({ + "ticketnumber": + resultsArr[key].ticketnumber, "currentReference": currentView.viewKey != "watchedCases" ? currentView.viewKey == diff --git a/components/nosession.js b/components/nosession.js index 5f717195..241bb2a0 100644 --- a/components/nosession.js +++ b/components/nosession.js @@ -46,7 +46,7 @@ const NoSessionWarning = (props) => {
    -