Files
pedwfrontend/components/newappeal/buildrow.js
T

196 lines
7.9 KiB
JavaScript

import _ from "lodash";
import useTranslation from "next-translate/useTranslation";
import { useRouter } from "next/router";
import xpath from "xpath";
import BuildField from "./buildfield";
export default function BuildRow(props) {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const {
rowXML,
whichSection,
sectionCount,
onSubmit,
mandatoryFieldsData,
setUploadCount,
uploadCount,
setFileCount,
completedUploadFilesCount,
setCompletedUploadFilesCount,
} = props;
const parser = new DOMParser();
return (
<div className="govuk-grid-column-full">
{Object.keys(rowXML).map((key, index) => {
var doc = parser.parseFromString(
rowXML[key].outerHTML,
"text/xml"
);
if (_.isEmpty(rowXML[key].innerHTML)) {
("");
} else {
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 maxSubField = xpath.select("//@maxsubfield", doc);
var datafieldname = xpath.select("//@datafieldname", doc);
var datafieldcontent = xpath.select(
"//@datafieldcontent",
doc
);
var parentField = xpath.select("//@parentField", doc);
var parentFieldShowOnValue = xpath.select(
"//@parentFieldShowOnValue",
doc
);
var requiredDocumentValue = xpath.select(
"//@requiredDocumentValue",
doc
);
var requiredDocumentLabel = xpath.select(
"//@requiredDocumentLabel",
doc
);
var documentTypeCode = xpath.select(
"//@ishareDocumentCode",
doc
);
var hint = xpath.select("//label/@hint", doc);
var dateStart = xpath.select("//@dateStart", doc);
var dateEnd = xpath.select("//@dateEnd", doc);
hint = !_.isEmpty(hint) && hint[0].value;
validation = !_.isEmpty(validation)
? validation[0].value
: [];
maxFieldLength =
!_.isEmpty(maxFieldLength) && maxFieldLength[0].value;
maxSubField =
!_.isEmpty(maxSubField) && maxSubField[0].value;
parentField =
!_.isEmpty(parentField) && parentField[0].value;
parentFieldShowOnValue =
!_.isEmpty(parentFieldShowOnValue) &&
parentFieldShowOnValue[0].value;
datafieldcontent =
!_.isEmpty(datafieldcontent) &&
datafieldcontent[0].value;
requiredDocumentValue =
!_.isEmpty(requiredDocumentValue) &&
requiredDocumentValue[0].value;
requiredDocumentLabel =
!_.isEmpty(requiredDocumentLabel) &&
requiredDocumentLabel[0].value;
documentTypeCode =
!_.isEmpty(documentTypeCode) &&
documentTypeCode[0].value;
dateStart = !_.isEmpty(dateStart) && dateStart[0].value;
dateEnd = !_.isEmpty(dateEnd) && dateEnd[0].value;
//const isRequiredField = jsonpath({path:
// "$..value[?(@ && @.LogicalName=='" +
// datafieldname[0].value +
// "')]",
// mandatoryFieldsData
// );
//console.log("build row datafieldname[0]", datafieldname[0]);
if (datafieldname[0].value == "pinswg_fileUpload") {
return (
<BuildField
fieldType={fieldtype[0].value}
label={rows[0].value}
datafieldname={datafieldname[0].value}
key={key}
props={props}
picklistData={
props.props.props.formData.pickListData
}
mandatoryFieldsData={mandatoryFieldsData}
documentTypeCode={documentTypeCode}
setFileCount={setFileCount}
setUploadCount={setUploadCount}
uploadCount={uploadCount}
/>
);
} else {
//console.log(
// datafieldname[0].value,
// isRequiredField[0].RequiredLevel.Value
// );
// if (typeof isRequiredField[0] != "undefined") {
// if (
// isRequiredField[0].RequiredLevel.Value != "None"
// ) {
//console.log(datafieldname[0].value, validation);
return (
<BuildField
fieldType={fieldtype[0].value}
label={rows[0].value}
datafieldname={datafieldname[0].value}
datafieldcontent={datafieldcontent}
parentField={parentField}
parentFieldShowOnValue={parentFieldShowOnValue}
key={key}
props={props}
picklistData={
props.props.props.formData.pickListData
}
mandatoryFieldsData={mandatoryFieldsData}
hint={hint}
requiredDocumentLabel={requiredDocumentLabel}
requiredDocumentValue={requiredDocumentValue}
validation={validation}
maxFieldLength={maxFieldLength}
dateStart={dateStart}
dateEnd={dateEnd}
setDocumentsList={props.props.setDocumentsList}
documentList={
props.props.appealType.documentList
}
documentTypeCode={documentTypeCode}
setFilesForAppeal={
props.props.setFilesForAppeal
}
maxSubField={maxSubField}
setFileCount={setFileCount}
setUploadCount={setUploadCount}
/>
);
// } else {
// return null;
// }
// } else {
// return null;
// }
}
}
})}
</div>
);
}