when click change linik values persisted

This commit is contained in:
2024-10-21 15:39:28 +01:00
parent 02d1bb313f
commit dc71d16a1f
9 changed files with 199 additions and 101 deletions
+4 -4
View File
@@ -501,10 +501,10 @@ export const deleteBlobCase = async (containerName, blobName) => {
} }
//containerClient.deleteBlob(blobName); //containerClient.deleteBlob(blobName);
console.log(`deleted blob ${blobName}`); // console.log(`deleted blob ${blobName}`);
for await (const blob of containerClient.listBlobsFlat()) { // for await (const blob of containerClient.listBlobsFlat()) {
console.log(" ------ :", blob.name); // console.log(" ------ :", blob.name);
} // }
return { "deleted": blobName }; return { "deleted": blobName };
}; };
@@ -6,9 +6,9 @@ import React, { useMemo, useState } from "react";
import DatePicker from "react-datepicker"; import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css"; import "react-datepicker/dist/react-datepicker.css";
import Dropzone from "react-dropzone"; import Dropzone from "react-dropzone";
import "react-quill/dist/quill.snow.css"; import "react-quill-new/dist/quill.snow.css";
import { Field } from "redux-form"; import { Field } from "redux-form";
const ReactQuill = dynamic(() => import("react-quill"), { ssr: false }); const ReactQuill = dynamic(() => import("react-quill-new"), { ssr: false });
import { import {
addDays, addDays,
+2 -2
View File
@@ -24,8 +24,8 @@ import {
subMonths, subMonths,
subYears, subYears,
} from "date-fns"; } from "date-fns";
import "react-quill/dist/quill.snow.css"; import "react-quill-new/dist/quill.snow.css";
const ReactQuill = dynamic(() => import("react-quill"), { ssr: false }); const ReactQuill = dynamic(() => import("react-quill-new"), { ssr: false });
const RenderTextfield = ({ const RenderTextfield = ({
id, id,
@@ -26,20 +26,31 @@ const AwaitingSubmissionFromBlob = (props) => {
const { locale } = router; const { locale } = router;
const { setCurrentView } = props; const { setCurrentView } = props;
function sortByISODate(arr, dateKey) {
return arr.sort((a, b) => new Date(b[dateKey]) - new Date(a[dateKey]));
}
function sortByField(arr, field, ascending = true) {
return arr.sort((a, b) => {
if (a[field] < b[field]) return ascending ? -1 : 1;
if (a[field] > b[field]) return ascending ? 1 : -1;
return 0; // Equal
});
}
function filterByExistingFieldValue(arr, filterArr, field) {
const filterValues = filterArr.map((item) => item[field]);
return arr.filter((item) => !filterValues.includes(item[field]));
}
let topthreeRowArr = []; let topthreeRowArr = [];
let showTopThreeArr = props.awaitingSubmissionFromBlob.value; let showTopThreeArr = props.awaitingSubmissionFromBlob.value;
let showTopThreeArrDets = props.awaitingSubmissionFromBlob.case; let showTopThreeArrDets = props.awaitingSubmissionFromBlob.case;
Object.keys(showTopThreeArrDets).map((key, index) => { showTopThreeArr = sortByField(showTopThreeArr, "pinswg_name");
let createdDate = showTopThreeArrDets[key].createdon; showTopThreeArrDets = sortByField(showTopThreeArrDets, "ticketnumber");
showTopThreeArr[key].createdDate = createdDate;
});
showTopThreeArr.sort(function compare(a, b) { showTopThreeArr = sortByISODate(showTopThreeArr, "createdDate");
var dateA = new Date(a.createdDate); showTopThreeArrDets = sortByISODate(showTopThreeArrDets, "createdon");
var dateB = new Date(b.createdDate);
return dateB - dateA;
});
const raisedDate = (datePart) => { const raisedDate = (datePart) => {
var dateObj = new Date(datePart); var dateObj = new Date(datePart);
+8 -5
View File
@@ -23,6 +23,7 @@ let BuildCheckRow = (props) => {
sectionCount, sectionCount,
onSubmit, onSubmit,
updateCurrentSection, updateCurrentSection,
setCurrentSection,
mandatoryFieldsData, mandatoryFieldsData,
} = props; } = props;
@@ -161,20 +162,19 @@ let BuildCheckRow = (props) => {
) )
: fieldtype[0].value == : fieldtype[0].value ==
"{16D63FD6-119B-4353-BDCA-18358721C3FE}" "{16D63FD6-119B-4353-BDCA-18358721C3FE}"
? (console.log( ? console.log(
props.props.form[ props.props.form[
"appealForm" "appealForm"
].values[ ].values[
datafieldname[0].value datafieldname[0].value
] ]
), )
(<div>sdfsd eeefsdfs</div>))
: fieldtype[0].value == : fieldtype[0].value ==
"{0273EDBD-AC1D-40d3-9FB2-095C621B552D}" "{0273EDBD-AC1D-40d3-9FB2-095C621B552D}"
? props.props.form[ ? props.props.form[
"appealForm" "appealForm"
].values[ ].values[
datafieldname[0].value datafieldname[0].value[0]
].map((tenant, index) => { ].map((tenant, index) => {
return ( return (
<div <div
@@ -211,7 +211,7 @@ let BuildCheckRow = (props) => {
className="govuk-link" className="govuk-link"
href="#" href="#"
onClick={() => { onClick={() => {
updateCurrentSection( setCurrentSection(
whichSection whichSection
); );
}} }}
@@ -248,6 +248,9 @@ let BuildCheckRow = (props) => {
const mapDispatchToProps = (dispatch) => { const mapDispatchToProps = (dispatch) => {
return { return {
setCurrentSection: (currentSection) => {
dispatch(setCurrentSection(currentSection));
},
updateCurrentSection: (whichSection) => { updateCurrentSection: (whichSection) => {
dispatch(setCurrentSection(whichSection)); dispatch(setCurrentSection(whichSection));
dispatch(setFormComplete("true")); dispatch(setFormComplete("true"));
+53 -30
View File
@@ -4,7 +4,7 @@ import Link from "next/link";
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { formValueSelector } from "redux-form"; import { formValueSelector, Field, reduxForm } from "redux-form";
import xpath from "xpath"; import xpath from "xpath";
import fieldLookup from "../../data/crmfieldlookuptranslations.json"; import fieldLookup from "../../data/crmfieldlookuptranslations.json";
import { import {
@@ -55,11 +55,11 @@ let BuildCheckSection = (props) => {
const handleParam = (setValue) => (e) => setValue(e.target.value); const handleParam = (setValue) => (e) => setValue(e.target.value);
const basicSearch = (event) => { // const basicSearch = (event) => {
event.preventDefault(); // event.preventDefault();
console.log(query); // //console.log(query);
// /searchresults // // /searchresults
}; // };
const onHandleSubmit = (values) => { const onHandleSubmit = (values) => {
//alert(1); //alert(1);
@@ -71,32 +71,37 @@ let BuildCheckSection = (props) => {
let buildAppealFilesArray = []; let buildAppealFilesArray = [];
//console.log("attached docs: - ", buildAppealFilesArray); //console.log("attached docs: - ", buildAppealFilesArray);
buildAppealFilesArray = props.props.form.appealForm.values.filesList || [];
// let filesUploadObj = Object.keys(props.props.form.appealForm.values) let filesUploadObj = props.appealType.fileList.value[0];
// .filter(function (k) {
// return k.indexOf("pinswg_fileUpload") == 0;
// })
// .reduce(function (newData, k) {
// newData[k] = props.props.form.appealForm.values[k];
// return newData;
// }, {});
// for (let key in filesUploadObj) { for (let key in filesUploadObj) {
// for (let j in filesUploadObj[key]) { typeof filesUploadObj[key].name != "undefined" &&
// typeof filesUploadObj[key][j].name != "undefined" && buildAppealFilesArray.push({
// buildAppealFilesArray.push({ "name": filesUploadObj[key].name,
// "name": filesUploadObj[key][j].name, "size": filesUploadObj[key].contentLength,
// "size": filesUploadObj[key][j].size, });
// }); }
// }
// }
buildAppealFilesArray = props.props.form.appealForm.values.filesList;
buildAppealFilesArray.filter(function (item, idx) { buildAppealFilesArray.filter(function (item, idx) {
return item.name; return item.name;
}); });
console.log(buildAppealFilesArray); //console.log(buildAppealFilesArray);
function removeDuplicates(arr, key) {
const seen = new Set();
return arr.filter((item) => {
const value = item[key];
if (seen.has(value)) {
return false; // Duplicate found
} else {
seen.add(value); // Add value to the set
return true; // Keep the item
}
});
}
buildAppealFilesArray = removeDuplicates(buildAppealFilesArray, "name");
let pdfObj = props.props.form.appealForm.values; let pdfObj = props.props.form.appealForm.values;
@@ -124,7 +129,7 @@ let BuildCheckSection = (props) => {
const finaliseAppeal = async () => { const finaliseAppeal = async () => {
setFinaliseAppealProcess(true); setFinaliseAppealProcess(true);
console.log("finalising appeal:"); //console.log("finalising appeal:");
await generateAppealPDF( await generateAppealPDF(
pdfObj, pdfObj,
props.props.accountDetails.containerID, props.props.accountDetails.containerID,
@@ -141,7 +146,7 @@ let BuildCheckSection = (props) => {
); );
}) })
.then(() => { .then(() => {
console.log("have sent complete message :"); //console.log("have sent complete message :");
setCurrentSection(9999); setCurrentSection(9999);
}); });
}; };
@@ -208,7 +213,7 @@ let BuildCheckSection = (props) => {
className="govuk-link" className="govuk-link"
href="#" href="#"
onClick={() => { onClick={() => {
updateCurrentSection( setCurrentSection(
sectionCount sectionCount
); );
}} }}
@@ -300,6 +305,15 @@ let BuildCheckSection = (props) => {
> >
{t("newappeal:submit-appeal-button")} {t("newappeal:submit-appeal-button")}
</a> </a>
<a
className="govuk-link"
href="#"
onClick={() =>
setCurrentSection(sectionCount - 1)
}
>
{t("common:back-link")}
</a>
</div> </div>
</> </>
)} )}
@@ -338,4 +352,13 @@ const mapDispatchToProps = (dispatch) => {
const selector = formValueSelector("appealForm"); // <-- same as form name const selector = formValueSelector("appealForm"); // <-- same as form name
export default connect(mapStateToProps, mapDispatchToProps)(BuildCheckSection); export default connect(
mapStateToProps,
mapDispatchToProps
)(
reduxForm({
form: "appealForm",
destroyOnUnmount: false,
enableReinitialize: true, // this is needed!!
})(BuildCheckSection)
);
+47
View File
@@ -126,6 +126,53 @@ const BuildProgress = (props) => {
</div> </div>
</li> </li>
))} ))}
{/* <li
className={
"app-step-nav__step js-step app-step-nav__step--active"
}
>
<div
className="app-step-nav__header js-toggle-panel "
data-position={10}
>
<h3 className="app-step-nav__title ">
<span className="app-step-nav__circle app-step-nav__circle--number">
<span className="app-step-nav__circle-inner">
<span className="app-step-nav__circle-background">
<span className="app-step-nav__circle-step-label govuk-visually-hidden">
Step
</span>{" "}
{progObj.length + 1}
<span
className="app-step-nav__circle-step-colon govuk-visually-hidden"
aria-hidden="true"
>
:
</span>
</span>
</span>
</span>
<span className="js-step-title">
<a
href="#"
onClick={() => {
gotoSection(progObj.length + 1);
}}
className="app-step-nav__button app-step-nav__button--title js-step-title-button"
aria-expanded="false"
aria-controls={
"step-panel-confirmation"
}
>
<span className="js-step-title-text govuk-!-font-size-16">
Confirmation
</span>
</a>
</span>
</h3>
</div>
</li> */}
</ol> </ol>
</div> </div>
</nav> </nav>
+61 -47
View File
@@ -99,10 +99,10 @@ let BuildSection = (props) => {
//console.log(fileListObj); //console.log(fileListObj);
console.log( // console.log(
"\n////////////////////////\n upload files:", // "\n////////////////////////\n upload files:",
props.props.accountDetails.containerID // props.props.accountDetails.containerID
); // );
var dataObj = values; var dataObj = values;
@@ -130,7 +130,7 @@ let BuildSection = (props) => {
let incidentId = props.appealType.caseReference.incidentid; let incidentId = props.appealType.caseReference.incidentid;
let updateBody = values || {}; let updateBody = values || {};
let buildAppealFilesArray = []; let buildAppealFilesArray = [];
console.log("attached docs: - ", buildAppealFilesArray); //console.log("attached docs: - ", buildAppealFilesArray);
let filesUploadObj = Object.keys(values) let filesUploadObj = Object.keys(values)
.filter(function (k) { .filter(function (k) {
@@ -141,7 +141,7 @@ let BuildSection = (props) => {
return newData; return newData;
}, {}); }, {});
console.log(filesUploadObj); //console.log(filesUploadObj);
for (let key in filesUploadObj) { for (let key in filesUploadObj) {
for (let j in filesUploadObj[key]) { for (let j in filesUploadObj[key]) {
@@ -167,14 +167,14 @@ let BuildSection = (props) => {
setSavingStatus(useSaveStatus); setSavingStatus(useSaveStatus);
uploadAppealFiles(values); uploadAppealFiles(values);
console.log( // console.log(
"\n////////////////////////\n appeal pdf payload", // "\n////////////////////////\n appeal pdf payload",
values, // values,
props.props.accountDetails.containerID, // props.props.accountDetails.containerID,
props.appealType.caseReference.ticketnumber, // props.appealType.caseReference.ticketnumber,
props.appealType, // props.appealType,
"\n////////////////////////\n" // "\n////////////////////////\n"
); // );
// let pdfObj = values; // let pdfObj = values;
@@ -251,22 +251,22 @@ let BuildSection = (props) => {
"linkExpiry": 10 * 60, "linkExpiry": 10 * 60,
}; };
console.log( // console.log(
"/////////////////////////////////", // "/////////////////////////////////",
"returnLink:", // "returnLink:",
props.props.url + // props.props.url +
(router.locale != "en" ? "/cy/fymhorth/" : "/myportal/") + // (router.locale != "en" ? "/cy/fymhorth/" : "/myportal/") +
appTypeCollection.UrlName + // appTypeCollection.UrlName +
"?lpa=" + // "?lpa=" +
props.appealType.appealLPA + // props.appealType.appealLPA +
"&apt=" + // "&apt=" +
appTypeCollection.appealTypeID + // appTypeCollection.appealTypeID +
"&casereference=" + // "&casereference=" +
props.appealType.caseReference.ticketnumber + // props.appealType.caseReference.ticketnumber +
"&inid=" + // "&inid=" +
props.appealType.caseReference.incidentid, // props.appealType.caseReference.incidentid,
"/////////////////////////////////" // "/////////////////////////////////"
); // );
sendSavedEmail == true && sendSavedEmail == true &&
sendEmail( sendEmail(
@@ -297,7 +297,7 @@ let BuildSection = (props) => {
return newData; return newData;
}, {}); }, {});
console.log(filesUploadObj); //console.log(filesUploadObj);
for (let key in filesUploadObj) { for (let key in filesUploadObj) {
for (let j in filesUploadObj[key]) { for (let j in filesUploadObj[key]) {
@@ -308,13 +308,13 @@ let BuildSection = (props) => {
} }
} }
console.log(buildAppealFilesArray); //console.log(buildAppealFilesArray);
setFilesForAppeal(buildAppealFilesArray); setFilesForAppeal(buildAppealFilesArray);
// Object.assign(values, { "filesList": buildAppealFilesArray }); // Object.assign(values, { "filesList": buildAppealFilesArray });
delete valuesObj["_pinswg_appellant_value"]; delete valuesObj["_pinswg_appellant_value"];
console.log("has errors:", props.invalid); //console.log("has errors:", props.invalid);
props.invalid == false && updateCaseProgress(valuesObj, false, false); props.invalid == false && updateCaseProgress(valuesObj, false, false);
setCurrentSection(currentSection + 1); setCurrentSection(currentSection + 1);
@@ -467,16 +467,16 @@ let BuildSection = (props) => {
props.props.form[props.form] props.props.form[props.form]
.values || {}; .values || {};
console.log( // console.log(
"valuesobj:", // "valuesobj:",
valuesObj // valuesObj
); // );
delete valuesObj[ delete valuesObj[
"_pinswg_appellant_value" "_pinswg_appellant_value"
]; ];
console.log("on save:", valuesObj); // console.log("on save:", valuesObj);
updateCaseProgress( updateCaseProgress(
valuesObj, valuesObj,
true, true,
@@ -487,6 +487,13 @@ let BuildSection = (props) => {
{t("common:save-exit-button")} {t("common:save-exit-button")}
</button> </button>
)} )}
{/* <span
onClick={() =>
setCurrentSection(sectionCount + 1)
}
>
goto check
</span> */}
</> </>
) : ( ) : (
"" ""
@@ -622,15 +629,22 @@ let BuildSection = (props) => {
); );
}; };
const mapStateToProps = (state) => { const mapStateToProps = (state, ownProps) => {
return { return ownProps.props.hasOwnProperty("initialValues")
search: state.search, ? {
searchResultsObj: state.searchResultsObj, search: state.search,
formData: state.formData, searchResultsObj: state.searchResultsObj,
appealType: state.appealType, formData: state.formData,
initialValues: state.appealType.caseReference.caseDetails, appealType: state.appealType,
//form: state.form, initialValues: state.appealType.caseReference.caseDetails,
}; }
: {
search: state.search,
searchResultsObj: state.searchResultsObj,
formData: state.formData,
appealType: state.appealType,
//form: state.form,
};
}; };
const mapDispatchToProps = (dispatch) => { const mapDispatchToProps = (dispatch) => {
+2 -2
View File
@@ -75,7 +75,7 @@
"react-leaflet": "^4.2.1", "react-leaflet": "^4.2.1",
"react-pdf": "^7.6.0", "react-pdf": "^7.6.0",
"react-pdf-html": "^1.1.18", "react-pdf-html": "^1.1.18",
"react-quill": "^2.0.0", "react-quill-new": "^3.3.3",
"react-redux": "^7.2.6", "react-redux": "^7.2.6",
"redux": "^4.2.1", "redux": "^4.2.1",
"redux-form": "^8.3.10", "redux-form": "^8.3.10",
@@ -97,4 +97,4 @@
"eslint-plugin-jsdoc": "^48.2.3", "eslint-plugin-jsdoc": "^48.2.3",
"prisma": "^5.0.0" "prisma": "^5.0.0"
} }
} }