link on portal for pdf download

This commit is contained in:
2025-06-24 10:52:06 +01:00
parent febfb4e532
commit 4d310fd6c1
10 changed files with 564 additions and 64 deletions
+57 -4
View File
@@ -116,6 +116,30 @@ const ViewAllResults = (props) => {
: props[viewAllKey][viewAllKey + "Details"] || [];
let resultsRowArr = [];
const downloadPDF = async (docProps, ticketnumber) => {
try {
const res = await fetch("/api/file/generateappealpdfcopy", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ docProps }),
});
if (!res.ok) throw new Error("PDF generation failed");
const blob = await res.blob();
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = `Appeal_${ticketnumber || "summary"}.pdf`;
a.click();
URL.revokeObjectURL(url);
} catch (err) {
console.error("Download error:", err);
alert("Could not generate PDF.");
}
};
const buildResultsRowArr = () => {
resultsArr.map((item, key) => {
let detailsObj = jsonpath({
@@ -149,10 +173,39 @@ const ViewAllResults = (props) => {
<dd className="govuk-summary-list__value govuk-!-font-size-16 govuk-!-padding-left-2">
{viewAllKey == "myCases" &&
resultsArr[key].pinswg_publishtoweb === false ? (
<div className="cardModuleReference">
{resultsArr[key].ticketnumber}{" "}
<b> {t("myportal:appeal-pending-label")}</b>
</div>
<>
<div className="cardModuleReference">
{resultsArr[key].ticketnumber}{" "}
<b> {t("myportal:appeal-pending-label")}</b>
</div>
<span
className=" govuk-link govuk-link--no-underline "
style={{ cursor: "pointer" }}
onClick={() => {
confirm(
"Do you want to download a pdf copy of your appeal for " +
resultsArr[key].ticketnumber
) &&
downloadPDF(
resultsArr[key].incidentid,
resultsArr[key].ticketnumber
);
}}
>
<img
src={
"/assets/images/documenttypes/pdf.png"
}
alt={resultsArr[key].ticketnumber}
width={25}
height={25}
title={
"Download summary for " +
resultsArr[key].ticketnumber
}
/>
</span>
</>
) : (
<>
<Link