edit a partial completed appeal

This commit is contained in:
2022-05-05 11:04:05 +01:00
parent 20b20f72d3
commit b99512066b
14 changed files with 497 additions and 106 deletions
+165 -71
View File
@@ -12,6 +12,8 @@ import {
setCurrentSection,
setDocumentsList,
} from "../../store/appealType/action";
import { getFormCollectionByID } from "../utils";
import { updateCase, patchCase } from "../../actions";
import { FieldsTranslations } from "../elements";
@@ -32,6 +34,9 @@ let BuildSection = (props) => {
sectionCount,
onSubmit,
handleSubmit,
load,
pristine,
reset,
formTitle,
setCurrentSection,
refno,
@@ -62,7 +67,64 @@ let BuildSection = (props) => {
const handleParam = (setValue) => (e) => setValue(e.target.value);
const updateCaseProgress = (values) => {
let incidentId = props.appealType.caseReference.incidentid;
let updateBody = values || {};
let appTypeCollection = getFormCollectionByID(
props.appealType.appealTypeID
);
let updateBindAppealTypeToIncident =
appTypeCollection.NavigationProperty;
Object.assign(updateBody, {
"pinswg_Appellant@odata.bind":
"/contacts(" + props.props.accountDetails.loggedinUserId + ")",
"pinswg_name": props.appealType.caseReference.ticketnumber,
[updateBindAppealTypeToIncident + "@odata.bind"]:
"/incidents(" + incidentId + ")",
});
updateBody = JSON.stringify(updateBody);
updateBody = updateBody.replace(/:"Yes"/gm, `:true`);
updateBody = updateBody.replace(/:"No"/gm, `:false`);
updateBody = JSON.parse(updateBody);
Object.keys(updateBody).forEach((key) => {
if (updateBody[key] === null) {
delete updateBody[key];
}
if (key.indexOf("_") == 0) {
delete updateBody[key];
}
});
console.log(updateBody);
let updateFormCollection = appTypeCollection.LogicalCollectionName;
let primaryAttribute = appTypeCollection.PrimaryIdAttribute;
console.log(
incidentId,
updateBody,
updateFormCollection,
primaryAttribute,
props.appealType.caseReference.ticketnumber
);
updateCase(
incidentId,
updateBody,
updateFormCollection,
primaryAttribute,
props.appealType.caseReference.ticketnumber
);
//console.log("patching////////");
//patchCase(incidentId);
};
const onHandleSubmit = (values) => {
//alert(1);
//updateCaseProgress(values);
setCurrentSection(currentSection + 1);
};
@@ -198,86 +260,116 @@ let BuildSection = (props) => {
</form>
</div>
<div className="govuk-grid-column-one-third">
<nav
role="navigation"
aria-labelledby="progress-list"
className="at-nav"
>
<h3 className="govuk-heading-s govuk-!-font-weight-bold gov-font-dark-grey">
{t("newappeal:new-appeal-progress-nav-label")}:
</h3>
<hr className="govuk-section-break govuk-section-break--m govuk-section-break--visible" />
<ol className="govuk-list">
<ul className="govuk-list ">
<li className="at-nav__page">
<ol className="govuk-list">
{Object.keys(titleList).map((key) =>
parseInt(key) + 1 == currentSection ? (
<li key={key}>
<b>
{FieldsTranslations(
titleList[key].value
)}{" "}
</b>
</li>
) : (
<li key={key}>
{props.appealType
.formComplete == "true" ||
parseInt(key) + 1 <
currentSection ? (
<a
className="govuk-link"
href="#"
onClick={() => {
gotoSection(
parseInt(key) +
1
);
}}
>
{FieldsTranslations(
titleList[key].value
)}
</a>
) : (
FieldsTranslations(
titleList[key].value
)
)}
</li>
)
)}
</ol>
</li>
</ul>
</ol>
</nav>
{Object.keys(documentListObj).length > 0 && (
<div>
<h3 className="govuk-heading-s govuk-!-font-weight-bold gov-font-dark-grey">
{t("newappeal:new-appeal-documentlist-nav")}:
<div className="at-nav-container">
<nav
role="navigation"
aria-labelledby="progress-list"
className="at-nav"
>
<h3 className="govuk-heading-s govuk-!-font-weight-bold gov-font-dark-grey progress-heading">
{t("newappeal:new-appeal-progress-nav-label")}:{" "}
<span className="progress-case-reference">
{props.appealType.caseReference.ticketnumber}
</span>
</h3>
<hr className="govuk-section-break govuk-section-break--m govuk-section-break--visible" />
<ol className="govuk-list document-list">
<ol className="govuk-list">
<ul className="govuk-list ">
<li className="at-nav__page">
<ol className="govuk-list govuk-list--bullet">
{Object.entries(documentListObj).map(
([key, value]) => {
return (
<li key={key}>{value}</li>
);
}
<ol className="govuk-list">
{Object.keys(titleList).map((key) =>
parseInt(key) + 1 ==
currentSection ? (
<li key={key}>
<b>
{FieldsTranslations(
titleList[key].value
)}{" "}
</b>
</li>
) : (
<li key={key}>
{props.appealType
.formComplete ==
"true" ||
parseInt(key) + 1 <
currentSection ? (
<a
className="govuk-link"
href="#"
onClick={() => {
gotoSection(
parseInt(
key
) + 1
);
}}
>
{FieldsTranslations(
titleList[key]
.value
)}
</a>
) : (
FieldsTranslations(
titleList[key].value
)
)}
</li>
)
)}
</ol>
</li>
</ul>
</ol>
</div>
)}
</nav>
{Object.keys(documentListObj).length > 0 && (
<div>
<h3 className="govuk-heading-s govuk-!-font-weight-bold gov-font-dark-grey">
{t("newappeal:new-appeal-documentlist-nav")}:
</h3>
<hr className="govuk-section-break govuk-section-break--m govuk-section-break--visible" />
<ol className="govuk-list document-list">
<ul className="govuk-list ">
<li className="at-nav__page">
<ol className="govuk-list govuk-list--bullet">
{Object.entries(
documentListObj
).map(([key, value]) => {
return (
<li key={key}>{value}</li>
);
})}
</ol>
</li>
</ul>
</ol>
</div>
)}
<hr className="govuk-section-break govuk-section-break--m govuk-section-break--visible" />
<button
className="govuk-button govuk-button--secondary progress-save "
onClick={() => {
let valuesObj = props.props.form[props.form].values;
console.log("valuesobj:", valuesObj);
delete valuesObj["_pinswg_appellant_value"];
console.log("on save:", valuesObj);
updateCaseProgress(valuesObj);
router.replace(
router.locale != "en"
? router.locale + "/myportal"
: "/myportal"
);
}}
>
Save and exit
</button>
</div>
</div>
</div>
);
@@ -289,6 +381,7 @@ const mapStateToProps = (state) => {
searchResultsObj: state.searchResultsObj,
formData: state.formData,
appealType: state.appealType,
initialValues: state.appealType.caseReference.caseDetails,
//form: state.form,
};
};
@@ -316,5 +409,6 @@ export default connect(
reduxForm({
form: "appealForm",
destroyOnUnmount: false,
enableReinitialize: true, // this is needed!!
})(BuildSection)
);