link on portal for pdf download
This commit is contained in:
@@ -28,6 +28,11 @@ import {
|
||||
setWatchedCasesDetails,
|
||||
} from "../../store/watchedCases/action";
|
||||
|
||||
import { planningappeals78_pdf } from "../../components/pdftemplates/planningappeals78_pdf";
|
||||
import { other_pdf } from "../../components/pdftemplates/other_pdf";
|
||||
|
||||
import { PDFDownloadLink, pdf } from "@react-pdf/renderer";
|
||||
|
||||
const TopThree = (props) => {
|
||||
let { t } = useTranslation();
|
||||
const {
|
||||
@@ -188,6 +193,29 @@ const TopThree = (props) => {
|
||||
}
|
||||
};
|
||||
|
||||
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.");
|
||||
}
|
||||
};
|
||||
|
||||
let topThreeOnlyArr = showTopThreeArr.slice(0, 3);
|
||||
Object.keys(topThreeOnlyArr).map((key, index) => {
|
||||
topthreeRow.push(
|
||||
@@ -197,10 +225,44 @@ const TopThree = (props) => {
|
||||
<b>{t("myportal:case-reference")}:</b>
|
||||
{topThreeType == "myCases" &&
|
||||
showTopThreeArr[key].pinswg_publishtoweb === false ? (
|
||||
<span>
|
||||
{showTopThreeArr[key].ticketnumber}{" "}
|
||||
<b> - {t("myportal:appeal-pending-label")}</b>
|
||||
</span>
|
||||
<>
|
||||
<span>
|
||||
{showTopThreeArr[key].ticketnumber}{" "}
|
||||
<b>
|
||||
{" "}
|
||||
- {t("myportal:appeal-pending-label")}
|
||||
</b>
|
||||
</span>
|
||||
<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 " +
|
||||
showTopThreeArr[key]
|
||||
.ticketnumber
|
||||
) &&
|
||||
downloadPDF(
|
||||
showTopThreeArr[key].incidentid,
|
||||
showTopThreeArr[key]
|
||||
.ticketnumber
|
||||
);
|
||||
}}
|
||||
>
|
||||
<img
|
||||
src={
|
||||
"/assets/images/documenttypes/pdf.png"
|
||||
}
|
||||
alt={showTopThreeArr[key].ticketnumber}
|
||||
width={25}
|
||||
height={25}
|
||||
title={
|
||||
"Download summary for " +
|
||||
showTopThreeArr[key].ticketnumber
|
||||
}
|
||||
/>
|
||||
</span>
|
||||
</>
|
||||
) : (
|
||||
<Link
|
||||
href={
|
||||
@@ -477,52 +539,6 @@ const TopThree = (props) => {
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
{/* {topThreeType == "watchedCases" && !props.myReps && (
|
||||
<div className="">
|
||||
<button
|
||||
title={t("case:you-have-stopped-watching-label")}
|
||||
className=" cardModuleRemoveCase govuk-link govuk-link--no-underline govuk-link--inverse "
|
||||
onClick={() => {
|
||||
confirm(
|
||||
t("case:you-have-stopped-watching-label") +
|
||||
showTopThreeArr[key][
|
||||
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
|
||||
]
|
||||
) &&
|
||||
deleteItem(
|
||||
showTopThreeArr[key].pinswg_watchlistid,
|
||||
"watchedCases"
|
||||
);
|
||||
}}
|
||||
>
|
||||
—
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
{topThreeType == "awaitingSubmission" && (
|
||||
<div className="">
|
||||
<button
|
||||
title={t("case:do-you-want-to-delete-case-label")}
|
||||
className=" cardModuleRemoveCase govuk-link govuk-link--no-underline govuk-link--inverse "
|
||||
onClick={() => {
|
||||
confirm(
|
||||
t("case:do-you-want-to-delete-case-label") +
|
||||
showTopThreeArr[key].ticketnumber +
|
||||
"?\n" +
|
||||
t(
|
||||
"case:do-you-want-to-delete-case-disclaimer-label"
|
||||
)
|
||||
) &&
|
||||
deleteItem(
|
||||
showTopThreeArr[key].incidentid,
|
||||
"awaitingSubmission"
|
||||
);
|
||||
}}
|
||||
>
|
||||
—
|
||||
</button>
|
||||
</div>
|
||||
)} */}
|
||||
</div>
|
||||
);
|
||||
});
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user