Merged PR 349: Create basic search and search results screen
Related work items: #5176
This commit is contained in:
@@ -1,2 +1,3 @@
|
|||||||
node_modules
|
node_modules
|
||||||
.next
|
.next
|
||||||
|
package-lock.json
|
||||||
|
|||||||
Vendored
+15
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
// Use IntelliSense to learn about possible attributes.
|
||||||
|
// Hover to view descriptions of existing attributes.
|
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "pwa-chrome",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "Launch Chrome against localhost",
|
||||||
|
"url": "https://localhost:3000",
|
||||||
|
"webRoot": "${workspaceFolder}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,166 @@
|
|||||||
|
import axios from "axios";
|
||||||
|
import https from 'https';
|
||||||
|
//import {XMLHttpRequest} from 'xmlhttprequest';
|
||||||
|
|
||||||
|
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0
|
||||||
|
|
||||||
|
|
||||||
|
const agent = new https.Agent({
|
||||||
|
rejectUnauthorized: false,
|
||||||
|
})
|
||||||
|
const crmHeaders = {
|
||||||
|
withCredentials: true,
|
||||||
|
headers:{
|
||||||
|
"Content-Type": "application/json; charset=utf-8",
|
||||||
|
"OData-MaxVersion": "4.0",
|
||||||
|
"OData-Version": "4.0",
|
||||||
|
"Accept": "application/json",
|
||||||
|
"Prefer": "odata.include-annotations=\"*\"",
|
||||||
|
agent
|
||||||
|
},
|
||||||
|
auth:{
|
||||||
|
username: 'xm\bondr',
|
||||||
|
password: '!Sky9fish1972'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const getBasicSearch = (searchString) => {
|
||||||
|
console.log('got to axios', searchString)
|
||||||
|
|
||||||
|
return axios
|
||||||
|
//.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", crmHeaders)
|
||||||
|
//.get("https://jsonplaceholder.typicode.com/todos/1",{proxy:{protocol: 'http',host:'lon3.sme.zscloud.net',port: 80}})
|
||||||
|
.get("https://localhost:3000/api/searchresults2",{httpsAgent: new https.Agent({rejectUnauthorized:false})})
|
||||||
|
.then((res)=>res.data)
|
||||||
|
.catch((error)=>{
|
||||||
|
console.log('thiserror',error)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
//https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/EntityDefinitions?$select=LogicalName
|
||||||
|
|
||||||
|
// get list of appealtypes
|
||||||
|
//https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/stringmaps?$filter=attributename%20eq%20%27pinswg_appealcasetype%27&$count=true
|
||||||
|
|
||||||
|
//get crm xml form for appealtype
|
||||||
|
//https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/systemforms?$select=formid,name,formxml&$filter=(objecttypecode%20eq%20%27pinswg_dns%27and%20type%20eq%202)&$count=true
|
||||||
|
// then use regex to remove the escape
|
||||||
|
// convert xml to json and return
|
||||||
|
// promise example
|
||||||
|
// var xml2js = require('xml2js');
|
||||||
|
// var xml = '<foo></foo>';
|
||||||
|
|
||||||
|
// // With parser
|
||||||
|
// var parser = new xml2js.Parser(/* options */);
|
||||||
|
// parser.parseStringPromise(data).then(function (result) {
|
||||||
|
// console.dir(result);
|
||||||
|
// console.log('Done');
|
||||||
|
// })
|
||||||
|
// .catch(function (err) {
|
||||||
|
// // Failed
|
||||||
|
// });
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export const getAppealTypeDetail = (caseReference,appealcasetype) =>{
|
||||||
|
console.log('got to axios', searchString)
|
||||||
|
// example appealcasetype type pinswg_householderappealhases
|
||||||
|
return axios
|
||||||
|
.get("https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/" + appealcasetype + "?$filter=pinswg_name eq '" + caseReference + "'",{httpsAgent: new https.Agent({rejectUnauthorized:false})})
|
||||||
|
.then((res)=>res.data)
|
||||||
|
.catch((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 = () =>{
|
||||||
|
console.log('got to axios', searchString)
|
||||||
|
|
||||||
|
return axios
|
||||||
|
.get("https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/accounts?$select=name",{httpsAgent: new https.Agent({rejectUnauthorized:false})})
|
||||||
|
.then((res)=>res.data)
|
||||||
|
.catch((error)=>{
|
||||||
|
console.log('thi serror',error)
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// var req = new XMLHttpRequest();
|
||||||
|
// req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.2/incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title&$filter=contains(title, '000')&$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 {
|
||||||
|
// Xrm.Utility.alertDialog(this.statusText);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// req.send();
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDjTCCAnWgAwIBAgIUVcGexO0o2d+pgVMwkIdrnBI9L5QwDQYJKoZIhvcNAQEL
|
||||||
|
BQAwVjELMAkGA1UEBhMCVUsxDzANBgNVBAgMBlN1c3NleDETMBEGA1UEBwwKRWFz
|
||||||
|
dGJvdXJuZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMB4XDTIx
|
||||||
|
MDcwNTExMTcwNVoXDTIyMDcwNTExMTcwNVowVjELMAkGA1UEBhMCVUsxDzANBgNV
|
||||||
|
BAgMBlN1c3NleDETMBEGA1UEBwwKRWFzdGJvdXJuZTEhMB8GA1UECgwYSW50ZXJu
|
||||||
|
ZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
||||||
|
AQEAxzfQqGriUq8sKeWmgkgFssCDfsBLwijhP9nMVSCSwyWgxMZlGtj/Wbyf20Sl
|
||||||
|
cg7X3jj2rGEWU3TkJtNUwjQcYRRK2+QlC3bQMIJEfe0JXqkeMWSwR3Fs0IE7lzYf
|
||||||
|
CVHtcu7Z8muSEvinGULhg8jjBYp9mknjokjdwEy/eI7UYHEQx0sziapgAUITgSpL
|
||||||
|
45qZvgw3BJShq/En3DYX0dIiX2yswagOFUBPtCeFaP3LsPh0kTOPxhv9Y3SxQfPV
|
||||||
|
dTq3719HGVSLgQs18F82HxZeXjxAUqV+Sl5an5DnArRtFA3U34IDXkpc9RiLtoYb
|
||||||
|
GDrJuyt1TzpAxoBr8Ld5ySRDqQIDAQABo1MwUTAdBgNVHQ4EFgQUNZqF/sycnZe5
|
||||||
|
t6scKrWbEnW4Dc8wHwYDVR0jBBgwFoAUNZqF/sycnZe5t6scKrWbEnW4Dc8wDwYD
|
||||||
|
VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEALs3OiGk6Xj7d51rChPsg
|
||||||
|
JL05Vj/DbI7Rr3jj2vGcNVd0GfIH9zrX0AMj6Uzxt8LCyI3QtrgzYSw9sKh9Q9I3
|
||||||
|
3h7sIBm9zXV5gbMSG3rAl965ryiQt4INKUamz1XLQKvaMRvHD/DmRmIbFo399gYN
|
||||||
|
duZQdwqdKavZ6wOw3GRmtjBlUzxO7DCrJMFsj7dfNqHSrZiwScNItArLecYeYQYg
|
||||||
|
npjsvJekpSQLjvvjVuHLfEp+vNH6liL7qFFcBzUgwISFvcAI99e/zZtewkb3Vw+7
|
||||||
|
+7wbMgpibU1kbL9Bpru8PS89CsVGEh1TmzO3e8j1GnYAcnzRe70IzOTdMUE0AEg6
|
||||||
|
FA==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDHN9CoauJSrywp
|
||||||
|
5aaCSAWywIN+wEvCKOE/2cxVIJLDJaDExmUa2P9ZvJ/bRKVyDtfeOPasYRZTdOQm
|
||||||
|
01TCNBxhFErb5CULdtAwgkR97QleqR4xZLBHcWzQgTuXNh8JUe1y7tnya5IS+KcZ
|
||||||
|
QuGDyOMFin2aSeOiSN3ATL94jtRgcRDHSzOJqmABQhOBKkvjmpm+DDcElKGr8Sfc
|
||||||
|
NhfR0iJfbKzBqA4VQE+0J4Vo/cuw+HSRM4/GG/1jdLFB89V1OrfvX0cZVIuBCzXw
|
||||||
|
XzYfFl5ePEBSpX5KXlqfkOcCtG0UDdTfggNeSlz1GIu2hhsYOsm7K3VPOkDGgGvw
|
||||||
|
t3nJJEOpAgMBAAECggEBAKkkd5F25l+jgRC1fhEhS01AbKTCadAY215V8knYlSMB
|
||||||
|
IKXReGg6E1vCbctCVmInvhpcLPugls8W8NsSFOWqTuoRy5k09Erufsag47wy9ACe
|
||||||
|
ABeZ0J1n7SZ+gvTYq7NDDyLFLuDHekeHPICTK1uzxSSgOBI2aAISccxinTKjuieC
|
||||||
|
eEtcBSu66g+cvyKGZglzfd4ugNDIaH9ibIFYPJzexw3lAz9j3mKpccxGsokFGw7T
|
||||||
|
qwovML2I9+laD1N23H9lJ2YLr73uqusI0cxsCvGwRtBHHIEsR6aL43GAMG7TtWw/
|
||||||
|
BoSECBZHRE+RxDjAab0XmrhcD3kf5v1DFk+Bnh+2rYECgYEA57w/tw9SmJ//PLMz
|
||||||
|
6siHkx6vzvD2bdAKsinXkR987vYHmlpISKf2VeN02aj6BND2KM9OSCMNzaD+Hz0c
|
||||||
|
Uv+5RInpr4LpBmDiRPOyTkJjFEuM1ZSgAm01wGY8k8CuHnZs3ueJaSZMmCXmEC8G
|
||||||
|
F4v/K+nMiOcbl8f23tUOmmJ1KnECgYEA3BPtb64DfBTcnbGvBzZU1WoPOWe8ujFg
|
||||||
|
yjICX4elKr2jlOzrdw4eU4peU3jVXl+sDPw++NKWUimhdcuimLF7lfOi3VUM8DWr
|
||||||
|
cCMWfvwFc7URv/42UltN58p6/FceU5WzF+785r8N2tyOtKi81Dsz5uDIytMuqmft
|
||||||
|
MRlu56FeGLkCgYAiyklKg1tkHIkmJMVDl017Ud0VFWn5vIUOkGeTmwWXnoovqyQ0
|
||||||
|
/DpoVJijYNIATRrXr5/SBqk42NWt/O+2qju3RXk251FyqrLtpSR8yUy0rE79da28
|
||||||
|
D4dFVlP73q6FVkQsBtjDV4OiR/ZNMbIZcOQjRJt3ZjLnS5cNhzEFDokGkQKBgQCm
|
||||||
|
th295NbU7sS0XD4XO4wF4oLH3JJ1hSQp5rovfYSbnO5GyTYRiMtmQ0Hy/2y6QcUG
|
||||||
|
TSqyuGuQr+KUZf60pnXVAKtV+LCFYlKM7reC2AyVOwvIIZ0qw+l+9b42WxQpAxSY
|
||||||
|
w7wmW4H2Ue90YQIxzushMRRJuLH3+iQOdpKxumaaWQKBgH5HMvJLiueY1pRMomnQ
|
||||||
|
fAirquPPeqILTGmnfNhNm+8Fv2HHNUHmfSdMOxK15g+RPEJRDERRDhdLHOep0Lx9
|
||||||
|
AVcINmkeQVChWcPu1LwoNt0c0AZbB/vDUSh5GadC/dFV85xb58C+Fc7WYvOIYwS4
|
||||||
|
KvvWnCWcue5qxZCd2G+6oNx/
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
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";
|
||||||
|
|
||||||
@@ -7,44 +8,61 @@ export default function CaseSearch() {
|
|||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { locale } = router;
|
const { locale } = router;
|
||||||
|
const [query, setQuery] = useState("");
|
||||||
|
const handleParam = (setValue) => (e) => setValue(e.target.value);
|
||||||
|
|
||||||
|
const basicSearch = (event) => {
|
||||||
|
event.preventDefault();
|
||||||
|
console.log(query);
|
||||||
|
// /searchresults
|
||||||
|
|
||||||
|
router.push({
|
||||||
|
pathname: "/searchresults",
|
||||||
|
query: { q: query },
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="card" id="casesearch-card">
|
<div className="card" id="casesearch-card">
|
||||||
<div className="card-body">
|
<form onSubmit={basicSearch}>
|
||||||
<h3 className="heading-small card-heading">
|
<div className="card-body">
|
||||||
{t("home:casesearch-card-title")}
|
<h3 className="heading-small card-heading">
|
||||||
</h3>
|
{t("home:casesearch-card-title")}
|
||||||
<div className="govuk-form-group">
|
</h3>
|
||||||
<div id="event-name-hint" className="govuk-hint ">
|
<div className="govuk-form-group">
|
||||||
{t("home:casesearch-card-search-hint")}:
|
<div id="event-name-hint" className="govuk-hint ">
|
||||||
<br />
|
{t("home:casesearch-card-search-hint")}:
|
||||||
<span className="govuk-body-s">
|
<br />
|
||||||
{" "}
|
<span className="govuk-body-s">
|
||||||
<span className="govuk-!-font-weight-bold">
|
{" "}
|
||||||
{t("home:casesearch-card-search-example-label")}
|
<span className="govuk-!-font-weight-bold">
|
||||||
:
|
{t(
|
||||||
</span>{" "}
|
"home:casesearch-card-search-example-label"
|
||||||
APP/A1234/A/99/1234567
|
)}
|
||||||
</span>
|
:
|
||||||
|
</span>{" "}
|
||||||
|
APP/A1234/A/99/1234567
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<input
|
||||||
|
className="govuk-input"
|
||||||
|
id="event-name"
|
||||||
|
name="event-name"
|
||||||
|
type="text"
|
||||||
|
aria-describedby="event-name-hint"
|
||||||
|
onChange={handleParam(setQuery)}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<input
|
<div className="govuk-form-group">
|
||||||
className="govuk-input"
|
<button type="submit" className="govuk-button">
|
||||||
id="event-name"
|
|
||||||
name="event-name"
|
|
||||||
type="text"
|
|
||||||
aria-describedby="event-name-hint"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="govuk-form-group">
|
|
||||||
<Link href="/searchresults">
|
|
||||||
<a className="govuk-button">
|
|
||||||
{t("home:casesearch-card-button")}
|
{t("home:casesearch-card-button")}
|
||||||
</a>
|
</button>
|
||||||
|
</div>
|
||||||
|
<Link href="/advancedsearch">
|
||||||
|
<a>{t("home:casesearch-card-advanced-link")}</a>
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<Link href="/advancedsearch">
|
</form>
|
||||||
<a>{t("home:casesearch-card-advanced-link")}</a>
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
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";
|
||||||
|
|
||||||
@@ -7,46 +8,65 @@ export default function SearchCases() {
|
|||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { locale } = router;
|
const { locale } = router;
|
||||||
|
const [query, setQuery] = useState("");
|
||||||
|
const handleParam = (setValue) => (e) => setValue(e.target.value);
|
||||||
|
|
||||||
|
const basicSearch = (event) => {
|
||||||
|
event.preventDefault();
|
||||||
|
console.log(query);
|
||||||
|
// /searchresults
|
||||||
|
|
||||||
|
router.push({
|
||||||
|
pathname: "/searchresults",
|
||||||
|
query: { q: query },
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="card card-3" id="casescomment-card">
|
<div className="card card-3" id="casescomment-card">
|
||||||
<div className="card-body">
|
<form onSubmit={basicSearch}>
|
||||||
<h3 className="heading-small card-heading">
|
<div className="card-body">
|
||||||
{t("myportal:searchcases-card-title")}
|
<h3 className="heading-small card-heading">
|
||||||
</h3>
|
{t("myportal:searchcases-card-title")}
|
||||||
<div className="govuk-form-group">
|
</h3>
|
||||||
<div id="event-name-hint" className="govuk-hint ">
|
<div className="govuk-form-group">
|
||||||
{t("myportal:searchcases-card-search-hint")}:
|
<div id="event-name-hint" className="govuk-hint ">
|
||||||
<br />
|
{t("myportal:searchcases-card-search-hint")}:
|
||||||
<span className="govuk-body-s">
|
<br />
|
||||||
{" "}
|
<span className="govuk-body-s">
|
||||||
<span className="govuk-!-font-weight-bold">
|
{" "}
|
||||||
{t(
|
<span className="govuk-!-font-weight-bold">
|
||||||
"myportal:searchcases-card-search-example-label"
|
{t(
|
||||||
)}
|
"myportal:searchcases-card-search-example-label"
|
||||||
:
|
)}
|
||||||
</span>{" "}
|
:
|
||||||
APP/A1234/A/99/1234567
|
</span>{" "}
|
||||||
</span>
|
APP/A1234/A/99/1234567
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<input
|
||||||
|
className="govuk-input"
|
||||||
|
id="event-name"
|
||||||
|
name="event-name"
|
||||||
|
type="text"
|
||||||
|
aria-describedby="event-name-hint"
|
||||||
|
onChange={handleParam(setQuery)}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<input
|
<div className="govuk-form-group">
|
||||||
className="govuk-input"
|
<button
|
||||||
id="event-name"
|
type="submit"
|
||||||
name="event-name"
|
name="search"
|
||||||
type="text"
|
className="govuk-button"
|
||||||
aria-describedby="event-name-hint"
|
>
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="govuk-form-group">
|
|
||||||
<Link href="/searchresults">
|
|
||||||
<a className="govuk-button">
|
|
||||||
{t("myportal:searchcases-card-button")}
|
{t("myportal:searchcases-card-button")}
|
||||||
</a>
|
</button>
|
||||||
|
</div>
|
||||||
|
<Link href="/advancedsearch">
|
||||||
|
<a>{t("myportal:searchcases-card-advanced-link")}</a>
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<Link href="/advancedsearch">
|
</form>
|
||||||
<a>{t("myportal:searchcases-card-advanced-link")}</a>
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-17
@@ -17,23 +17,7 @@ export default function Search({ children, pages }) {
|
|||||||
id="main-content"
|
id="main-content"
|
||||||
role="main"
|
role="main"
|
||||||
>
|
>
|
||||||
<div className="govuk-grid-row">
|
<AdvancedSearch />
|
||||||
<div className="govuk-grid-column-full">
|
|
||||||
<SearchForCase />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="govuk-grid-row">
|
|
||||||
<div className="govuk-grid-column-full">
|
|
||||||
<AdvancedSearch />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div className="govuk-grid-row">
|
|
||||||
<div className="govuk-grid-column-full">
|
|
||||||
<Link href="/searchresults">
|
|
||||||
<a className="govuk-button ">Search</a>
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</main>
|
</main>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
+892
-613
File diff suppressed because it is too large
Load Diff
+107
-230
@@ -2,11 +2,62 @@ 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";
|
||||||
|
|
||||||
export default function SearchResults() {
|
export default function SearchResults(props) {
|
||||||
|
const { searchString, searchResultsObj } = props;
|
||||||
let { t } = useTranslation();
|
let { t } = useTranslation();
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { locale } = router;
|
const { locale } = router;
|
||||||
|
|
||||||
|
var resultsArr = props.searchResultsObj.searchResultsObj.value || [{}];
|
||||||
|
const resultRow = Object.keys(resultsArr).map((key,index) => {
|
||||||
|
<div className="govuk-summary-list__row">
|
||||||
|
<dd className="govuk-summary-list__value govuk-!-font-size-14 govuk-!-padding-left-2">
|
||||||
|
<Link href="/case">
|
||||||
|
<a>
|
||||||
|
<span className="results-visually-hidden">
|
||||||
|
wwwwwwwCase Reference:
|
||||||
|
</span>
|
||||||
|
{resultsArr[key].title}
|
||||||
|
</a>
|
||||||
|
</Link>
|
||||||
|
</dd>
|
||||||
|
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
||||||
|
<span className="results-visually-hidden">
|
||||||
|
Site Address:{" "}
|
||||||
|
</span>
|
||||||
|
23 Martineau Lane
|
||||||
|
<br /> HASTINGS
|
||||||
|
<br />
|
||||||
|
TN35 5DS
|
||||||
|
</dd>
|
||||||
|
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
||||||
|
<span className="results-visually-hidden">
|
||||||
|
Appellant/Applicant:
|
||||||
|
</span>
|
||||||
|
Mr J Pocknell
|
||||||
|
</dd>
|
||||||
|
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
||||||
|
<span className="results-visually-hidden">
|
||||||
|
Authority:
|
||||||
|
</span>
|
||||||
|
Hastings Borough Council{" "}
|
||||||
|
</dd>
|
||||||
|
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
||||||
|
<span className="results-visually-hidden">
|
||||||
|
Case Type:
|
||||||
|
</span>
|
||||||
|
Planning (W){" "}
|
||||||
|
</dd>
|
||||||
|
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
||||||
|
<span className="results-visually-hidden">
|
||||||
|
Status:
|
||||||
|
</span>
|
||||||
|
In Progress
|
||||||
|
</dd>
|
||||||
|
</div>
|
||||||
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="govuk-grid-row">
|
<div className="govuk-grid-row">
|
||||||
<div className="govuk-grid-column-full">
|
<div className="govuk-grid-column-full">
|
||||||
@@ -14,8 +65,8 @@ export default function SearchResults() {
|
|||||||
{t("search:searchresults-title-label")}
|
{t("search:searchresults-title-label")}
|
||||||
</h1>
|
</h1>
|
||||||
<p className="govuk-body">
|
<p className="govuk-body">
|
||||||
{t("search:searchresults-count-label-part-1")} 99{" "}
|
{t("search:searchresults-count-label", { count: props.searchResultsObj.searchResultsObj["@odata.count"].toString()})}. You
|
||||||
{t("search:searchresults-count-label-part-2")}
|
searched for <em>"{searchString}"</em>
|
||||||
</p>
|
</p>
|
||||||
<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">
|
||||||
@@ -32,238 +83,64 @@ export default function SearchResults() {
|
|||||||
{t("search:searchresults-authority-label")}
|
{t("search:searchresults-authority-label")}
|
||||||
</dd>
|
</dd>
|
||||||
<dd className="govuk-summary-list__key govuk-!-font-size-14">
|
<dd className="govuk-summary-list__key govuk-!-font-size-14">
|
||||||
{t("search:searchresults-case-type-label")}
|
{t("search:searchresults-case-type-label")}
|
||||||
</dd>
|
</dd>
|
||||||
<dd className="govuk-summary-list__key govuk-!-font-size-14">
|
<dd className="govuk-summary-list__key govuk-!-font-size-14">
|
||||||
{t("search:searchresults-status-label")}
|
{t("search:searchresults-status-label")}
|
||||||
</dd>
|
</dd>
|
||||||
</div>
|
</div>
|
||||||
<div className="govuk-summary-list__row">
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14 govuk-!-padding-left-2">
|
{ resultsArr.map((item,key) => {
|
||||||
<Link href="/case">
|
return(
|
||||||
<a>
|
<div className="govuk-summary-list__row">
|
||||||
<span className="results-visually-hidden">
|
<dd className="govuk-summary-list__value govuk-!-font-size-14 govuk-!-padding-left-2">
|
||||||
Case Reference:
|
<Link href="/case">
|
||||||
</span>
|
<a>
|
||||||
APP/Z2830/D/21/3272770
|
<span className="results-visually-hidden">
|
||||||
</a>
|
Case Reference:
|
||||||
</Link>
|
</span>
|
||||||
</dd>
|
{item.title}
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
</a>
|
||||||
<span className="results-visually-hidden">
|
</Link>
|
||||||
Site Address:{" "}
|
</dd>
|
||||||
</span>
|
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
||||||
23 Martineau Lane
|
<span className="results-visually-hidden">
|
||||||
<br /> HASTINGS
|
Site Address:{" "}
|
||||||
<br />
|
</span>
|
||||||
TN35 5DS
|
23 Martineau Lane
|
||||||
</dd>
|
<br /> HASTINGS
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
<br />
|
||||||
<span className="results-visually-hidden">
|
TN35 5DS
|
||||||
Appellant/Applicant:
|
</dd>
|
||||||
</span>
|
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
||||||
Mr J Pocknell
|
<span className="results-visually-hidden">
|
||||||
</dd>
|
Appellant/Applicant:
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
</span>
|
||||||
<span className="results-visually-hidden">
|
Mr J Pocknell
|
||||||
Authority:
|
</dd>
|
||||||
</span>
|
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
||||||
Hastings Borough Council{" "}
|
<span className="results-visually-hidden">
|
||||||
</dd>
|
Authority:
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
</span>
|
||||||
<span className="results-visually-hidden">
|
{item.["_customerid_value@OData.Community.Display.V1.FormattedValue"]}
|
||||||
Case Type:
|
</dd>
|
||||||
</span>
|
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
||||||
Planning (W){" "}
|
<span className="results-visually-hidden">
|
||||||
</dd>
|
Case Type:
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
</span>
|
||||||
<span className="results-visually-hidden">
|
{item.["pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"]}
|
||||||
Status:
|
</dd>
|
||||||
</span>
|
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
||||||
In Progress
|
<span className="results-visually-hidden">
|
||||||
</dd>
|
Status:
|
||||||
</div>
|
</span>
|
||||||
<div className="govuk-summary-list__row">
|
{item.["statuscode@OData.Community.Display.V1.FormattedValue"]}
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14 govuk-!-padding-left-2">
|
</dd>
|
||||||
<Link href="/">
|
</div>
|
||||||
<a>
|
)
|
||||||
<span className="results-visually-hidden">
|
})}
|
||||||
Case Reference:
|
|
||||||
</span>
|
</dl>
|
||||||
APP/Z2830/D/21/3272770
|
|
||||||
</a>
|
|
||||||
</Link>
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Site Address:{" "}
|
|
||||||
</span>
|
|
||||||
23 Martineau Lane
|
|
||||||
<br /> HASTINGS
|
|
||||||
<br />
|
|
||||||
TN35 5DS
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Appellant/Applicant:
|
|
||||||
</span>
|
|
||||||
Mr J Pocknell
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Authority:
|
|
||||||
</span>
|
|
||||||
Hastings Borough Council{" "}
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Case Type:
|
|
||||||
</span>
|
|
||||||
Planning (W){" "}
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Status:
|
|
||||||
</span>
|
|
||||||
In Progress
|
|
||||||
</dd>
|
|
||||||
</div>
|
|
||||||
<div className="govuk-summary-list__row">
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14 govuk-!-padding-left-2">
|
|
||||||
<Link href="/">
|
|
||||||
<a>
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Case Reference:
|
|
||||||
</span>
|
|
||||||
APP/Z2830/D/21/3272770
|
|
||||||
</a>
|
|
||||||
</Link>
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Site Address:{" "}
|
|
||||||
</span>
|
|
||||||
23 Martineau Lane
|
|
||||||
<br /> HASTINGS
|
|
||||||
<br />
|
|
||||||
TN35 5DS
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Appellant/Applicant:
|
|
||||||
</span>
|
|
||||||
Mr J Pocknell
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Authority:
|
|
||||||
</span>
|
|
||||||
Hastings Borough Council{" "}
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Case Type:
|
|
||||||
</span>
|
|
||||||
Planning (W){" "}
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Status:
|
|
||||||
</span>
|
|
||||||
In Progress
|
|
||||||
</dd>
|
|
||||||
</div>
|
|
||||||
<div className="govuk-summary-list__row">
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14 govuk-!-padding-left-2">
|
|
||||||
<Link href="/">
|
|
||||||
<a>
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Case Reference:
|
|
||||||
</span>
|
|
||||||
APP/Z2830/D/21/3272770
|
|
||||||
</a>
|
|
||||||
</Link>
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Site Address:{" "}
|
|
||||||
</span>
|
|
||||||
23 Martineau Lane
|
|
||||||
<br /> HASTINGS
|
|
||||||
<br />
|
|
||||||
TN35 5DS
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Appellant/Applicant:
|
|
||||||
</span>
|
|
||||||
Mr J Pocknell
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Authority:
|
|
||||||
</span>
|
|
||||||
Hastings Borough Council{" "}
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Case Type:
|
|
||||||
</span>
|
|
||||||
Planning (W){" "}
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Status:
|
|
||||||
</span>
|
|
||||||
In Progress
|
|
||||||
</dd>
|
|
||||||
</div>
|
|
||||||
<div className="govuk-summary-list__row">
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14 govuk-!-padding-left-2">
|
|
||||||
<Link href="/">
|
|
||||||
<a>
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Case Reference:
|
|
||||||
</span>
|
|
||||||
APP/Z2830/D/21/3272770
|
|
||||||
</a>
|
|
||||||
</Link>
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Site Address:{" "}
|
|
||||||
</span>
|
|
||||||
23 Martineau Lane
|
|
||||||
<br /> HASTINGS
|
|
||||||
<br />
|
|
||||||
TN35 5DS
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Appellant/Applicant:
|
|
||||||
</span>
|
|
||||||
Mr J Pocknell
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Authority:
|
|
||||||
</span>
|
|
||||||
Hastings Borough Council{" "}
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Case Type:
|
|
||||||
</span>
|
|
||||||
Planning (W){" "}
|
|
||||||
</dd>
|
|
||||||
<dd className="govuk-summary-list__value govuk-!-font-size-14">
|
|
||||||
<span className="results-visually-hidden">
|
|
||||||
Status:
|
|
||||||
</span>
|
|
||||||
In Progress
|
|
||||||
</dd>
|
|
||||||
</div>
|
|
||||||
</dl>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ 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";
|
||||||
|
|
||||||
export default function Search({ children, pages }) {
|
export default function Search(props) {
|
||||||
|
const { searchString, searchResultsObj } = props;
|
||||||
let { t } = useTranslation();
|
let { t } = useTranslation();
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
@@ -19,7 +20,7 @@ export default function Search({ children, pages }) {
|
|||||||
>
|
>
|
||||||
<div className="govuk-grid-row">
|
<div className="govuk-grid-row">
|
||||||
<div className="govuk-grid-column-full">
|
<div className="govuk-grid-column-full">
|
||||||
<SearchResults />
|
<SearchResults searchString={searchString} searchResultsObj={searchResultsObj}/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="govuk-grid-row">
|
<div className="govuk-grid-row">
|
||||||
|
|||||||
@@ -46,8 +46,7 @@
|
|||||||
"clear-button-label": "Cliriwch",
|
"clear-button-label": "Cliriwch",
|
||||||
"clear-all-button-label": "Clirio Pob Un",
|
"clear-all-button-label": "Clirio Pob Un",
|
||||||
"searchresults-title-label": "Crynodeb o’r Achos ar gyfer",
|
"searchresults-title-label": "Crynodeb o’r Achos ar gyfer",
|
||||||
"searchresults-count-label-part-1": "Cafodd eich chwiliad",
|
"searchresults-count-label": "Cafodd eich chwiliad {{count}} o ganlyniadau",
|
||||||
"searchresults-count-label-part-2": "o ganlyniadau",
|
|
||||||
"searchresults-case-reference-label": "Cyfeirnod yr Achos",
|
"searchresults-case-reference-label": "Cyfeirnod yr Achos",
|
||||||
"searchresults-site-address-label": "Cyfeiriad y Safle",
|
"searchresults-site-address-label": "Cyfeiriad y Safle",
|
||||||
"searchresults-applicant-label": "Apelydd/Ymgeisydd",
|
"searchresults-applicant-label": "Apelydd/Ymgeisydd",
|
||||||
|
|||||||
@@ -46,12 +46,11 @@
|
|||||||
"clear-button-label": "Clear",
|
"clear-button-label": "Clear",
|
||||||
"clear-all-button-label": "Clear all",
|
"clear-all-button-label": "Clear all",
|
||||||
"searchresults-title-label": "Search for a case",
|
"searchresults-title-label": "Search for a case",
|
||||||
"searchresults-count-label-part-1": "Your search returned",
|
"searchresults-count-label": "Your search returned {{count}} results",
|
||||||
"searchresults-count-label-part-2": "results",
|
|
||||||
"searchresults-case-reference-label": "Case reference",
|
"searchresults-case-reference-label": "Case reference",
|
||||||
"searchresults-site-address-label": "Site address",
|
"searchresults-site-address-label": "Site address",
|
||||||
"searchresults-applicant-label": "Appellant/Applicant",
|
"searchresults-applicant-label": "Appellant/Applicant",
|
||||||
"searchresults-authority-label": "Authorty",
|
"searchresults-authority-label": "Authority",
|
||||||
"searchresults-case-type-label": "Case type",
|
"searchresults-case-type-label": "Case type",
|
||||||
"searchresults-status-label": "Status",
|
"searchresults-status-label": "Status",
|
||||||
"searchresults-watch-label": "Watch",
|
"searchresults-watch-label": "Watch",
|
||||||
|
|||||||
Generated
+1636
-3
File diff suppressed because it is too large
Load Diff
+6
-2
@@ -3,7 +3,7 @@
|
|||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "node server.js",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
"start": "next start"
|
"start": "next start"
|
||||||
},
|
},
|
||||||
@@ -11,7 +11,9 @@
|
|||||||
"@webdeb/next-styles": "^1.1.1",
|
"@webdeb/next-styles": "^1.1.1",
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"cookies": "^0.8.0",
|
"cookies": "^0.8.0",
|
||||||
|
"dynamics-web-api": "^1.7.4",
|
||||||
"govuk-frontend": "^3.13.0",
|
"govuk-frontend": "^3.13.0",
|
||||||
|
"https": "^1.0.0",
|
||||||
"jsonpath": "^1.1.1",
|
"jsonpath": "^1.1.1",
|
||||||
"jsonpath-plus": "^5.1.0",
|
"jsonpath-plus": "^5.1.0",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
@@ -29,7 +31,9 @@
|
|||||||
"redux-thunk": "^2.3.0",
|
"redux-thunk": "^2.3.0",
|
||||||
"sass": "^1.35.1",
|
"sass": "^1.35.1",
|
||||||
"sass-loader": "^12.1.0",
|
"sass-loader": "^12.1.0",
|
||||||
"webpack": "^5.40.0"
|
"webpack": "^5.40.0",
|
||||||
|
"xml2js": "^0.4.23",
|
||||||
|
"xmlhttprequest": "^1.8.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"eslint": "^7.29.0",
|
"eslint": "^7.29.0",
|
||||||
|
|||||||
@@ -75,4 +75,12 @@ const Home = (props) => {
|
|||||||
// };
|
// };
|
||||||
// };
|
// };
|
||||||
|
|
||||||
export default Home; //connect(mapStateToProps)(Home);
|
const mapStateToProps = (state) => {
|
||||||
|
console.log(state);
|
||||||
|
|
||||||
|
return {
|
||||||
|
search: state.search,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export default connect(mapStateToProps)(Home);
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,101 @@
|
|||||||
|
export default(req, res) =>{
|
||||||
|
res.statusCode= 200;
|
||||||
|
res.json(
|
||||||
|
{
|
||||||
|
"@odata.context": "https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/$metadata#incidents(_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title)",
|
||||||
|
"@odata.count": 9,
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"704047\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value": "56e7ef63-7e64-eb11-aaba-00224800be9c",
|
||||||
|
"pinswg_appealcasetype": 846040000,
|
||||||
|
"statuscode": 1,
|
||||||
|
"ticketnumber": "CAS-00009-W8N6W4",
|
||||||
|
"title": "CAS-00009-W8N6W4",
|
||||||
|
"incidentid": "9919eac3-21af-eb11-aac3-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"704095\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value": "56e7ef63-7e64-eb11-aaba-00224800be9c",
|
||||||
|
"pinswg_appealcasetype": 846040011,
|
||||||
|
"statuscode": 1,
|
||||||
|
"ticketnumber": "CAS-00010-J9W6L5",
|
||||||
|
"title": "CAS-00010-J9W6L5",
|
||||||
|
"incidentid": "55f4fc74-33af-eb11-aac3-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"709250\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value": "41fead24-29ba-eb11-aac4-00224800be9c",
|
||||||
|
"pinswg_appealcasetype": 846040001,
|
||||||
|
"statuscode": 1,
|
||||||
|
"ticketnumber": "CAS-00011-K1N0J8",
|
||||||
|
"title": "CAS-00011-K1N0J8",
|
||||||
|
"incidentid": "6bd04d33-29ba-eb11-aac4-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"710463\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value": "56e7ef63-7e64-eb11-aaba-00224800be9c",
|
||||||
|
"pinswg_appealcasetype": 846040000,
|
||||||
|
"statuscode": 1,
|
||||||
|
"ticketnumber": "CAS-00012-D9W6S8",
|
||||||
|
"title": "CAS-00012-D9W6S8",
|
||||||
|
"incidentid": "b9c9cbe4-6abc-eb11-aac4-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"746096\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value": "80d99a34-82ad-eb11-aac3-00224800be9c",
|
||||||
|
"pinswg_appealcasetype": 846040025,
|
||||||
|
"statuscode": 1,
|
||||||
|
"ticketnumber": "CAS-00013-Z0B5Z9",
|
||||||
|
"title": "CAS-00013-Z0B5Z9",
|
||||||
|
"incidentid": "34071ec4-54d3-eb11-aac5-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"749764\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value": "56e7ef63-7e64-eb11-aaba-00224800be9c",
|
||||||
|
"pinswg_appealcasetype": 846040021,
|
||||||
|
"statuscode": 1,
|
||||||
|
"ticketnumber": "CAS-00014-S3L9B4",
|
||||||
|
"title": "CAS-00014-S3L9B4",
|
||||||
|
"incidentid": "2230700b-ebd7-eb11-aac5-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"750875\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value": "cfb7b446-a7d8-eb11-aac5-00224800be9c",
|
||||||
|
"pinswg_appealcasetype": 846040000,
|
||||||
|
"statuscode": 1,
|
||||||
|
"ticketnumber": "CAS-00015-L7J9H1",
|
||||||
|
"title": "CAS-00015-L7J9H1",
|
||||||
|
"incidentid": "d5b7b446-a7d8-eb11-aac5-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"755001\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value": "cfb7b446-a7d8-eb11-aac5-00224800be9c",
|
||||||
|
"pinswg_appealcasetype": 846040004,
|
||||||
|
"statuscode": 1,
|
||||||
|
"ticketnumber": "CAS-00016-Y9K9Q0",
|
||||||
|
"title": "CAS-00016-Y9K9Q0",
|
||||||
|
"incidentid": "cc6f93ea-bdd9-eb11-aac5-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"755216\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value": "243c0009-49da-eb11-aac5-00224800be9c",
|
||||||
|
"pinswg_appealcasetype": 846040004,
|
||||||
|
"statuscode": 1,
|
||||||
|
"ticketnumber": "CAS-00017-B8X7N0",
|
||||||
|
"title": "CAS-00017-B8X7N0",
|
||||||
|
"incidentid": "73895a1b-68dd-eb11-aac5-00224800be9c"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
export default(req, res) =>{
|
||||||
|
res.statusCode= 200;
|
||||||
|
res.json(
|
||||||
|
{
|
||||||
|
"@odata.context": "https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/$metadata#incidents(_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title)",
|
||||||
|
"@odata.count": "9",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"704047\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value@OData.Community.Display.V1.FormattedValue": "Bridgend CBC",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "customerid_account",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
|
||||||
|
"_customerid_value": "56e7ef63-7e64-eb11-aaba-00224800be9c",
|
||||||
|
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue": "Planning Appeal - S78",
|
||||||
|
"pinswg_appealcasetype": "846040000",
|
||||||
|
"statuscode@OData.Community.Display.V1.FormattedValue": "In Progress",
|
||||||
|
"statuscode": "1",
|
||||||
|
"ticketnumber": "CAS-00009-W8N6W4",
|
||||||
|
"title": "CAS-00009-W8N6W4",
|
||||||
|
"incidentid": "9919eac3-21af-eb11-aac3-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"704095\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value@OData.Community.Display.V1.FormattedValue": "Bridgend CBC",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "customerid_account",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
|
||||||
|
"_customerid_value": "56e7ef63-7e64-eb11-aaba-00224800be9c",
|
||||||
|
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue": "DNS",
|
||||||
|
"pinswg_appealcasetype": "846040011",
|
||||||
|
"statuscode@OData.Community.Display.V1.FormattedValue": "In Progress",
|
||||||
|
"statuscode": "1",
|
||||||
|
"ticketnumber": "CAS-00010-J9W6L5",
|
||||||
|
"title": "CAS-00010-J9W6L5",
|
||||||
|
"incidentid": "55f4fc74-33af-eb11-aac3-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"709250\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value@OData.Community.Display.V1.FormattedValue": "Zoe",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "customerid_account",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
|
||||||
|
"_customerid_value": "41fead24-29ba-eb11-aac4-00224800be9c",
|
||||||
|
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue": "Planning Conditions - S73 + S79",
|
||||||
|
"pinswg_appealcasetype": "846040001",
|
||||||
|
"statuscode@OData.Community.Display.V1.FormattedValue": "In Progress",
|
||||||
|
"statuscode": "1",
|
||||||
|
"ticketnumber": "CAS-00011-K1N0J8",
|
||||||
|
"title": "CAS-00011-K1N0J8",
|
||||||
|
"incidentid": "6bd04d33-29ba-eb11-aac4-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"710463\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value@OData.Community.Display.V1.FormattedValue": "Bridgend CBC",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "customerid_account",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
|
||||||
|
"_customerid_value": "56e7ef63-7e64-eb11-aaba-00224800be9c",
|
||||||
|
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue": "Planning Appeal - S78",
|
||||||
|
"pinswg_appealcasetype": "846040000",
|
||||||
|
"statuscode@OData.Community.Display.V1.FormattedValue": "In Progress",
|
||||||
|
"statuscode": "1",
|
||||||
|
"ticketnumber": "CAS-00012-D9W6S8",
|
||||||
|
"title": "CAS-00012-D9W6S8",
|
||||||
|
"incidentid": "b9c9cbe4-6abc-eb11-aac4-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"74609\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value@OData.Community.Display.V1.FormattedValue": "Barry Boys High School",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "customerid_account",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
|
||||||
|
"_customerid_value": "80d99a34-82ad-eb11-aac3-00224800be9c",
|
||||||
|
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue": "Listed Building and Convention S73 + S79",
|
||||||
|
"pinswg_appealcasetype": "846040025",
|
||||||
|
"statuscode@OData.Community.Display.V1.FormattedValue": "In Progress",
|
||||||
|
"statuscode": "1",
|
||||||
|
"ticketnumber": "CAS-00013-Z0B5Z9",
|
||||||
|
"title": "CAS-00013-Z0B5Z9",
|
||||||
|
"incidentid": "34071ec4-54d3-eb11-aac5-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"749764\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value@OData.Community.Display.V1.FormattedValue": "Bridgend CBC",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "customerid_account",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
|
||||||
|
"_customerid_value": "56e7ef63-7e64-eb11-aaba-00224800be9c",
|
||||||
|
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue": "Wayleave",
|
||||||
|
"pinswg_appealcasetype": "846040021",
|
||||||
|
"statuscode@OData.Community.Display.V1.FormattedValue": "In Progress",
|
||||||
|
"statuscode": "1",
|
||||||
|
"ticketnumber": "CAS-00014-S3L9B4",
|
||||||
|
"title": "CAS-00014-S3L9B4",
|
||||||
|
"incidentid": "2230700b-ebd7-eb11-aac5-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"750875\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value@OData.Community.Display.V1.FormattedValue": "test customer",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "customerid_contact",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "contact",
|
||||||
|
"_customerid_value": "cfb7b446-a7d8-eb11-aac5-00224800be9c",
|
||||||
|
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue": "Planning Appeal - S78",
|
||||||
|
"pinswg_appealcasetype": "846040000",
|
||||||
|
"statuscode@OData.Community.Display.V1.FormattedValue": "In Progress",
|
||||||
|
"statuscode": "1",
|
||||||
|
"ticketnumber": "CAS-00015-L7J9H1",
|
||||||
|
"title": "CAS-00015-L7J9H1",
|
||||||
|
"incidentid": "d5b7b446-a7d8-eb11-aac5-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"755001\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value@OData.Community.Display.V1.FormattedValue": "test customer",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "customerid_contact",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "contact",
|
||||||
|
"_customerid_value": "cfb7b446-a7d8-eb11-aac5-00224800be9c",
|
||||||
|
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue": "Householder Appeal (HAS)",
|
||||||
|
"pinswg_appealcasetype": "846040004",
|
||||||
|
"statuscode@OData.Community.Display.V1.FormattedValue": "In Progress",
|
||||||
|
"statuscode": "1",
|
||||||
|
"ticketnumber": "CAS-00016-Y9K9Q0",
|
||||||
|
"title": "CAS-00016-Y9K9Q0",
|
||||||
|
"incidentid": "cc6f93ea-bdd9-eb11-aac5-00224800be9c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@odata.etag": "W/\"755216\"",
|
||||||
|
"_accountid_value": null,
|
||||||
|
"_customerid_value@OData.Community.Display.V1.FormattedValue": "Caerphilly County Borough Council",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "customerid_account",
|
||||||
|
"_customerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
|
||||||
|
"_customerid_value": "243c0009-49da-eb11-aac5-00224800be9c",
|
||||||
|
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue": "Householder Appeal (HAS)",
|
||||||
|
"pinswg_appealcasetype": "846040004",
|
||||||
|
"statuscode@OData.Community.Display.V1.FormattedValue": "In Progress",
|
||||||
|
"statuscode": "1",
|
||||||
|
"ticketnumber": "CAS-00017-B8X7N0",
|
||||||
|
"title": "CAS-00017-B8X7N0",
|
||||||
|
"incidentid": "73895a1b-68dd-eb11-aac5-00224800be9c"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
)
|
||||||
|
};
|
||||||
+47
-29
@@ -14,6 +14,10 @@ import Cookies from "cookies";
|
|||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import useTranslation from "next-translate/useTranslation";
|
import useTranslation from "next-translate/useTranslation";
|
||||||
|
|
||||||
|
import { setSearch, getSearchObj } from "../store/search/action";
|
||||||
|
import { setSearchResults, getSearchResultsObj } from "../store/searchOutput/action";
|
||||||
|
import {getBasicSearch} from "../actions"
|
||||||
|
|
||||||
const Home = (props) => {
|
const Home = (props) => {
|
||||||
const { footerLinks, pages } = props;
|
const { footerLinks, pages } = props;
|
||||||
let { t, lang } = useTranslation();
|
let { t, lang } = useTranslation();
|
||||||
@@ -33,7 +37,7 @@ const Home = (props) => {
|
|||||||
<Header courseName={t("common:service-name")} />
|
<Header courseName={t("common:service-name")} />
|
||||||
<div className="govuk-width-container">
|
<div className="govuk-width-container">
|
||||||
<Banner />
|
<Banner />
|
||||||
<SearchResults />
|
<SearchResults searchString={props.search.searchString} searchResultsObj={props.searchResultsObj} />
|
||||||
</div>
|
</div>
|
||||||
<Footer footerLinks={footerLinks} />
|
<Footer footerLinks={footerLinks} />
|
||||||
</div>
|
</div>
|
||||||
@@ -41,38 +45,52 @@ const Home = (props) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getServerSideProps = wrapper.getServerSideProps (
|
||||||
|
store => async({ query, req, res }) =>
|
||||||
|
{
|
||||||
|
console.log('query-',query);
|
||||||
|
const searchResultsObj = await getBasicSearch(query.q) || null;
|
||||||
|
store.dispatch(setSearchResults(searchResultsObj));
|
||||||
|
store.dispatch(setSearch(query.q));
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
// export const getServerSideProps = wrapper.getServerSideProps(
|
// export const getServerSideProps = wrapper.getServerSideProps(
|
||||||
// async ({ locale, store, req, res }) => {
|
// async ({ locale, store, query, req, res }) => {
|
||||||
// const token = await getToken();
|
// // const token = await getToken();
|
||||||
// let accessToken = token.access_token;
|
// // let accessToken = token.access_token;
|
||||||
|
|
||||||
// const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
|
// // const apiRoot = process.browser ? window.API_ROOT : process.env.API_ROOT;
|
||||||
|
|
||||||
// const [pages, footerLinks, courseListContent] = await Promise.all([
|
// // const [pages, footerLinks, courseListContent] = await Promise.all([
|
||||||
// await getPages(accessToken, locale),
|
// // await getPages(accessToken, locale),
|
||||||
// await getFooterLinks(accessToken, locale),
|
// // await getFooterLinks(accessToken, locale),
|
||||||
// await getCourseList(accessToken, locale),
|
// // await getCourseList(accessToken, locale),
|
||||||
// ]);
|
// // ]);
|
||||||
// //const courseID = await getCourseID
|
// // //const courseID = await getCourseID
|
||||||
// store.dispatch(setApiRoot(apiRoot));
|
// // store.dispatch(setApiRoot(apiRoot));
|
||||||
// store.dispatch(setPages(pages));
|
// // store.dispatch(setPages(pages));
|
||||||
// store.dispatch(setFooterLinks(footerLinks));
|
// // store.dispatch(setFooterLinks(footerLinks));
|
||||||
// store.dispatch(setCourseListContent(courseListContent));
|
// // store.dispatch(setCourseListContent(courseListContent));
|
||||||
// }
|
// console.log(query);
|
||||||
|
// //store.dispatch(setSearch(query.search));
|
||||||
|
// }
|
||||||
// );
|
// );
|
||||||
|
|
||||||
// const mapStateToProps = (state) => {
|
const mapStateToProps = (state) => {
|
||||||
// //console.log(state);
|
console.log('mapstate',state);
|
||||||
|
|
||||||
// return {
|
return {
|
||||||
// apiroot: state.apiroot,
|
search: state.search,
|
||||||
// courseListContent: state.courseListContent.courseListContent,
|
searchResultsObj: state.searchResultsObj
|
||||||
// pages: state.pages.pages,
|
// // apiroot: state.apiroot,
|
||||||
// footerLinks: state.footerLinks.footerLinks,
|
// // courseListContent: state.courseListContent.courseListContent,
|
||||||
// regions: state.regions,
|
// // pages: state.pages.pages,
|
||||||
// sectors: state.sectors,
|
// // footerLinks: state.footerLinks.footerLinks,
|
||||||
// form: state.form,
|
// // regions: state.regions,
|
||||||
// };
|
// // sectors: state.sectors,
|
||||||
// };
|
// // form: state.form,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
export default Home; //connect(mapStateToProps)(Home);
|
export default connect(mapStateToProps)(Home);
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
const { createServer } = require('https');
|
||||||
|
const { parse } = require('url');
|
||||||
|
const { readFileSync } = require('fs');
|
||||||
|
const next = require('next');
|
||||||
|
|
||||||
|
const port = 3000;
|
||||||
|
const dev = process.env.NODE_ENV !== 'production';
|
||||||
|
const app = next({ dev });
|
||||||
|
const handle = app.getRequestHandler();
|
||||||
|
|
||||||
|
const httpsOptions = {
|
||||||
|
key: readFileSync('./certificates/privateKey.key'),
|
||||||
|
cert: readFileSync('./certificates/certificate.crt')
|
||||||
|
};
|
||||||
|
|
||||||
|
app.prepare()
|
||||||
|
.then(() => {
|
||||||
|
createServer(httpsOptions, (req, res) => {
|
||||||
|
const parsedUrl = parse(req.url, true);
|
||||||
|
handle(req, res, parsedUrl);
|
||||||
|
}).listen(port, err => {
|
||||||
|
if (err) throw err;
|
||||||
|
console.log(`> Ready on https://localhost:${port}`);
|
||||||
|
})
|
||||||
|
});
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
export const searchActionTypes = {
|
||||||
|
GETSEARCH: "GETSEARCH",
|
||||||
|
SETSEARCH: "SETSEARCH",
|
||||||
|
UPDATESEARCH: "UPDATESEARCH",
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getSearchObj = () => (dispatch) => {
|
||||||
|
return dispatch({
|
||||||
|
type: searchActionTypes.GETSEARCH,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const setSearch = (search) => (dispatch) => {
|
||||||
|
return dispatch({
|
||||||
|
type: searchActionTypes.SETSEARCH,
|
||||||
|
searchString: search,
|
||||||
|
});
|
||||||
|
};
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import { searchActionTypes } from "./action";
|
||||||
|
|
||||||
|
const searchInitialState = {
|
||||||
|
search: {},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function reducer(state = searchInitialState, action) {
|
||||||
|
switch (action.type) {
|
||||||
|
case searchActionTypes.SETSEARCH:
|
||||||
|
return {
|
||||||
|
searchString: action.searchString,
|
||||||
|
};
|
||||||
|
default:
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
export const searchResultsActionTypes = {
|
||||||
|
GETSEARCHRESULTS: "GETSEARCHRESULTS",
|
||||||
|
SETSEARCHRESULTS: "SETSEARCHRESULTS",
|
||||||
|
UPDATESEARCHRESULTS: "UPDATESEARCHRESULTS",
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getSearchResultshObj = () => (dispatch) => {
|
||||||
|
return dispatch({
|
||||||
|
type: searchResultsActionTypes.GETSEARCHRESULTS,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const setSearchResults = (searchResults) => (dispatch) => {
|
||||||
|
return dispatch({
|
||||||
|
type: searchResultsActionTypes.SETSEARCHRESULTS,
|
||||||
|
searchResultsObj: searchResults,
|
||||||
|
});
|
||||||
|
};
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import { searchResultsActionTypes } from "./action";
|
||||||
|
|
||||||
|
const searchResultsInitialState = {
|
||||||
|
searchResultsObj: {},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function reducer(state = searchResultsInitialState, action) {
|
||||||
|
switch (action.type) {
|
||||||
|
case searchResultsActionTypes.SETSEARCHRESULTS:
|
||||||
|
return {
|
||||||
|
searchResultsObj: action.searchResultsObj,
|
||||||
|
};
|
||||||
|
default:
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
}
|
||||||
+68
-66
@@ -2,94 +2,96 @@ import { createStore, applyMiddleware, combineReducers } from "redux";
|
|||||||
import { createWrapper, HYDRATE } from "next-redux-wrapper";
|
import { createWrapper, HYDRATE } from "next-redux-wrapper";
|
||||||
import thunkMiddleware from "redux-thunk";
|
import thunkMiddleware from "redux-thunk";
|
||||||
import progress from "./progress/reducer";
|
import progress from "./progress/reducer";
|
||||||
|
import search from "./search/reducer";
|
||||||
|
import searchResultsObj from "./searchOutput/reducer";
|
||||||
import { reducer as formReducer } from "redux-form";
|
import { reducer as formReducer } from "redux-form";
|
||||||
import autoMergeLevel2 from "redux-persist/lib/stateReconciler/autoMergeLevel2";
|
import autoMergeLevel2 from "redux-persist/lib/stateReconciler/autoMergeLevel2";
|
||||||
|
|
||||||
//COMBINING ALL REDUCERS
|
//COMBINING ALL REDUCERS
|
||||||
const combinedReducer = combineReducers({
|
const combinedReducer = combineReducers({
|
||||||
progress,
|
progress,
|
||||||
|
search,
|
||||||
|
searchResultsObj
|
||||||
});
|
});
|
||||||
|
|
||||||
const reducer = (state = { progress: "{}" }, action) => {
|
const reducer = (state = { progress: "{}" }, action) => {
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case HYDRATE:
|
case HYDRATE:
|
||||||
//if (action.payload.progress === '{}') delete action.payload.progress;
|
//if (action.payload.progress === '{}') delete action.payload.progress;
|
||||||
return { ...state, ...action.payload };
|
return { ...state, ...action.payload };
|
||||||
case "SERVER_ACTION":
|
case "SERVER_ACTION":
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
server: {
|
server: {
|
||||||
...state.server,
|
...state.server,
|
||||||
progress: action.payload,
|
progress: action.payload,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
case "CLIENT_ACTION":
|
case "CLIENT_ACTION":
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
client: {
|
client: {
|
||||||
...state.client,
|
...state.client,
|
||||||
progress: action.payload,
|
progress: action.payload,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
case "GET_ITEMS":
|
case "GET_ITEMS":
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
items: action.payload,
|
items: action.payload,
|
||||||
loading: false,
|
loading: false,
|
||||||
};
|
};
|
||||||
case "SET_ITEMS":
|
case "SET_ITEMS":
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
items: action.payload,
|
items: action.payload,
|
||||||
loading: false,
|
loading: false,
|
||||||
};
|
};
|
||||||
default:
|
default:
|
||||||
return combinedReducer(state, action);
|
return combinedReducer(state, action);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// BINDING MIDDLEWARE
|
// BINDING MIDDLEWARE
|
||||||
const bindMiddleware = (middleware) => {
|
const bindMiddleware = (middleware) => {
|
||||||
if (process.env.NODE_ENV !== "production") {
|
if (process.env.NODE_ENV !== "production") {
|
||||||
const { composeWithDevTools } = require("redux-devtools-extension");
|
const { composeWithDevTools } = require("redux-devtools-extension");
|
||||||
return composeWithDevTools(applyMiddleware(...middleware));
|
return composeWithDevTools(applyMiddleware(...middleware));
|
||||||
}
|
}
|
||||||
return applyMiddleware(...middleware);
|
return applyMiddleware(...middleware);
|
||||||
};
|
};
|
||||||
|
|
||||||
const makeStore = ({ isServer }) => {
|
const makeStore = ({ isServer }) => {
|
||||||
if (isServer) {
|
if (isServer) {
|
||||||
//If it's on server side, create a store
|
//If it's on server side, create a store
|
||||||
return createStore(reducer, bindMiddleware([thunkMiddleware]));
|
return createStore(reducer, bindMiddleware([thunkMiddleware]));
|
||||||
} else {
|
} else {
|
||||||
//If it's on client side, create a store which will persist
|
//If it's on client side, create a store which will persist
|
||||||
const { persistStore, persistReducer } = require("redux-persist");
|
const { persistStore, persistReducer } = require("redux-persist");
|
||||||
const storage = require("redux-persist/lib/storage").default;
|
const storage = require("redux-persist/lib/storage").default;
|
||||||
|
|
||||||
const persistConfig = {
|
const persistConfig = {
|
||||||
key: "nextjs",
|
key: "nextjs",
|
||||||
whitelist: [
|
whitelist: ["progress,search,searchResults"],
|
||||||
"progress"
|
storage,
|
||||||
],
|
stateReconciler: autoMergeLevel2, // if needed, use a safer storage
|
||||||
storage,
|
};
|
||||||
stateReconciler: autoMergeLevel2, // if needed, use a safer storage
|
|
||||||
};
|
|
||||||
|
|
||||||
const persistedReducer = persistReducer(persistConfig, reducer); // Create a new reducer with our existing reducer
|
const persistedReducer = persistReducer(persistConfig, reducer); // Create a new reducer with our existing reducer
|
||||||
|
|
||||||
const store = createStore(
|
const store = createStore(
|
||||||
persistedReducer,
|
persistedReducer,
|
||||||
bindMiddleware([thunkMiddleware])
|
bindMiddleware([thunkMiddleware])
|
||||||
); // Creating the store again
|
); // Creating the store again
|
||||||
|
|
||||||
store.__persistor = persistStore(store); // This creates a persistor object & push that persisted object to .__persistor, so that we can avail the persistability feature
|
store.__persistor = persistStore(store); // This creates a persistor object & push that persisted object to .__persistor, so that we can avail the persistability feature
|
||||||
|
|
||||||
return store;
|
return store;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
export const setClientState = (clientState) => ({
|
export const setClientState = (clientState) => ({
|
||||||
type: SET_CLIENT_STATE,
|
type: SET_CLIENT_STATE,
|
||||||
payload: clientState,
|
payload: clientState,
|
||||||
});
|
});
|
||||||
// Export the wrapper & wrap the pages/_app.js with this wrapper only
|
// Export the wrapper & wrap the pages/_app.js with this wrapper only
|
||||||
export const wrapper = createWrapper(makeStore);
|
export const wrapper = createWrapper(makeStore);
|
||||||
|
|||||||
Reference in New Issue
Block a user