- {/* {file.name.slice(file.name.indexOf("_") + 1)} ( */}{" "}
- {file.name}( ({bytesToSize(file.size)})
+ {files && Array.isArray(files) && (
+
+ {files.map((file, i) => (
+
+

+
+ {/* {file.name.slice(file.name.indexOf("_") + 1)} ( */}{" "}
+ {file.name}( ({bytesToSize(file.size)})
+
+
+ ))}
+
+ )}
+ {blobList.map((blob, i) => (
+
+
+ {
+ deleteThisBlob(
+ field.containerID,
+ blob.name,
+ blob.hasheddeletepath,
+ blob.hashgetblobs,
+ field.ticketnumber
+ );
+ }}
+ title="Remove this file"
+ >
+ −
- ))}
-
- )}
- {blobList.map((blob, i) => (
-
-
-
{
- deleteThisBlob(
- field.containerID,
- blob.name,
- blob.hasheddeletepath,
- blob.hashgetblobs,
- field.ticketnumber
- );
- }}
- title="Remove this file"
+
+
+
- −
-
+ {blob.name.slice(blob.name.indexOf("_") + 1)}(
+ {bytesToSize(blob.contentLength)})
+
-
})
-
-
-
- {blob.name.slice(blob.name.indexOf("_") + 1)}({bytesToSize(blob.contentLength)})
-
-
- ))}{" "}
- >;
+ ))}{" "}
+ >
+ );
};
diff --git a/components/newappeal/aboutyou.js b/components/newappeal/aboutyou.js
index 639f1f2d..04fc7098 100644
--- a/components/newappeal/aboutyou.js
+++ b/components/newappeal/aboutyou.js
@@ -24,6 +24,7 @@ const RenderTextfield = ({
meta: { touched, error },
...custom
}) => {
+ console.log(custom);
return (
<>
>
@@ -469,6 +474,7 @@ let AboutYou = (props) => {
className="govuk-input govuk-input--width-20"
validate={[required]}
label={t("newappeal:about-you-on-behalf-label")}
+ maxFieldLength="25"
/>
diff --git a/components/newappeal/buildfield.js b/components/newappeal/buildfield.js
index 2963c81e..14247df0 100644
--- a/components/newappeal/buildfield.js
+++ b/components/newappeal/buildfield.js
@@ -10,6 +10,7 @@ import {
PickList,
Radiofield,
ReadOnlyfield,
+ RichMultiLinefield,
Textfield,
YesNofield,
} from "../elements";
@@ -114,6 +115,7 @@ export default function BuildField(props) {
parentFieldShowOnValue={props.parentFieldShowOnValue}
validation={props.validation}
hint={props.hint}
+ maxFieldLength={props.maxFieldLength}
/>
);
break;
@@ -142,6 +144,21 @@ export default function BuildField(props) {
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
validation={props.validation}
+ maxFieldLength={props.maxFieldLength}
+ />
+ );
+ break;
+ case "{E0DECE4B-6666-4a8f-A065-082708572369}":
+ return (
+
);
break;
@@ -155,6 +172,7 @@ export default function BuildField(props) {
validation={props.validation}
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
+ maxFieldLength={props.maxFieldLength}
/>
);
break;
@@ -168,6 +186,7 @@ export default function BuildField(props) {
validation={props.validation}
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
+ maxFieldLength={props.maxFieldLength}
/>
);
break;
diff --git a/components/newappeal/buildrow.js b/components/newappeal/buildrow.js
index 946aeadf..71a11819 100644
--- a/components/newappeal/buildrow.js
+++ b/components/newappeal/buildrow.js
@@ -36,6 +36,7 @@ export default function BuildRow(props) {
var rows = xpath.select("//label/@description", doc);
var fieldtype = xpath.select("//@classid", doc);
var validation = xpath.select("//@validation", doc);
+ var maxFieldLength = xpath.select("//@maxFieldLength", doc);
var datafieldname = xpath.select("//@datafieldname", doc);
var datafieldcontent = xpath.select(
"//@datafieldcontent",
@@ -73,6 +74,9 @@ export default function BuildRow(props) {
? validation[0].value
: [];
+ maxFieldLength =
+ !_.isEmpty(maxFieldLength) && maxFieldLength[0].value;
+
parentField =
!_.isEmpty(parentField) && parentField[0].value;
@@ -150,6 +154,7 @@ export default function BuildRow(props) {
requiredDocumentLabel={requiredDocumentLabel}
requiredDocumentValue={requiredDocumentValue}
validation={validation}
+ maxFieldLength={maxFieldLength}
dateStart={dateStart}
dateEnd={dateEnd}
setDocumentsList={props.props.setDocumentsList}
diff --git a/components/newappeal/buildsection.js b/components/newappeal/buildsection.js
index 05302282..5a95132b 100644
--- a/components/newappeal/buildsection.js
+++ b/components/newappeal/buildsection.js
@@ -15,7 +15,13 @@ import {
setNewAppealProgress,
} from "../../store/appealType/action";
import { getFormCollectionByID, getProgressObj } from "../utils";
-import { updateCase, patchCase, uploadFiles, sendEmail } from "../../actions";
+import {
+ updateCase,
+ patchCase,
+ uploadFiles,
+ sendEmail,
+ generateAppealPDF,
+} from "../../actions";
import { FieldsTranslations } from "../elements";
import jsonpath from "jsonpath";
@@ -132,13 +138,60 @@ let BuildSection = (props) => {
) => {
let incidentId = props.appealType.caseReference.incidentid;
let updateBody = values || {};
+ let buildAppealFilesArray = [];
+ console.log("attached docs: - ", buildAppealFilesArray);
+
+ let filesUplaodObj = Object.keys(values)
+ .filter(function (k) {
+ return k.indexOf("pinswg_fileUpload") == 0;
+ })
+ .reduce(function (newData, k) {
+ newData[k] = values[k];
+ return newData;
+ }, {});
+
+ console.log(filesUplaodObj);
+
+ for (let key in filesUplaodObj) {
+ for (let j in filesUplaodObj[key]) {
+ buildAppealFilesArray.push({
+ "name": filesUplaodObj[key][j].name,
+ "size": filesUplaodObj[key][j].size,
+ });
+ }
+ }
+
+ console.log(buildAppealFilesArray);
+
+ Object.assign(values, { "filesList": buildAppealFilesArray });
setSavingStatus(useSaveStatus);
+
uploadAppealFiles(values);
- props.setNewAppealProgress(
- getProgressObj(formXML, titleList, mandatoryFieldsData, props)
+ console.log(
+ "\n////////////////////////\n appeal pdf payload",
+ values,
+ props.props.accountDetails.containerID,
+ props.appealType.caseReference.ticketnumber,
+ "\n////////////////////////\n"
);
+ let pdfObj = values;
+
+ Object.assign(pdfObj, {
+ "containerID": props.props.accountDetails.containerID,
+ "casefolderID": props.appealType.caseReference.ticketnumber,
+ });
+
+ generateAppealPDF(
+ pdfObj,
+ props.props.accountDetails.containerID,
+ props.appealType.caseReference.ticketnumber
+ ),
+ props.setNewAppealProgress(
+ getProgressObj(formXML, titleList, mandatoryFieldsData, props)
+ );
+
let appTypeCollection = getFormCollectionByID(
props.appealType.appealTypeID
);
diff --git a/components/pdftemplates/appealRow_pdf.js b/components/pdftemplates/appealRow_pdf.js
index 80b3019b..9284c54f 100644
--- a/components/pdftemplates/appealRow_pdf.js
+++ b/components/pdftemplates/appealRow_pdf.js
@@ -22,6 +22,7 @@ import ReactPDF, {
Font,
} from "@react-pdf/renderer";
import _ from "lodash";
+import Html from "react-pdf-html";
import { DOMParser, XMLSerializer } from "@xmldom/xmldom";
@@ -59,7 +60,11 @@ export const AppealRow_pdf = (props) => {
},
logoImage: { width: "200pt" },
questionBullet: { width: "5%", fontSize: 12 },
- questionText: { width: "30%", fontSize: 12 },
+ questionText: {
+ width: "35%",
+ fontSize: 12,
+ marginRight: 5,
+ },
questionTextMid: { width: "80%", fontSize: 12 },
questionTextWide: { width: "95%", fontSize: 12, marginBottom: 5 },
questionAnswer: {
@@ -84,9 +89,8 @@ export const AppealRow_pdf = (props) => {
},
questionAnswerWide: {
color: "#757575",
- width: "95%",
+ width: "100%",
fontSize: 12,
- marginLeft: "5%",
border: 1,
borderColor: "#eee",
backgroundColor: "white",
@@ -182,7 +186,6 @@ export const AppealRow_pdf = (props) => {
case "{5B773807-9FB2-42db-97C3-7A91EFF8ADFF}":
return (
{
);
break;
-
+ case "{E0DECE4B-6666-4a8f-A065-082708572369}":
+ return (
+
+
+
+ {rows[0].value}
+
+
+
+
+ {
+ props.props[
+ datafieldname[0]
+ .value
+ ]
+ }{" "}
+
+
+
+ );
+ break;
default:
return (
{
{/* {FieldsTranslations(rows[0].value)} */}
{rows[0].value}
-
-
+
+ {" "}
{
props.props[
datafieldname[0].value
diff --git a/components/pdftemplates/planningappeals78_pdf.js b/components/pdftemplates/planningappeals78_pdf.js
index 72667bd3..9743253d 100644
--- a/components/pdftemplates/planningappeals78_pdf.js
+++ b/components/pdftemplates/planningappeals78_pdf.js
@@ -61,7 +61,7 @@ const styles = StyleSheet.create({
},
questionAnswerWide: {
color: "#757575",
- width: "95%",
+ width: "100%",
fontSize: 12,
marginLeft: "5%",
border: 1,
@@ -121,7 +121,7 @@ export const planningappeals78_pdf = ({ docProps }) => {
xmlStr = xmlStr.replace(/> <"/g, "><");
xmlStr = xmlStr.toString();
- console.log(xmlStr);
+ //console.log(xmlStr);
const parser = new DOMParser();
var doc = parser.parseFromString(xmlStr, "text/xml");
@@ -177,74 +177,6 @@ export const planningappeals78_pdf = ({ docProps }) => {
/>
-
-
- Case details
-
-
-
- 1.
-
- {t(
- "myrepresentations:s78-section-question-1"
- )}
- :
-
-
- {values.caseRef}
-
-
-
-
- 3.
-
- Site address/grid ref:
-
-
- {values.siteAddress}
-
-
-
- 4.
-
- Case Type:
-
-
- {appealTypeValue.value}
-
-
-
-
-
{Object.keys(titles).map((key) => (
{
}}
>
11.
-
+
List of attached files
diff --git a/data/formsxml/adverts.xml b/data/formsxml/adverts.xml
index 00a2bfd0..f6f09f7c 100644
--- a/data/formsxml/adverts.xml
+++ b/data/formsxml/adverts.xml
@@ -64,7 +64,7 @@
-
+
@@ -166,7 +166,7 @@
-
+
@@ -250,7 +250,7 @@
-
+
diff --git a/data/formsxml/callinss77.xml b/data/formsxml/callinss77.xml
index d243ea2f..e760d254 100644
--- a/data/formsxml/callinss77.xml
+++ b/data/formsxml/callinss77.xml
@@ -594,7 +594,7 @@
-
+
@@ -606,7 +606,7 @@
-
+
@@ -861,7 +861,7 @@
-
+
@@ -878,7 +878,7 @@
-
+
diff --git a/data/formsxml/commercialappealcas.xml b/data/formsxml/commercialappealcas.xml
index ca09fe37..1bd53182 100644
--- a/data/formsxml/commercialappealcas.xml
+++ b/data/formsxml/commercialappealcas.xml
@@ -61,7 +61,7 @@
-
+
@@ -73,7 +73,7 @@
-
+
@@ -211,7 +211,7 @@
-
+
@@ -223,7 +223,7 @@
-
+
@@ -253,7 +253,7 @@
-
+
@@ -331,7 +331,7 @@
-
+
diff --git a/data/formsxml/commonland.xml b/data/formsxml/commonland.xml
index 5d90a032..42a887f2 100644
--- a/data/formsxml/commonland.xml
+++ b/data/formsxml/commonland.xml
@@ -360,7 +360,7 @@
-
+
@@ -372,7 +372,7 @@
-
+
diff --git a/data/formsxml/communityinfrastructurelevys117118119.xml b/data/formsxml/communityinfrastructurelevys117118119.xml
index b8ce3ac6..dc72559e 100644
--- a/data/formsxml/communityinfrastructurelevys117118119.xml
+++ b/data/formsxml/communityinfrastructurelevys117118119.xml
@@ -594,7 +594,7 @@
-
+
@@ -606,7 +606,7 @@
-
+
diff --git a/data/formsxml/compulsorypurchaseorders.xml b/data/formsxml/compulsorypurchaseorders.xml
index db8e8d57..a4b979e8 100644
--- a/data/formsxml/compulsorypurchaseorders.xml
+++ b/data/formsxml/compulsorypurchaseorders.xml
@@ -360,7 +360,7 @@
-
+
@@ -372,7 +372,7 @@
-
+
diff --git a/data/formsxml/enforcementnoticeappeals174.xml b/data/formsxml/enforcementnoticeappeals174.xml
index 1784d5a3..766081b9 100644
--- a/data/formsxml/enforcementnoticeappeals174.xml
+++ b/data/formsxml/enforcementnoticeappeals174.xml
@@ -803,7 +803,7 @@
-
+
@@ -815,7 +815,7 @@
-
+
@@ -845,7 +845,7 @@
-
+
@@ -1122,7 +1122,7 @@
-
+
diff --git a/data/formsxml/environmentalpermitting.xml b/data/formsxml/environmentalpermitting.xml
index 41992bb6..d7c5f66b 100644
--- a/data/formsxml/environmentalpermitting.xml
+++ b/data/formsxml/environmentalpermitting.xml
@@ -360,7 +360,7 @@
-
+
@@ -372,7 +372,7 @@
-
+
diff --git a/data/formsxml/hedgeshedgerowstreepreservationreplacem.xml b/data/formsxml/hedgeshedgerowstreepreservationreplacem.xml
index 823af1c2..16659864 100644
--- a/data/formsxml/hedgeshedgerowstreepreservationreplacem.xml
+++ b/data/formsxml/hedgeshedgerowstreepreservationreplacem.xml
@@ -360,7 +360,7 @@
-
+
@@ -372,7 +372,7 @@
-
+
diff --git a/data/formsxml/householderappealhas.xml b/data/formsxml/householderappealhas.xml
index 3445cfaa..43170f86 100644
--- a/data/formsxml/householderappealhas.xml
+++ b/data/formsxml/householderappealhas.xml
@@ -46,7 +46,7 @@
-
+
@@ -58,7 +58,7 @@
-
+
@@ -196,7 +196,7 @@
-
+
@@ -208,7 +208,7 @@
-
+
@@ -238,13 +238,13 @@
-
+
-
+
@@ -322,7 +322,7 @@
-
+
diff --git a/data/formsxml/lawfuldevelopmentcertificate.xml b/data/formsxml/lawfuldevelopmentcertificate.xml
index 5e9cc2a1..cc8767b7 100644
--- a/data/formsxml/lawfuldevelopmentcertificate.xml
+++ b/data/formsxml/lawfuldevelopmentcertificate.xml
@@ -594,7 +594,7 @@
-
+
@@ -861,7 +861,7 @@
-
+
@@ -878,7 +878,7 @@
-
+
diff --git a/data/formsxml/listedbuildingandconservationareaconsen.xml b/data/formsxml/listedbuildingandconservationareaconsen.xml
index 1eecc28d..cf10b1ae 100644
--- a/data/formsxml/listedbuildingandconservationareaconsen.xml
+++ b/data/formsxml/listedbuildingandconservationareaconsen.xml
@@ -40,7 +40,7 @@
-
+
@@ -52,7 +52,7 @@
-
+
@@ -172,7 +172,7 @@
-
+
@@ -184,7 +184,7 @@
-
+
@@ -262,7 +262,7 @@
-
+
diff --git a/data/formsxml/maintenanceoflands217.xml b/data/formsxml/maintenanceoflands217.xml
index 5b8abfca..d430ad5d 100644
--- a/data/formsxml/maintenanceoflands217.xml
+++ b/data/formsxml/maintenanceoflands217.xml
@@ -360,7 +360,7 @@
-
+
@@ -372,7 +372,7 @@
-
+
diff --git a/data/formsxml/miscellaneouscasework.xml b/data/formsxml/miscellaneouscasework.xml
index f854944b..b97105be 100644
--- a/data/formsxml/miscellaneouscasework.xml
+++ b/data/formsxml/miscellaneouscasework.xml
@@ -316,7 +316,7 @@
-
+
@@ -328,7 +328,7 @@
-
+
diff --git a/data/formsxml/nonvalidation.xml b/data/formsxml/nonvalidation.xml
index 831ec1e6..7bc442fb 100644
--- a/data/formsxml/nonvalidation.xml
+++ b/data/formsxml/nonvalidation.xml
@@ -40,7 +40,7 @@
-
+
diff --git a/data/formsxml/planningappeals78.xml b/data/formsxml/planningappeals78.xml
index 9c98729a..d992fb9e 100644
--- a/data/formsxml/planningappeals78.xml
+++ b/data/formsxml/planningappeals78.xml
@@ -40,7 +40,7 @@
-
+
@@ -52,7 +52,7 @@
-
+
@@ -190,7 +190,7 @@
-
+
@@ -202,7 +202,7 @@
-
+
@@ -232,13 +232,13 @@
-
+
-
+
@@ -316,7 +316,7 @@
-
+
@@ -342,6 +342,12 @@
+
+
+
+
+
+
diff --git a/data/formsxml/planningconditionss73s79.xml b/data/formsxml/planningconditionss73s79.xml
index a9e6067c..c8386c8e 100644
--- a/data/formsxml/planningconditionss73s79.xml
+++ b/data/formsxml/planningconditionss73s79.xml
@@ -591,7 +591,7 @@
-
+
@@ -858,7 +858,7 @@
-
+
@@ -875,7 +875,7 @@
-
+
diff --git a/data/formsxml/planningobligationappeals106.xml b/data/formsxml/planningobligationappeals106.xml
index 9a4ffcf6..ae057eac 100644
--- a/data/formsxml/planningobligationappeals106.xml
+++ b/data/formsxml/planningobligationappeals106.xml
@@ -523,7 +523,7 @@
-
+
@@ -535,7 +535,7 @@
-
+
diff --git a/data/formsxml/row.xml b/data/formsxml/row.xml
index acf2c586..c16483aa 100644
--- a/data/formsxml/row.xml
+++ b/data/formsxml/row.xml
@@ -360,7 +360,7 @@
-
+
@@ -372,7 +372,7 @@
-
+
diff --git a/data/formsxml/wayleave.xml b/data/formsxml/wayleave.xml
index 5e52ba62..31696518 100644
--- a/data/formsxml/wayleave.xml
+++ b/data/formsxml/wayleave.xml
@@ -360,7 +360,7 @@
-
+
@@ -372,7 +372,7 @@
-
+
diff --git a/pages/api/file/generateappealpdf.js b/pages/api/file/generateappealpdf.js
index d17bf538..a98ae2a9 100644
--- a/pages/api/file/generateappealpdf.js
+++ b/pages/api/file/generateappealpdf.js
@@ -111,20 +111,20 @@ export default async function handler(req, res) {
let appealBodyObj = req.body; //JSON.parse(req.body);
- console.log(
- "//////////////////////\nappealBodyObj" +
- req +
- "\n//////////////////////\n"
- );
+ // console.log(
+ // "//////////////////////\nappealBodyObj" +
+ // req +
+ // "\n//////////////////////\n"
+ // );
console.log(
"//////////////////////\nappealBodyObj" +
req.body +
"\n//////////////////////\n"
);
- var containerID = req.query.containerID;
- var casefolderID = req.query.casefolderID;
- var caseRef = req.query.caseRef;
+ var containerID = appealBodyObj.containerID;
+ var casefolderID = appealBodyObj.casefolderID;
+ var caseRef = appealBodyObj.caseRef;
//console.log("there are files:", Object.keys(req.files).length);
@@ -170,18 +170,12 @@ export default async function handler(req, res) {
}
);
- console.log(blobProgress);
+ //console.log(blobProgress);
//if (hashAPIPath(checkquerypath) == "?hash=" + checkHash) {
// //createContainer(containerID).then((containerName) => {
// console.log("does this get folder name:", containerID, casefolderID);
- console.log(
- "///////////////////////////////////\n file created: \n" +
- `tmp/${blobProgress.pinswg_name}.pdf` +
- "\n/////////////////////////"
- );
-
// createRepBlob(req.body, containerID, caseRef);
ReactPDF.render(
@@ -189,11 +183,17 @@ export default async function handler(req, res) {
`tmp/${blobProgress.pinswg_name}.pdf`
);
- // uploadPDFAppealFiles(
- // `tmp/${appealBodyObj.repfile_name}.pdf`,
- // containerID,
- // caseRef + "/" + appealBodyObj.pinswg_name
- // );
+ console.log(
+ "///////////////////////////////////\n file created: \n" +
+ `tmp/${blobProgress.pinswg_name}.pdf` +
+ "\n/////////////////////////"
+ );
+
+ uploadPDFAppealFiles(
+ `tmp/${appealBodyObj.repfile_name}.pdf`,
+ containerID,
+ caseRef + "/" + appealBodyObj.pinswg_name
+ );
// to do upload file to storage account