added crm driven form via oauth
This commit is contained in:
+109
-27
@@ -13,6 +13,10 @@ if (process.browser) {
|
|||||||
BASE_URL = process.env.API_ROOT || `http://localhost:${port}`;
|
BASE_URL = process.env.API_ROOT || `http://localhost:${port}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const WEBAPI_URL = "https://devcrm2016.llcdt.gov.wales/DVPINS";
|
||||||
|
|
||||||
|
const API_PATH = "/api/data/v8.2/";
|
||||||
|
|
||||||
const agent = new https.Agent({
|
const agent = new https.Agent({
|
||||||
rejectUnauthorized: false,
|
rejectUnauthorized: false,
|
||||||
});
|
});
|
||||||
@@ -24,11 +28,8 @@ const crmHeaders = {
|
|||||||
"OData-Version": "4.0",
|
"OData-Version": "4.0",
|
||||||
"Accept": "application/json",
|
"Accept": "application/json",
|
||||||
"Prefer": 'odata.include-annotations="*"',
|
"Prefer": 'odata.include-annotations="*"',
|
||||||
agent,
|
"Authorization":
|
||||||
},
|
"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IlVXelVaa0U3OEx0NVBGRkJ0LV9seVdoMjdjTSIsImtpZCI6IlVXelVaa0U3OEx0NVBGRkJ0LV9seVdoMjdjTSJ9.eyJhdWQiOiJodHRwczovL2RldmNybTIwMTYubGxjZHQuZ292LndhbGVzLyIsImlzcyI6Imh0dHA6Ly9mcy50ZXN0Lmdvdi53YWxlcy9hZGZzL3NlcnZpY2VzL3RydXN0IiwiaWF0IjoxNjMxMDAwMjUxLCJuYmYiOjE2MzEwMDAyNTEsImV4cCI6MTYzMTAyOTA1MSwidXBuIjpbIlJvYmVydC5Cb25kQHRlc3QuZ292LndhbGVzIiwicm9iZXJ0LmJvbmRAdGVzdC5nb3Yud2FsZXMiXSwicHJpbWFyeXNpZCI6IlMtMS01LTIxLTE4MDA4NDIwNzYtMjQ1NTYwNjU5LTQyMTU3NzU0NjktMTY2MjgiLCJ1bmlxdWVfbmFtZSI6IlhNXFxCb25kUiIsImFwcHR5cGUiOiJQdWJsaWMiLCJhcHBpZCI6IjQyN2ZhNzljLWI1ZmMtNDJhZC04M2Q0LTQxMGIwMzk0OGFiNiIsImF1dGhtZXRob2QiOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvYXV0aGVudGljYXRpb25tZXRob2Qvd2luZG93cyIsImF1dGhfdGltZSI6IjIwMjEtMDktMDdUMDc6Mzc6MjIuMzM3WiIsInZlciI6IjEuMCJ9.L8husDSMXMtZxpxKDS0cpPplG6xoHQjSdd17qMfgKZaEUPUOKPy4rznxNwAMp7WxussNeK__nOKE9vHNgc5Nk4lzxbvcYy3jeE7bLWHsB5UYFa1FIrPZpzuEdPIgoWAzhTa4k-anzsA0YNMHpV6QHT14F9wkBTsT8MUtpT2BiNfbflQQ_xtQavp_pCww-1-guysM6USv5NJkuvrHpXjA5_HpaGbprLI8Or3Htjsdgq9c4uCxfjoAGZsjUmtvaIL-jQnkR6-ndYezo12tes7ql2iV4iZT4-fvcib8sUdzHkgFvNmyzMblhogUo8QciTBcvF7-syCfNzLG2vvWSZJ9_g",
|
||||||
auth: {
|
|
||||||
username: "xm\bondr",
|
|
||||||
password: "!Sky9fish1972",
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -39,9 +40,17 @@ export const getBasicSearch = (searchString) => {
|
|||||||
axios
|
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://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://jsonplaceholder.typicode.com/todos/1",{proxy:{protocol: 'http',host:'lon3.sme.zscloud.net',port: 80}})
|
||||||
.get(BASE_URL + "/api/searchresults2", {
|
// .get(BASE_URL + "/api/searchresults2", {
|
||||||
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
|
// httpsAgent: new https.Agent({ rejectUnauthorized: false }),
|
||||||
})
|
// })
|
||||||
|
.get(
|
||||||
|
WEBAPI_URL +
|
||||||
|
API_PATH +
|
||||||
|
"incidents?$select=_accountid_value,_customerid_value,pinswg_appealcasetype,statuscode,ticketnumber,title&$filter=contains(title, '" +
|
||||||
|
searchString +
|
||||||
|
"')&$count=true",
|
||||||
|
crmHeaders
|
||||||
|
)
|
||||||
.then((res) => res.data)
|
.then((res) => res.data)
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
console.log("thiserror", error);
|
console.log("thiserror", error);
|
||||||
@@ -49,6 +58,24 @@ export const getBasicSearch = (searchString) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getBasicSearchDetails = (appealType, caseReference) => {
|
||||||
|
return axios
|
||||||
|
.get(
|
||||||
|
WEBAPI_URL +
|
||||||
|
API_PATH +
|
||||||
|
"/pinswg_ " +
|
||||||
|
appealType +
|
||||||
|
"?$filter=pinswg_name eq '" +
|
||||||
|
caseReference +
|
||||||
|
"'&$count=true",
|
||||||
|
crmHeaders
|
||||||
|
)
|
||||||
|
.then((res) => res.data)
|
||||||
|
.catch((error) => {
|
||||||
|
console.log("thiserror", error);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
export const getFormData = (whichForm) => {
|
export const getFormData = (whichForm) => {
|
||||||
console.log("got to axios", whichForm);
|
console.log("got to axios", whichForm);
|
||||||
console.log("api_root: ", BASE_URL);
|
console.log("api_root: ", BASE_URL);
|
||||||
@@ -62,9 +89,18 @@ export const getFormData = (whichForm) => {
|
|||||||
//.get("api/appealforms/pinswg_harbourrevisionorder", {
|
//.get("api/appealforms/pinswg_harbourrevisionorder", {
|
||||||
//.get("api/appealforms/pinswg_planningappeals78", {
|
//.get("api/appealforms/pinswg_planningappeals78", {
|
||||||
//.get(api/appealforms/pinswg_householderappealhas", {
|
//.get(api/appealforms/pinswg_householderappealhas", {
|
||||||
.get(BASE_URL + "/api/appealforms/pinswg_" + whichForm, {
|
// .get(BASE_URL + "/api/appealforms/pinswg_" + whichForm, {
|
||||||
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
|
// httpsAgent: new https.Agent({ rejectUnauthorized: false }),
|
||||||
})
|
// })
|
||||||
|
|
||||||
|
.get(
|
||||||
|
WEBAPI_URL +
|
||||||
|
API_PATH +
|
||||||
|
"systemforms?$select=formid,name,formxml,type,objecttypecode&$filter=(objecttypecode%20eq%20%27pinswg_" +
|
||||||
|
whichForm +
|
||||||
|
"%27and%20type%20eq%202)&$count=true",
|
||||||
|
crmHeaders
|
||||||
|
)
|
||||||
.then((res) => res.data)
|
.then((res) => res.data)
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
console.log("thiserror", error);
|
console.log("thiserror", error);
|
||||||
@@ -72,19 +108,59 @@ export const getFormData = (whichForm) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getAppealsTypes = () => {
|
export const getMandatoryFields = (whichForm) => {
|
||||||
console.log("got to axios: appeal types");
|
|
||||||
console.log("api_root: ", BASE_URL);
|
|
||||||
return axios
|
return axios
|
||||||
.get(BASE_URL + "/api/lookups/pinswg_appealcasetype", {
|
.get(
|
||||||
httpsAgent: new https.Agent({ rejectUnauthorized: false }),
|
WEBAPI_URL +
|
||||||
})
|
API_PATH +
|
||||||
|
"EntityDefinitions(LogicalName='pinswg_" +
|
||||||
|
whichForm +
|
||||||
|
"')/Attributes?$count=true&$select=LogicalName,RequiredLevel",
|
||||||
|
crmHeaders
|
||||||
|
)
|
||||||
.then((res) => res.data)
|
.then((res) => res.data)
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
console.log("thiserror", error);
|
console.log("thiserror", error);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getPickLists = (whichForm) => {
|
||||||
|
return axios
|
||||||
|
.get(
|
||||||
|
WEBAPI_URL +
|
||||||
|
API_PATH +
|
||||||
|
"EntityDefinitions(LogicalName='pinswg_" +
|
||||||
|
whichForm +
|
||||||
|
"')/Attributes/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=OptionSet,GlobalOptionSet&$count=true",
|
||||||
|
crmHeaders
|
||||||
|
)
|
||||||
|
.then((res) => res.data)
|
||||||
|
.catch((error) => {
|
||||||
|
console.log("thiserror", error);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getAppealsTypes = () => {
|
||||||
|
console.log("got to axios: appeal types");
|
||||||
|
console.log("api_root: ", BASE_URL);
|
||||||
|
return (
|
||||||
|
axios
|
||||||
|
// .get(BASE_URL + "/api/lookups/pinswg_appealcasetype", {
|
||||||
|
// httpsAgent: new https.Agent({ rejectUnauthorized: false }),
|
||||||
|
// })
|
||||||
|
.get(
|
||||||
|
WEBAPI_URL +
|
||||||
|
API_PATH +
|
||||||
|
"stringmaps?$filter=attributename%20eq%20%27pinswg_appealcasetype%27&$count=true&$select=value,stringmapid,organizationid,attributevalue",
|
||||||
|
crmHeaders
|
||||||
|
)
|
||||||
|
.then((res) => res.data)
|
||||||
|
.catch((error) => {
|
||||||
|
console.log("thiserror", error);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
export const getBasicSearch2 = (searchString) => {
|
export const getBasicSearch2 = (searchString) => {
|
||||||
var req = new XMLHttpRequest();
|
var req = new XMLHttpRequest();
|
||||||
req.open(
|
req.open(
|
||||||
@@ -189,17 +265,23 @@ export const getAppealTypeDetail = (caseReference, appealcasetype) => {
|
|||||||
|
|
||||||
export const getLPA = () => {
|
export const getLPA = () => {
|
||||||
console.log("api_root: ", BASE_URL);
|
console.log("api_root: ", BASE_URL);
|
||||||
return axios
|
return (
|
||||||
|
axios
|
||||||
|
|
||||||
.get(
|
// .get(
|
||||||
BASE_URL + "/api/lookups/pinswg_lpa",
|
// BASE_URL + "/api/lookups/pinswg_lpa",
|
||||||
//.get("https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/accounts?$select=name",
|
// //.get("https://devcrm2016.llcdt.gov.wales/DVPINS/api/data/v8.2/accounts?$select=name",
|
||||||
{ httpsAgent: new https.Agent({ rejectUnauthorized: false }) }
|
// { httpsAgent: new https.Agent({ rejectUnauthorized: false }) }
|
||||||
)
|
// )
|
||||||
.then((res) => res.data)
|
.get(
|
||||||
.catch((error) => {
|
WEBAPI_URL + API_PATH + "accounts?$count=true&$select=name",
|
||||||
console.log("thi serror", error);
|
crmHeaders
|
||||||
});
|
)
|
||||||
|
.then((res) => res.data)
|
||||||
|
.catch((error) => {
|
||||||
|
console.log("thi serror", error);
|
||||||
|
})
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getPersonalAccount = () => {
|
export const getPersonalAccount = () => {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import DatePicker from "react-datepicker";
|
|||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import "react-datepicker/dist/react-datepicker.css";
|
import "react-datepicker/dist/react-datepicker.css";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
|
import jsonpath from "jsonpath";
|
||||||
|
|
||||||
const RenderTextfield = ({
|
const RenderTextfield = ({
|
||||||
id,
|
id,
|
||||||
@@ -356,35 +357,17 @@ export function YesNofield(props) {
|
|||||||
|
|
||||||
const RenderPickList = ({
|
const RenderPickList = ({
|
||||||
datafieldname,
|
datafieldname,
|
||||||
|
picklistData,
|
||||||
name,
|
name,
|
||||||
label,
|
label,
|
||||||
input,
|
input,
|
||||||
meta: { touched, errorStr },
|
meta: { touched, errorStr },
|
||||||
}) => {
|
}) => {
|
||||||
const fetcher = (url) => fetch(url).then((res) => res.json());
|
var dropdownObj = jsonpath.query(
|
||||||
|
picklistData,
|
||||||
const { data, error } = useSWR("/api/lookups/" + datafieldname, fetcher);
|
"$..value[?(@.LogicalName=='" + datafieldname + "')]..Options"
|
||||||
if (error)
|
);
|
||||||
return (
|
dropdownObj = dropdownObj[0];
|
||||||
<div className="govuk-form-group">
|
|
||||||
<label className="govuk-label govuk-body-m" htmlFor={name}>
|
|
||||||
{label}
|
|
||||||
</label>
|
|
||||||
<select className="govuk-select" id={name} name={name}>
|
|
||||||
<option value="">empty</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
if (!data)
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<div className="govuk-form-group">{label} loading...</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
//console.log(JSON.stringify(data.GlobalOptionSet.Options));
|
|
||||||
|
|
||||||
const dropdownObj = data.GlobalOptionSet.Options;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<select {...input} className="govuk-select " id={name} name={name}>
|
<select {...input} className="govuk-select " id={name} name={name}>
|
||||||
@@ -394,9 +377,8 @@ const RenderPickList = ({
|
|||||||
<option
|
<option
|
||||||
key={key}
|
key={key}
|
||||||
value={
|
value={
|
||||||
dropdownObj[key].Label.LocalizedLabels[0].value
|
dropdownObj[key].Label.LocalizedLabels[0].Label
|
||||||
}
|
}
|
||||||
// value={dropdownObj[key].Label.LocalizedLabels[0].MetadataId}
|
|
||||||
>
|
>
|
||||||
{dropdownObj[key].Label.LocalizedLabels[0].Label}
|
{dropdownObj[key].Label.LocalizedLabels[0].Label}
|
||||||
</option>
|
</option>
|
||||||
@@ -421,6 +403,7 @@ export function PickList(props) {
|
|||||||
name={props.name}
|
name={props.name}
|
||||||
component={RenderPickList}
|
component={RenderPickList}
|
||||||
datafieldname={datafieldname}
|
datafieldname={datafieldname}
|
||||||
|
picklistData={props.picklistData}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -56,44 +56,48 @@ let BuildCheckRow = (props) => {
|
|||||||
rowXML[key].outerHTML,
|
rowXML[key].outerHTML,
|
||||||
"text/xml"
|
"text/xml"
|
||||||
);
|
);
|
||||||
var rows = xpath.select("//label/@description", doc);
|
if (_.isEmpty(rowXML[key].innerHTML)) {
|
||||||
var fieldtype = xpath.select("//@classid", doc);
|
("");
|
||||||
var datafieldname = xpath.select("//@datafieldname", doc);
|
} else {
|
||||||
|
var rows = xpath.select("//label/@description", doc);
|
||||||
|
var fieldtype = xpath.select("//@classid", doc);
|
||||||
|
var datafieldname = xpath.select("//@datafieldname", doc);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="govuk-summary-list__row" key={key}>
|
<div className="govuk-summary-list__row" key={key}>
|
||||||
<dt className="govuk-summary-list__key">
|
<dt className="govuk-summary-list__key">
|
||||||
{rows[0].value}
|
{rows[0].value}
|
||||||
</dt>
|
</dt>
|
||||||
<dd className="govuk-summary-list__value">
|
<dd className="govuk-summary-list__value">
|
||||||
{fieldtype[0].value ==
|
{fieldtype[0].value ==
|
||||||
"{5B773807-9FB2-42db-97C3-7A91EFF8ADFF}"
|
"{5B773807-9FB2-42db-97C3-7A91EFF8ADFF}"
|
||||||
? formatDate(
|
? formatDate(
|
||||||
props.props.form["appealForm"].values[
|
props.props.form["appealForm"].values[
|
||||||
|
datafieldname[0].value
|
||||||
|
]
|
||||||
|
)
|
||||||
|
: props.props.form["appealForm"].values[
|
||||||
datafieldname[0].value
|
datafieldname[0].value
|
||||||
]
|
]}
|
||||||
)
|
</dd>
|
||||||
: props.props.form["appealForm"].values[
|
<dd className="govuk-summary-list__actions">
|
||||||
datafieldname[0].value
|
<a
|
||||||
]}
|
className="govuk-link"
|
||||||
</dd>
|
href="#"
|
||||||
<dd className="govuk-summary-list__actions">
|
onClick={() => {
|
||||||
<a
|
updateCurrentSection(whichSection);
|
||||||
className="govuk-link"
|
}}
|
||||||
href="#"
|
>
|
||||||
onClick={() => {
|
Change
|
||||||
updateCurrentSection(whichSection);
|
<span className="govuk-visually-hidden">
|
||||||
}}
|
{" "}
|
||||||
>
|
name
|
||||||
Change
|
</span>
|
||||||
<span className="govuk-visually-hidden">
|
</a>
|
||||||
{" "}
|
</dd>
|
||||||
name
|
</div>
|
||||||
</span>
|
);
|
||||||
</a>
|
}
|
||||||
</dd>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
})}
|
})}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ export default function BuildField(props) {
|
|||||||
name={props.datafieldname}
|
name={props.datafieldname}
|
||||||
label={props.label}
|
label={props.label}
|
||||||
datafieldname={props.datafieldname}
|
datafieldname={props.datafieldname}
|
||||||
|
picklistData={props.picklistData}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
import _ from "lodash";
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import useTranslation from "next-translate/useTranslation";
|
import useTranslation from "next-translate/useTranslation";
|
||||||
import xpath from "xpath";
|
import xpath from "xpath";
|
||||||
@@ -21,18 +22,25 @@ export default function BuildRow(props) {
|
|||||||
rowXML[key].outerHTML,
|
rowXML[key].outerHTML,
|
||||||
"text/xml"
|
"text/xml"
|
||||||
);
|
);
|
||||||
var rows = xpath.select("//label/@description", doc);
|
if (_.isEmpty(rowXML[key].innerHTML)) {
|
||||||
var fieldtype = xpath.select("//@classid", doc);
|
("");
|
||||||
var datafieldname = xpath.select("//@datafieldname", doc);
|
} else {
|
||||||
return (
|
var rows = xpath.select("//label/@description", doc);
|
||||||
<BuildField
|
var fieldtype = xpath.select("//@classid", doc);
|
||||||
fieldType={fieldtype[0].value}
|
var datafieldname = xpath.select("//@datafieldname", doc);
|
||||||
label={rows[0].value}
|
return (
|
||||||
datafieldname={datafieldname[0].value}
|
<BuildField
|
||||||
key={key}
|
fieldType={fieldtype[0].value}
|
||||||
props={props}
|
label={rows[0].value}
|
||||||
/>
|
datafieldname={datafieldname[0].value}
|
||||||
);
|
key={key}
|
||||||
|
props={props}
|
||||||
|
picklistData={
|
||||||
|
props.props.props.formData.pickListData
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -33,11 +33,9 @@ let CreateCase = (props) => {
|
|||||||
? [{}]
|
? [{}]
|
||||||
: _.isEmpty(props.appealType.appealTypeOptions)
|
: _.isEmpty(props.appealType.appealTypeOptions)
|
||||||
? [{}]
|
? [{}]
|
||||||
: _.isEmpty(props.appealType.appealTypeOptions.GlobalOptionSet)
|
: _.isEmpty(props.appealType.appealTypeOptions.value)
|
||||||
? [{}]
|
? [{}]
|
||||||
: _.isEmpty(props.appealType.appealTypeOptions.GlobalOptionSet.Options)
|
: props.appealType.appealTypeOptions.value;
|
||||||
? [{}]
|
|
||||||
: props.appealType.appealTypeOptions.GlobalOptionSet.Options;
|
|
||||||
|
|
||||||
let lpaOptionsObj = _.isEmpty(props)
|
let lpaOptionsObj = _.isEmpty(props)
|
||||||
? [{}]
|
? [{}]
|
||||||
@@ -158,51 +156,34 @@ let CreateCase = (props) => {
|
|||||||
<option
|
<option
|
||||||
key={key}
|
key={key}
|
||||||
value={
|
value={
|
||||||
_.isEmpty(
|
_.isEmpty(optionsObj[key])
|
||||||
optionsObj[key].Label
|
|
||||||
)
|
|
||||||
? ""
|
? ""
|
||||||
: _.isEmpty(
|
: _.isEmpty(
|
||||||
optionsObj[key]
|
optionsObj[key]
|
||||||
.Label
|
|
||||||
.LocalizedLabels
|
|
||||||
)
|
)
|
||||||
? ""
|
? ""
|
||||||
: _.isEmpty(
|
: _.isEmpty(
|
||||||
optionsObj[key]
|
optionsObj[key]
|
||||||
.Label
|
.value
|
||||||
.LocalizedLabels[0]
|
|
||||||
.Label
|
|
||||||
)
|
)
|
||||||
? ""
|
? ""
|
||||||
: optionsObj[
|
: optionsObj[key].value
|
||||||
key
|
.replace(
|
||||||
].Label.LocalizedLabels[0].Label.replace(
|
/[\s\-\+\(\)\,]/g,
|
||||||
/[\s\-\+\(\)\,]/g,
|
""
|
||||||
""
|
)
|
||||||
).toLowerCase()
|
.toLowerCase()
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{_.isEmpty(optionsObj[key])
|
{_.isEmpty(optionsObj[key])
|
||||||
? ""
|
? ""
|
||||||
: _.isEmpty(
|
: _.isEmpty(optionsObj[key])
|
||||||
optionsObj[key].Label
|
|
||||||
)
|
|
||||||
? ""
|
? ""
|
||||||
: _.isEmpty(
|
: _.isEmpty(
|
||||||
optionsObj[key].Label
|
optionsObj[key].value
|
||||||
.LocalizedLabels
|
|
||||||
)
|
)
|
||||||
? ""
|
? ""
|
||||||
: _.isEmpty(
|
: optionsObj[key].value}
|
||||||
optionsObj[key].Label
|
|
||||||
.LocalizedLabels[0]
|
|
||||||
.Label
|
|
||||||
)
|
|
||||||
? ""
|
|
||||||
: optionsObj[key].Label
|
|
||||||
.LocalizedLabels[0]
|
|
||||||
.Label}
|
|
||||||
</option>
|
</option>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
|||||||
@@ -22,7 +22,13 @@ import {
|
|||||||
setCaseReference,
|
setCaseReference,
|
||||||
} from "../../store/appealType/action";
|
} from "../../store/appealType/action";
|
||||||
import { setForm, getFormObj } from "../../store/formData/action";
|
import { setForm, getFormObj } from "../../store/formData/action";
|
||||||
import { getFormData, getAppealsTypes, createCase } from "../../actions";
|
import {
|
||||||
|
getFormData,
|
||||||
|
getAppealsTypes,
|
||||||
|
getMandatoryFields,
|
||||||
|
createCase,
|
||||||
|
getPickLists,
|
||||||
|
} from "../../actions";
|
||||||
|
|
||||||
import xpath from "xpath";
|
import xpath from "xpath";
|
||||||
import { reduxForm, FormName } from "redux-form";
|
import { reduxForm, FormName } from "redux-form";
|
||||||
@@ -56,12 +62,9 @@ let Home = (props) => {
|
|||||||
|
|
||||||
var tabs = xpath.select("//form/tabs/tab[*]", doc);
|
var tabs = xpath.select("//form/tabs/tab[*]", doc);
|
||||||
|
|
||||||
let optionsStr = props.appealType.appealTypeOptions.GlobalOptionSet.Options;
|
let optionsStr = props.appealType.appealTypeOptions.value;
|
||||||
|
|
||||||
let selectedObj = jsonpath.query(
|
let selectedObj = jsonpath.query(optionsStr, "$..value");
|
||||||
optionsStr,
|
|
||||||
"$..LocalizedLabels[?(@.Label)].Label"
|
|
||||||
);
|
|
||||||
|
|
||||||
//let optionsTitleObj = [];
|
//let optionsTitleObj = [];
|
||||||
|
|
||||||
@@ -154,8 +157,15 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
(store) =>
|
(store) =>
|
||||||
async ({ query, req, res }) => {
|
async ({ query, req, res }) => {
|
||||||
//console.log("the query", query);
|
//console.log("the query", query);
|
||||||
const [appealTypeData, formdata] = await Promise.all([
|
const [
|
||||||
|
appealTypeData,
|
||||||
|
mandatoryFieldsData,
|
||||||
|
pickListData,
|
||||||
|
formdata,
|
||||||
|
] = await Promise.all([
|
||||||
await getAppealsTypes(),
|
await getAppealsTypes(),
|
||||||
|
await getMandatoryFields(query.appealtypes),
|
||||||
|
await getPickLists(query.appealtypes),
|
||||||
await getFormData(query.appealtypes),
|
await getFormData(query.appealtypes),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -166,7 +176,7 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
xmlStr = xmlStr.replace(/\\"/g, "");
|
xmlStr = xmlStr.replace(/\\"/g, "");
|
||||||
store.dispatch(setAppealTypeID(query.appealtypes));
|
store.dispatch(setAppealTypeID(query.appealtypes));
|
||||||
store.dispatch(setCaseReference(caseReference));
|
store.dispatch(setCaseReference(caseReference));
|
||||||
store.dispatch(setForm(xmlStr));
|
store.dispatch(setForm(xmlStr, mandatoryFieldsData, pickListData));
|
||||||
store.dispatch(setAppealType(appealTypeData));
|
store.dispatch(setAppealType(appealTypeData));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import {
|
|||||||
setSearchResults,
|
setSearchResults,
|
||||||
getSearchResultsObj,
|
getSearchResultsObj,
|
||||||
} from "../store/searchOutput/action";
|
} from "../store/searchOutput/action";
|
||||||
import { getBasicSearch } from "../actions";
|
import { getBasicSearch, getBasicSearchDetails } from "../actions";
|
||||||
|
|
||||||
const Home = (props) => {
|
const Home = (props) => {
|
||||||
const { footerLinks, pages } = props;
|
const { footerLinks, pages } = props;
|
||||||
@@ -57,8 +57,13 @@ export const getServerSideProps = wrapper.getServerSideProps(
|
|||||||
(store) =>
|
(store) =>
|
||||||
async ({ query, req, res }) => {
|
async ({ query, req, res }) => {
|
||||||
console.log("query-", query);
|
console.log("query-", query);
|
||||||
const searchResultsObj = (await getBasicSearch(query.q)) || null;
|
const [searchResultsObj, searchDetailsObj] = await Promise.all(
|
||||||
|
await getBasicSearch(query.q),
|
||||||
|
await getBasicSearchDetails(query.d)
|
||||||
|
);
|
||||||
|
|
||||||
store.dispatch(setSearchResults(searchResultsObj));
|
store.dispatch(setSearchResults(searchResultsObj));
|
||||||
|
store.dispatch(setSearchDetails(searchDetailsObj));
|
||||||
store.dispatch(setSearch(query.q));
|
store.dispatch(setSearch(query.q));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -10,9 +10,12 @@ export const getFormObj = () => (dispatch) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const setForm = (formData) => (dispatch) => {
|
export const setForm =
|
||||||
return dispatch({
|
(formData, mandatoryFieldsData, pickListData) => (dispatch) => {
|
||||||
type: formDataActionTypes.SETFORMDATA,
|
return dispatch({
|
||||||
formData: formData,
|
type: formDataActionTypes.SETFORMDATA,
|
||||||
});
|
formData: formData,
|
||||||
};
|
mandatoryFieldsData: mandatoryFieldsData,
|
||||||
|
pickListData: pickListData,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ import { formDataActionTypes } from "./action";
|
|||||||
|
|
||||||
const formDataInitialState = {
|
const formDataInitialState = {
|
||||||
formData: {},
|
formData: {},
|
||||||
|
mandatoryFieldsData: {},
|
||||||
|
pickListData: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function reducer(state = formDataInitialState, action) {
|
export default function reducer(state = formDataInitialState, action) {
|
||||||
@@ -9,6 +11,8 @@ export default function reducer(state = formDataInitialState, action) {
|
|||||||
case formDataActionTypes.SETFORMDATA:
|
case formDataActionTypes.SETFORMDATA:
|
||||||
return {
|
return {
|
||||||
formData: action.formData,
|
formData: action.formData,
|
||||||
|
mandatoryFieldsData: action.mandatoryFieldsData,
|
||||||
|
pickListData: action.pickListData,
|
||||||
};
|
};
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ export const searchResultsActionTypes = {
|
|||||||
GETSEARCHRESULTS: "GETSEARCHRESULTS",
|
GETSEARCHRESULTS: "GETSEARCHRESULTS",
|
||||||
SETSEARCHRESULTS: "SETSEARCHRESULTS",
|
SETSEARCHRESULTS: "SETSEARCHRESULTS",
|
||||||
UPDATESEARCHRESULTS: "UPDATESEARCHRESULTS",
|
UPDATESEARCHRESULTS: "UPDATESEARCHRESULTS",
|
||||||
|
SETSEARCHDETAILS: "SETSEARCHDETAILS",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getSearchResultshObj = () => (dispatch) => {
|
export const getSearchResultshObj = () => (dispatch) => {
|
||||||
@@ -16,3 +17,10 @@ export const setSearchResults = (searchResults) => (dispatch) => {
|
|||||||
searchResultsObj: searchResults,
|
searchResultsObj: searchResults,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const setSearchDetails = (searchDetails) => (dispatch) => {
|
||||||
|
return dispatch({
|
||||||
|
type: searchResultsActionTypes.SETSEARCHDETAILS,
|
||||||
|
searchDetailsObj: searchDetails,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|||||||
@@ -2,14 +2,21 @@ import { searchResultsActionTypes } from "./action";
|
|||||||
|
|
||||||
const searchResultsInitialState = {
|
const searchResultsInitialState = {
|
||||||
searchResultsObj: {},
|
searchResultsObj: {},
|
||||||
|
searchDetailsObj: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function reducer(state = searchResultsInitialState, action) {
|
export default function reducer(state = searchResultsInitialState, action) {
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
case searchResultsActionTypes.SETSEARCHRESULTS:
|
case searchResultsActionTypes.SETSEARCHRESULTS:
|
||||||
return {
|
return {
|
||||||
|
...state,
|
||||||
searchResultsObj: action.searchResultsObj,
|
searchResultsObj: action.searchResultsObj,
|
||||||
};
|
};
|
||||||
|
case searchResultsActionTypes.SETSEARCHDETAILS:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
searchDetailsObj: action.searchDetailsObj,
|
||||||
|
};
|
||||||
default:
|
default:
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user