diff --git a/components/myportal/topthree.js b/components/myportal/topthree.js
index 0e510925..c7d2db65 100644
--- a/components/myportal/topthree.js
+++ b/components/myportal/topthree.js
@@ -12,7 +12,8 @@ import {
deleteAwaitingSubmissions,
getAwaitingSubmissionProxy,
} from "../../actions";
-
+import jsonpath from "jsonpath";
+import transLookup from "../../data/lookuptranslations.json";
import {
setWatchedCases,
setWatchedCasesDetails,
@@ -147,8 +148,24 @@ const TopThree = (props) => {
href={
topThreeType == "awaitingSubmission"
? router.locale == "cy"
- ? "/fymhorth/cynrychiolaeth"
- : "/myportal/representation"
+ ? "/fymhorth/parhauigyflwyno"
+ : "/myportal" +
+ "/" +
+ getFormCollectionByID(
+ showTopThreeArr[key]
+ .pinswg_appealcasetype
+ ).UrlName +
+ "?lpa=" +
+ showTopThreeArr[key][
+ "_pinswg_associatedlpa_value"
+ ] +
+ "&apt=" +
+ showTopThreeArr[key]
+ .pinswg_appealcasetype +
+ "&casereference=" +
+ showTopThreeArr[key].pinswg_title +
+ "&inid=" +
+ showTopThreeArr[key].incidentid
: router.locale == "cy"
? "/fymhorth/achos"
: "/myportal/case"
@@ -216,7 +233,18 @@ const TopThree = (props) => {
) : (
""
)}
-
+ {router.locale == "cy"
+ ? jsonpath.query(
+ transLookup,
+ '$..[?(@.value=="' +
+ showTopThreeArr[key][
+ "_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
+ ] +
+ '")].value_cy'
+ )
+ : showTopThreeArr[key][
+ "_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
+ ] || ""}
{topThreeType == "awaitingSubmission" ? (
Case Incomplete, not submitted
diff --git a/pages/api/endpoint/getportalmoduledetailsproxy_api.js b/pages/api/endpoint/getportalmoduledetailsproxy_api.js
index 943ab28b..df4dcb4b 100644
--- a/pages/api/endpoint/getportalmoduledetailsproxy_api.js
+++ b/pages/api/endpoint/getportalmoduledetailsproxy_api.js
@@ -28,6 +28,8 @@ export default async function ApiProxy(req, res) {
caseReference +
"'&$count=true";
+ queryUrl = queryUrl + getSelectQuery(appealType);
+
return axios
.get(
WEBAPI_URL + queryUrl + hashAPIPath(queryUrl),
diff --git a/pages/api/endpoint/updatecase_api.js b/pages/api/endpoint/updatecase_api.js
index 0a36bce2..0d7b8a06 100644
--- a/pages/api/endpoint/updatecase_api.js
+++ b/pages/api/endpoint/updatecase_api.js
@@ -21,7 +21,7 @@ const hashAPIPath = (queryPath) => {
};
export default async function ApiProxy(req, res) {
- var data = JSON.stringify(req.body);
+ var data = req.body;
var appealObj = req.query.appealObj;
var incidentID = req.query.incident;
@@ -44,6 +44,8 @@ export default async function ApiProxy(req, res) {
data: data,
};
+ console.log("update case:", data);
+
return axios(config)
.then(({ data }) => {
res.status(200).json(data);
diff --git a/pages/myportal/[appealtypes].js b/pages/myportal/[appealtypes].js
new file mode 100644
index 00000000..782880c5
--- /dev/null
+++ b/pages/myportal/[appealtypes].js
@@ -0,0 +1,370 @@
+import jsonpath from "jsonpath";
+import useTranslation from "next-translate/useTranslation";
+import Head from "next/head";
+import { useRouter } from "next/router";
+import { useEffect } from "react";
+import { connect } from "react-redux";
+import xpath from "xpath";
+import {
+ createCase,
+ getAppealsTypes,
+ getFormData,
+ getMandatoryFields,
+ getPickLists,
+} from "../../actions";
+import Breadcrumbs from "../../components/breadcrumbs";
+import CookieBanner from "../../components/cookieBanner";
+import Footer from "../../components/footer";
+import Header from "../../components/header";
+import BuildCheckSection from "../../components/newappeal/buildchecksection";
+import BuildSection from "../../components/newappeal/buildsection";
+import CompleteAppeal from "../../components/newappeal/complete";
+import AdvertsForm from "../../data/forms/adverts";
+import Callinss77Form from "../../data/forms/callinss77";
+import CommonLandForm from "../../data/forms/commonland";
+import CommunityInfrastructureLevys117118119Form from "../../data/forms/communityinfrastructurelevys117118119";
+import CompulsoryPurchaseOrdersForm from "../../data/forms/compulsorypurchaseorders";
+import DNSForm from "../../data/forms/dns";
+import ElectricityActForm from "../../data/forms/electricityact";
+import EnforcementListedBuildingConservationapForm from "../../data/forms/enforcementlistedbuildingconservationap";
+import EnforcementNoticeAppeals174Form from "../../data/forms/enforcementnoticeappeals174";
+import EnvironmentalPermittingForm from "../../data/forms/environmentalpermitting";
+import HarbourRevisionOrderForm from "../../data/forms/harbourrevisionorder";
+import HedgesHedgerowsTreePreservationReplacemForm from "../../data/forms/hedgeshedgerowstreepreservationreplacem";
+import HouseholderAppealHasForm from "../../data/forms/householderappealhas";
+import LawfulDevelopmentCertificateForm from "../../data/forms/lawfuldevelopmentcertificate";
+import LdpForm from "../../data/forms/ldp";
+import ListedBuildingAndConservationAreaConsenForm from "../../data/forms/listedbuildingandconservationareaconsen";
+import MaintenanceOfLands217Form from "../../data/forms/maintenanceoflands217";
+import MiscellaneousCaseworkForm from "../../data/forms/miscellaneouscasework";
+import NonValidationForm from "../../data/forms/nonvalidation";
+import PlanningAppeals78Form from "../../data/forms/planningappeals78";
+import PlanningConditionss73s79Form from "../../data/forms/planningconditionss73s79";
+import PlanningObligationAppeals106Form from "../../data/forms/planningobligationappeals106";
+import RowForm from "../../data/forms/row";
+import TransportAndWorkActForm from "../../data/forms/transportandworkact";
+import WayleaveForm from "../../data/forms/wayleave";
+import { setLoggedInUserId } from "../../store/accountDetails/action";
+import {
+ setAppealLPA,
+ setAppealType,
+ setAppealTypeID,
+ setAppealTypeTitle,
+ setCaseReference,
+} from "../../store/appealType/action";
+import { setForm } from "../../store/formData/action";
+import { wrapper } from "../../store/store";
+
+let Home = (props) => {
+ const { footerLinks, pages, formData } = props;
+ let { t, lang } = useTranslation();
+
+ const router = useRouter();
+ const { locale } = router;
+ const { appealtypes } = router.query;
+
+ useEffect(() => {
+ //setFormTitle(formTitle);
+ console.log(router.query);
+ setCaseReference(router.query.casereference);
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
+
+ const formXML = props.formData.formData;
+ const parser = new DOMParser();
+ var doc = parser.parseFromString(formXML, "text/xml");
+ var titles = xpath.select(
+ "//form/tabs/tab[*]/labels/label[@description]/@description",
+ doc
+ );
+ var sectionCount = xpath.select("/form/tabs/tab[*]", doc);
+ sectionCount = 1; //sectionCount.length;
+
+ var tabs = xpath.select("//form/tabs/tab[*]", doc);
+
+ let optionsStr = props.appealType.appealTypeOptions.value;
+
+ // let selectedObj = jsonpath.query(optionsStr, "$..value");
+
+ let selectedObj = jsonpath.query(
+ optionsStr,
+ "$..[?(@.attributevalue=='" + router.query.apt + "')]"
+ );
+
+ //let optionsTitleObj = [];
+
+ // const optionsTitleObj = selectedObj.reduce(
+ // (obj, arrValue) => (
+ // (obj[arrValue] = arrValue
+ // .replace(/(\band|[\s\-\+\(\)\,\&])/g, "")
+ // .toLowerCase()
+ // .slice(0, 39)),
+ // obj
+ // ),
+ // {}
+ // );
+
+ const formTitle = selectedObj[0].value;
+
+ const getFormType = (appealType) => {
+ switch (appealType) {
+ case "adverts":
+ return
;
+ case "callinss77":
+ return
;
+ case "commonland":
+ return
;
+ case "communityinfrastructurelevys117118119":
+ return (
+
+ );
+ case "compulsorypurchaseorders":
+ return
;
+ case "dns":
+ return
;
+ case "electricityact":
+ return
;
+ case "enforcementlistedbuildingconservationap":
+ return (
+
+ );
+ case "enforcementnoticeappeals174":
+ return
;
+ case "environmentalpermitting":
+ return
;
+ case "harbourrevisionorder":
+ return
;
+ case "harbourrhedgeshedgerowstreepreservationreplacemevisionorder":
+ return (
+
+ );
+ case "householderappealhas":
+ return
;
+ case "lawfuldevelopmentcertificate":
+ return
;
+
+ case "ldp":
+ return
;
+
+ case "listedbuildingandconservationareaconsen":
+ return (
+
+ );
+ case "maintenanceoflands217":
+ return
;
+
+ case "miscellaneouscasework":
+ return
;
+
+ case "nonvalidation":
+ return
;
+
+ case "planningappeals78":
+ return
;
+
+ case "planningconditionss73s79":
+ return
;
+
+ case "planningobligationappeals106":
+ return
;
+
+ case "row":
+ return
;
+
+ case "transportandworkact":
+ return
;
+ case "wayleave":
+ return
;
+
+ default:
+ return
;
+ }
+ re;
+ };
+
+ const { onSubmit } = props;
+
+ return (
+
+
+
+ {t("newappeal:page-title")} - {t("common:service-name")}
+
+ <>
+
+
+ {/* If they have a Twitter Handle, include the meta details below */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+
+
+
+
+
+
+
+
+ {props.appealType.currentSection == 9999 ? (
+
+ ) : props.appealType.currentSection ==
+ sectionCount + 1 ? (
+
+ ) : (
+ <>
+
+ {/* {getFormType(appealtypes)} */}
+ >
+ )}
+
+
+
+
+
+
+ );
+};
+
+export const getServerSideProps = wrapper.getServerSideProps(
+ (store) => async (ctx) => {
+ const { query, req, res } = ctx;
+ const { cookies } = req;
+
+ console.log(cookies);
+ console.log("the query", query);
+ let loggedInUser = cookies.pinsUser;
+
+ const [appealTypeData, mandatoryFieldsData, pickListData, formdata] =
+ await Promise.all([
+ await getAppealsTypes(),
+ await getMandatoryFields(query.appealtypes),
+ await getPickLists(query.appealtypes),
+ await getFormData(query.appealtypes),
+ ]);
+
+ let caseReference = {};
+
+ caseReference.ticketnumber = query.casereference;
+ caseReference.incidentid = query.inid;
+
+ console.log(caseReference);
+ let xmlStr = formdata;
+ xmlStr = formdata.value[0].formxml;
+ xmlStr = xmlStr.replace(/\\"/g, "");
+
+ //console.log(caseReference, query.appealtypes, formdata);
+ store.dispatch(setLoggedInUserId(loggedInUser));
+ store.dispatch(setAppealLPA(query.lpa));
+ store.dispatch(setAppealTypeID(query.apt));
+ store.dispatch(setCaseReference(caseReference));
+ store.dispatch(setForm(xmlStr, mandatoryFieldsData, pickListData));
+ store.dispatch(setAppealType(appealTypeData));
+ }
+);
+
+const mapStateToProps = (state) => {
+ return {
+ search: state.search,
+ searchResultsObj: state.searchResultsObj,
+ formData: state.formData,
+ appealType: state.appealType,
+ form: state.form,
+ accountDetails: state.accountDetails,
+ };
+};
+
+const mapDispatchToProps = (dispatch) => {
+ return {
+ setFormTitle: (title) => {
+ dispatch(setAppealTypeTitle(title));
+ },
+ setCaseReference: (refno) => {
+ dispatch(setCaseReference(refno));
+ },
+ };
+};
+
+export default connect(mapStateToProps, mapDispatchToProps)(Home);
diff --git a/pages/myportal/continuesubmission.js b/pages/myportal/continuesubmission.js
new file mode 100644
index 00000000..d58a6c34
--- /dev/null
+++ b/pages/myportal/continuesubmission.js
@@ -0,0 +1,133 @@
+import useTranslation from "next-translate/useTranslation";
+import Head from "next/head";
+import { useRouter } from "next/router";
+import { connect } from "react-redux";
+import Breadcrumbs from "../../components/breadcrumbs";
+import CookieBanner from "../../components/cookieBanner";
+import Footer from "../../components/footer";
+import Header from "../../components/header";
+import Case from "../../components/representation";
+
+const Home = (props) => {
+ const { footerLinks, pages } = props;
+ let { t, lang } = useTranslation();
+
+ const router = useRouter();
+ const { locale } = router;
+ const { appealtypes } = router.query;
+
+ return (
+
+
+
+ {t("case:page-title")} - {t("common:service-name")}
+
+ <>
+
+
+ {/* If they have a Twitter Handle, include the meta details below */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+
+
+
+ );
+};
+
+const mapStateToProps = (state) => {
+ //console.log(state);
+
+ return {
+ currentView: state.currentView,
+ search: state.search,
+ searchResultsObj: state.searchResultsObj,
+ formData: state.formData,
+ appealType: state.appealType,
+ form: state.form,
+ myCases: state.myCases,
+ watchedCases: state.watchedCases,
+ myRepresentations: state.myRepresentations,
+ awaitingSubmission: state.awaitingSubmission,
+ };
+};
+
+export default connect(mapStateToProps)(Home);