language routing

This commit is contained in:
2021-09-28 13:36:19 +01:00
parent 475c9715fc
commit 5f9d239b50
19 changed files with 206 additions and 82 deletions
+10
View File
@@ -4,6 +4,16 @@ RELAYPATH = "dev-pedw-hc"
SASKEY = "Ml0Y/S/nfRcmIrHFRkO4jNm2J3iH52TSxPiak7+E1+Y=" SASKEY = "Ml0Y/S/nfRcmIrHFRkO4jNm2J3iH52TSxPiak7+E1+Y="
SASKEYNAME = "devpedwnspolicy" SASKEYNAME = "devpedwnspolicy"
PORT= "3000"
DEFAULT_DOMAIN = "localhost"
I18N_DOMAIN = "cymru.local"
//I18N_DOMAIN ="dev-gwaithcynllunio.gwasanaeth.llyw.cymru"
//I18N_DOMAIN ="stage-gwaithcynllunio.gwasanaeth.llyw.cymru"
//I18N_DOMAIN ="pp-gwaithcynllunio.gwasanaeth.llyw.cymru"
//I18N_DOMAIN ="gwaithcynllunio.gwasanaeth.llyw.cymru"
//RELAY_ROOT = https://test-pedw-ns.servicebus.windows.net/test-pedw-hc/ //RELAY_ROOT = https://test-pedw-ns.servicebus.windows.net/test-pedw-hc/
//RELAYURI = "test-pedw-ns.servicebus.windows.net" //RELAYURI = "test-pedw-ns.servicebus.windows.net"
//RELAYPATH = "test-pedw-hc" //RELAYPATH = "test-pedw-hc"
+3 -2
View File
@@ -157,7 +157,8 @@ export const getBasicSearch = (token, searchString) => {
return res.data; return res.data;
}) })
.catch((error) => { .catch((error) => {
console.log("thiserror", error); //console.log("thiserror", error);
return error.response;
}); });
}; };
@@ -170,7 +171,7 @@ export const getBasicDNSSearch = (token, searchString) => {
) )
.then((res) => res.data) .then((res) => res.data)
.catch((error) => { .catch((error) => {
console.log("thiserror", error); return error.response;
}); });
}; };
+9 -3
View File
@@ -107,7 +107,10 @@ const Breadcrumbs = (props) => {
) : ( ) : (
"" ""
)} )}
{router.pathname == "/searchresults" ? ( {router.pathname ==
(router.locale == "cy"
? "/canlyniadauchwilio"
: "/searchresults") ? (
<> <>
<li className="govuk-breadcrumbs__list-item"> <li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-search-results")} {t("common:breadcrumb-search-results")}
@@ -439,12 +442,15 @@ const Breadcrumbs = (props) => {
) : ( ) : (
"" ""
)} )}
{router.pathname == "/dnsdetails" ? ( {router.pathname ==
(router.locale == "cy"
? "/manyliondns"
: "/dnsdetails") ? (
<> <>
<li className="govuk-breadcrumbs__list-item"> <li className="govuk-breadcrumbs__list-item">
<Link <Link
href={ href={
router.locale != "en" router.locale == "en"
? router.locale + ? router.locale +
"/dnsapplications" "/dnsapplications"
: "/dnsapplications" : "/dnsapplications"
+6 -4
View File
@@ -31,6 +31,8 @@ const DocumentDetails = (props) => {
searchDetailsObj, searchDetailsObj,
documentDetailsObj, documentDetailsObj,
documentHistoryObj, documentHistoryObj,
setDocumentDetails,
setDocumentHistory,
} = props; } = props;
const router = useRouter(); const router = useRouter();
@@ -152,13 +154,13 @@ const DocumentDetails = (props) => {
const docDetailsObj = async () => { const docDetailsObj = async () => {
let docObj = await getSearchDocumentDetails1(incidentid) let docObj = await getSearchDocumentDetails1(incidentid)
.then((data) => { .then((data) => {
props.setDocumentDetails(data); setDocumentDetails(data);
return data; return data;
}) })
.then((data) => { .then((data) => {
let historyObj = getDocumentHistory(data.value).then( let historyObj = getDocumentHistory(data.value).then(
(result) => { (result) => {
props.setDocumentHistory(result); setDocumentHistory(result);
return result; return result;
} }
); );
@@ -171,7 +173,7 @@ const DocumentDetails = (props) => {
const getDocumentHistory = async (searchDocumentDetailsObj) => { const getDocumentHistory = async (searchDocumentDetailsObj) => {
let historyArr = []; let historyArr = [];
searchDocumentDetailsObj = searchDocumentDetailsObj; searchDocumentDetailsObj = searchDocumentDetailsObj || [];
const detailsObj = searchDocumentDetailsObj.map( const detailsObj = searchDocumentDetailsObj.map(
(historyDetail, index) => { (historyDetail, index) => {
@@ -190,7 +192,7 @@ const DocumentDetails = (props) => {
}; };
const searchDocumentResultsObj = docDetailsObj(); const searchDocumentResultsObj = docDetailsObj();
}, []); }, [incidentid, setDocumentHistory, setDocumentDetails]);
return ( return (
<div> <div>
+27
View File
@@ -0,0 +1,27 @@
import Link from "next/link";
import { useRouter } from "next/router";
import useTranslation from "next-translate/useTranslation";
import { DiagConsoleLogger } from "@opentelemetry/api";
const CRMError = (props) => {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const searchResultsObj = props.props.searchResultsObj.searchResultsObj;
console.log(searchResultsObj);
return (
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<h1 className="govuk-heading-xl govuk-!-margin-bottom-7">
Something has happened....
</h1>
<p>
{searchResultsObj.errorCode} - {searchResultsObj.errorMsg}
</p>
</div>
</div>
);
};
export default CRMError;
+26 -9
View File
@@ -4,6 +4,7 @@ import { useContext } from "react";
import useTranslation from "next-translate/useTranslation"; import useTranslation from "next-translate/useTranslation";
import SearchForCase from "./search/searchforcase"; import SearchForCase from "./search/searchforcase";
import DNSSearchResults from "./search/dnssearchresults"; import DNSSearchResults from "./search/dnssearchresults";
import CRMError from "./crmError";
export default function Search(props) { export default function Search(props) {
const { searchString, searchResultsObj } = props; const { searchString, searchResultsObj } = props;
@@ -12,21 +13,37 @@ export default function Search(props) {
const router = useRouter(); const router = useRouter();
const { locale } = router; const { locale } = router;
var hasError = _.has(searchResultsObj.searchResultsObj, "errorCode")
? true
: false;
console.log("has an error", hasError);
return ( return (
<main <main
className="govuk-main-wrapper govuk-main-wrapper--auto-spacing" className="govuk-main-wrapper govuk-main-wrapper--auto-spacing"
id="main-content" id="main-content"
role="main" role="main"
> >
<div className="govuk-grid-row"> {hasError ? (
<div className="govuk-grid-column-full"> <CRMError props={props} />
<DNSSearchResults ) : (
searchString={searchString} <>
searchResultsObj={searchResultsObj.searchResultsObj} <div className="govuk-grid-row">
searchDetailsObj={searchResultsObj.searchDetailsObj} <div className="govuk-grid-column-full">
/> <DNSSearchResults
</div> searchString={searchString}
</div> searchResultsObj={
searchResultsObj.searchResultsObj
}
searchDetailsObj={
searchResultsObj.searchDetailsObj
}
/>
</div>
</div>
</>
)}
</main> </main>
); );
} }
+4 -1
View File
@@ -77,7 +77,10 @@ let CaseSearch = (props) => {
const onHandleSubmit = (values) => { const onHandleSubmit = (values) => {
spinnerState(); spinnerState();
router.replace({ router.replace({
pathname: "/searchresults", pathname:
router.locale == "cy"
? "/canlyniadauchwilio"
: "/searchresults",
query: { q: values.basicSearch }, query: { q: values.basicSearch },
shallow: true, shallow: true,
}); });
+10 -1
View File
@@ -8,6 +8,9 @@ export default function Dns() {
let { t } = useTranslation(); let { t } = useTranslation();
const [showSpinnerState, setShowSpinnerState] = useState(false); const [showSpinnerState, setShowSpinnerState] = useState(false);
const router = useRouter();
const { locale } = router;
let spinnerState = () => { let spinnerState = () => {
showSpinnerState == true showSpinnerState == true
? setShowSpinnerState(false) ? setShowSpinnerState(false)
@@ -25,7 +28,13 @@ export default function Dns() {
</p> </p>
</div> </div>
<div className="govuk-form-group"> <div className="govuk-form-group">
<Link href="/dnsapplications"> <Link
href={
router.locale == "cy"
? "/ceisiadaudns"
: "/dnsapplications"
}
>
<a <a
className="govuk-button" className="govuk-button"
onClick={() => { onClick={() => {
+8 -11
View File
@@ -19,15 +19,7 @@ const DNSSearchResults = (props) => {
const router = useRouter(); const router = useRouter();
const { locale } = router; const { locale } = router;
_.isEmpty(searchResultsObj); var resultsArr = searchResultsObj.value || [];
let newSearchResultsObj = _.isEmpty(searchResultsObj)
? [{}]
: _.isEmpty(searchResultsObj.value)
? [{}]
: searchResultsObj.value;
var resultsArr = newSearchResultsObj || [];
const ResultsView = (resultsArr) => { const ResultsView = (resultsArr) => {
return ( return (
@@ -52,7 +44,6 @@ const DNSSearchResults = (props) => {
{t("search:searchresults-status-label")} {t("search:searchresults-status-label")}
</dd> </dd>
</div> </div>
{console.log(newSearchResultsObj.length > 0)}
{resultsArr.map((item, key) => { {resultsArr.map((item, key) => {
let detailsObj = jsonpath.query( let detailsObj = jsonpath.query(
@@ -69,7 +60,13 @@ const DNSSearchResults = (props) => {
key={key} key={key}
> >
<dd className="govuk-summary-list__value govuk-!-font-size-14 "> <dd className="govuk-summary-list__value govuk-!-font-size-14 ">
<Link href="/dnsdetails"> <Link
href={
router.locale == "cy"
? "/manyliondns"
: "/dnsdetails"
}
>
<a <a
onClick={() => { onClick={() => {
setCurrentReference({ setCurrentReference({
+8 -1
View File
@@ -55,7 +55,13 @@ const SearchResults = (props) => {
return ( return (
<div className="govuk-summary-list__row" key={key}> <div className="govuk-summary-list__row" key={key}>
<dd className="govuk-summary-list__value govuk-!-font-size-14 "> <dd className="govuk-summary-list__value govuk-!-font-size-14 ">
<Link href="/case"> <Link
href={
router.locale == "cy"
? "/achos"
: "/case"
}
>
<a <a
onClick={() => { onClick={() => {
setCurrentReference({ setCurrentReference({
@@ -177,6 +183,7 @@ const SearchResults = (props) => {
</dl> </dl>
); );
}; };
return ( return (
<div className="govuk-grid-row"> <div className="govuk-grid-row">
<div className="govuk-grid-column-full"> <div className="govuk-grid-column-full">
+39 -20
View File
@@ -4,6 +4,7 @@ import { useContext } from "react";
import useTranslation from "next-translate/useTranslation"; import useTranslation from "next-translate/useTranslation";
import SearchForCase from "./search/searchforcase"; import SearchForCase from "./search/searchforcase";
import SearchResults from "./search/searchresults"; import SearchResults from "./search/searchresults";
import CRMError from "./crmError";
export default function Search(props) { export default function Search(props) {
const { searchString, searchResultsObj } = props; const { searchString, searchResultsObj } = props;
@@ -12,38 +13,56 @@ export default function Search(props) {
const router = useRouter(); const router = useRouter();
const { locale } = router; const { locale } = router;
var hasError = _.has(searchResultsObj.searchResultsObj, "errorCode")
? true
: false;
console.log("has an error", hasError);
return ( return (
<main <main
className="govuk-main-wrapper govuk-main-wrapper--auto-spacing" className="govuk-main-wrapper govuk-main-wrapper--auto-spacing"
id="main-content" id="main-content"
role="main" role="main"
> >
<div className="govuk-grid-row"> {hasError ? (
<div className="govuk-grid-column-full"> <CRMError props={props} />
<SearchResults ) : (
searchString={searchString} <>
searchResultsObj={searchResultsObj.searchResultsObj} <div className="govuk-grid-row">
searchDetailsObj={searchResultsObj.searchDetailsObj} <div className="govuk-grid-column-full">
/> <SearchResults
</div> searchString={searchString}
</div> searchResultsObj={
<div className="govuk-grid-row"> searchResultsObj.searchResultsObj
<div className="govuk-grid-column-full"> }
<div className="govuk-button-group"> searchDetailsObj={
<Link href="/advancedsearch"> searchResultsObj.searchDetailsObj
<a className="govuk-button"> }
{t("search:searchresults-search-button-label")} />
</a> </div>
</Link> </div>
{/* <a <div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<div className="govuk-button-group">
<Link href="/advancedsearch">
<a className="govuk-button">
{t(
"search:searchresults-search-button-label"
)}
</a>
</Link>
{/* <a
onClick={() => router.back()} onClick={() => router.back()}
className="govuk-button govuk-button--secondary" className="govuk-button govuk-button--secondary"
> >
{t("search:searchresults-new-search-button-label")} {t("search:searchresults-new-search-button-label")}
</a> */} </a> */}
</div>
</div>
</div> </div>
</div> </>
</div> )}
</main> </main>
); );
} }
+6
View File
@@ -4,6 +4,12 @@
"cy" "cy"
], ],
"defaultLocale": "en", "defaultLocale": "en",
"domains": [
{
"domain": "dev-gwaithcynllunio.gwasanaeth.llyw.cymru",
"defaultLocale": "cy"
}
],
"pages": { "pages": {
"*": [ "*": [
"common" "common"
+23 -21
View File
@@ -3,20 +3,6 @@ const withStyles = require("@webdeb/next-styles");
//const { nextI18NextRewrites } = require("next-i18next/rewrites"); //const { nextI18NextRewrites } = require("next-i18next/rewrites");
const nextTranslate = require("next-translate"); const nextTranslate = require("next-translate");
//acp
// module.exports = {
// poweredByHeader: false,
// env: {
// API_ROOT: "http://pel-beta-backend",
// GRANT_TYPE: "password",
// USERNAME: "api",
// PASSWORD: "tJRq4o2ZBQ",
// CLIENT_ID: "2d3df41b-9b59-4bbd-85a7-9314125c1689",
// CLIENT_SECRET: "85H8qdrEvKEzbW5",
// },
// ...nextTranslate(),
// };
module.exports = withStyles({ module.exports = withStyles({
sass: true, // use .scss files sass: true, // use .scss files
modules: true, // style.(m|module).css & style.(m|module).scss for module files modules: true, // style.(m|module).css & style.(m|module).scss for module files
@@ -37,13 +23,29 @@ module.exports = {
return "pinswg-build-id"; return "pinswg-build-id";
}, },
poweredByHeader: false, poweredByHeader: false,
env: { async rewrites() {
// GRANT_TYPE : 'password', return [
// USERNAME : 'api', {
// API_ROOT : "https://api.dev.prevent.internal.rehab", source: "/ceisiadaudns",
// PASSWORD : 'B69eQwv7rzPBNcA', destination: "/dnsapplications", // The :path parameter isn't used here so will be automatically passed in the query
// CLIENT_ID : 'fa1f0ef2-f10f-462e-98a5-843359db6066', },
// CLIENT_SECRET : 'B69eQwv7rzPBNcA', {
source: "/manyliondns",
destination: "/dnsdetails", // The :path parameter isn't used here so will be automatically passed in the query
},
{
source: "/canlyniadauchwilio",
destination: "/searchresults", // The :path parameter isn't used here so will be automatically passed in the query
},
{
source: "/achos",
destination: "/case",
},
{
source: "/cy:path*",
destination: "http://cyrmu.local/:path*",
},
];
}, },
...nextTranslate(), ...nextTranslate(),
}; };
+1 -1
View File
@@ -26,9 +26,9 @@
"lodash": "^4.17.21", "lodash": "^4.17.21",
"moment": "^2.29.1", "moment": "^2.29.1",
"next": "^11.0.1", "next": "^11.0.1",
"next-i18next": "^8.5.1",
"next-redux-wrapper": "^7.0.2", "next-redux-wrapper": "^7.0.2",
"next-translate": "^1.0.7", "next-translate": "^1.0.7",
"path": "^0.12.7",
"pm2": "^5.1.0", "pm2": "^5.1.0",
"react": "17.0.2", "react": "17.0.2",
"react-accessible-accordion": "^3.3.5", "react-accessible-accordion": "^3.3.5",
+1
View File
@@ -45,6 +45,7 @@ function Error({ statusCode }, props) {
Error.getInitialProps = ({ res, err }) => { Error.getInitialProps = ({ res, err }) => {
const statusCode = res ? res.statusCode : err ? err.statusCode : 404; const statusCode = res ? res.statusCode : err ? err.statusCode : 404;
console.log(res, err);
return { statusCode }; return { statusCode };
}; };
+9 -2
View File
@@ -67,8 +67,15 @@ export const getServerSideProps = wrapper.getServerSideProps(
const token = await getSASToken(); const token = await getSASToken();
const searchResultsObj = await getBasicDNSSearch(token); let searchResultsObj = await getBasicDNSSearch(token);
//console.log(searchResultsObj); searchResultsObj =
searchResultsObj.status == 502
? {
value: [],
errorCode: searchResultsObj.status,
errorMsg: searchResultsObj.statusText,
}
: searchResultsObj;
const searchDetailsObj = await getSearchDetails( const searchDetailsObj = await getSearchDetails(
token, token,
+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} />
+9 -1
View File
@@ -71,7 +71,15 @@ export const getServerSideProps = wrapper.getServerSideProps(
const token = await getSASToken(); const token = await getSASToken();
const searchResultsObj = await getBasicSearch(token, query.q); let searchResultsObj = await getBasicSearch(token, query.q);
searchResultsObj =
searchResultsObj.status == 502
? {
value: [],
errorMsg: searchResultsObj.statusText,
}
: searchResultsObj;
//console.log("sssss", searchResultsObj); //console.log("sssss", searchResultsObj);
-5
View File
@@ -47,11 +47,6 @@ const reducer = (state = {}, action) => {
switch (action.type) { switch (action.type) {
case HYDRATE: case HYDRATE:
return { ...state, ...action.payload }; return { ...state, ...action.payload };
case REHYDRATE: {
console.log("am rhydrating........");
return { ...state, ...action.payload };
}
case "SERVER_ACTION": case "SERVER_ACTION":
return { return {
...state, ...state,