download link with filename from api

This commit is contained in:
2021-10-08 11:10:15 +01:00
parent ab62e339aa
commit e19efb8b62
7 changed files with 76 additions and 55 deletions
-15
View File
@@ -663,18 +663,3 @@ export const getPortalModuelDetails = (token, appealType, caseReference) => {
console.log("thiserror", error);
});
};
export const getFileFromCRM = (docRef) => {
const weburl = "/api/proxy/documents/download/" + docRef;
console.log("proxy url", weburl);
return axios
.get(weburl, { responseType: "arraybuffer" })
.then((res) => {
console.log(res);
return res;
})
.catch((error) => {
console.log("thi serror", error);
});
};
+20 -29
View File
@@ -47,9 +47,9 @@ const DocumentDetails = (props) => {
documentDetailsArr = documentDetailsArr.value;
return (
<dl className="govuk-summary-list govuk-!-margin-bottom-9 results">
<dl className="documentList govuk-summary-list govuk-!-margin-bottom-9 results">
<div className="govuk-summary-list__row results-headings">
<dd className="govuk-summary-list__key govuk-!-font-size-16 govuk-!-padding-left-2">
<dd className="govuk-summary-list__key govuk-!-font-size-16 ">
{t("case:documents-name-label")}
</dd>
<dd className="govuk-summary-list__key govuk-!-font-size-16">
@@ -58,9 +58,9 @@ const DocumentDetails = (props) => {
<dd className="govuk-summary-list__key govuk-!-font-size-16">
{t("case:documents-date-published-label")}
</dd>
<dd className="govuk-summary-list__key govuk-!-font-size-16">
{/* <dd className="govuk-summary-list__key govuk-!-font-size-16">
{t("case:documents-size-label")}
</dd>
</dd> */}
</div>
{documentDetailsArr.map((item) => {
@@ -88,29 +88,25 @@ const DocumentDetails = (props) => {
className="govuk-summary-list__row"
key={key}
>
<dd className="govuk-summary-list__value govuk-!-font-size-16 govuk-!-padding-left-2">
<Link
<dd className="govuk-summary-list__value govuk-!-font-size-16 ">
<a
href={
"/api/proxy/documents/download/" +
detailsObj.pinswg_isharedocumentreference
}
>
<a>
<span className="results-visually-hidden">
{t(
"case:documents-name-label"
)}
:
</span>
{_.has(historyObj, [
"_pinswg_documentid_value@OData.Community.Display.V1.FormattedValue",
])
? historyObj[
"_pinswg_documentid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
</a>
</Link>
<span className="results-visually-hidden">
{t("case:documents-name-label")}
:
</span>
{_.has(historyObj, [
"_pinswg_documentid_value@OData.Community.Display.V1.FormattedValue",
])
? historyObj[
"_pinswg_documentid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
</a>
</dd>
<dd className="govuk-summary-list__value govuk-!-font-size-16">
<span className="results-visually-hidden">
@@ -152,12 +148,12 @@ const DocumentDetails = (props) => {
)
: ""}
</dd>
<dd className="govuk-summary-list__value govuk-!-font-size-16">
{/* <dd className="govuk-summary-list__value govuk-!-font-size-16">
<span className="results-visually-hidden">
{t("case:documents-size-label")}:
</span>
92
</dd>
</dd> */}
</div>
) : (
""
@@ -212,11 +208,6 @@ const DocumentDetails = (props) => {
};
const searchDocumentResultsObj = docDetailsObj();
const getFileFromCRM = (event, docRef) => {
console.log(e, docRef);
return alert(docRef);
};
}, [incidentid, setDocumentHistory, setDocumentDetails]);
function formatDates(dateObj) {
+5 -1
View File
@@ -1,7 +1,8 @@
import useSWR from "swr";
import { Field, reduxForm } from "redux-form";
import { useRouter } from "next/router";
import DatePicker from "react-datepicker";
import DatePicker, { registerLocale, setDefaultLocale } from "react-datepicker";
import cy from "date-fns/locale/cy";
import React, { useState } from "react";
import "react-datepicker/dist/react-datepicker.css";
import moment from "moment";
@@ -140,6 +141,8 @@ const RenderDatePicker = ({
meta: { touched, error },
...custom
}) => {
const router = useRouter();
registerLocale("cy", cy);
return (
<>
<div
@@ -175,6 +178,7 @@ const RenderDatePicker = ({
)}
<DatePicker
{...custom}
locale={router.locale}
autoOk={true}
dateFormat="dd/MM/yyyy"
onChange={onChange}
+2 -2
View File
@@ -28,8 +28,8 @@ export default function Home({ children, pages }) {
<CaseSearch />
<CaseComment />
<Dns />
{/*<Login />
<Inspectorate /> */}
<Login />
{/* <Inspectorate /> */}
</div>
</div>
</div>
+1
View File
@@ -15,6 +15,7 @@
"compression": "^1.7.4",
"cookies": "^0.8.0",
"crypto-js": "^4.1.1",
"date-fns": "^2.25.0",
"dom": "^0.0.3",
"dynamics-web-api": "^1.7.4",
"express": "^4.17.1",
+9 -6
View File
@@ -61,7 +61,7 @@ const getSASToken = () => {
};
export default async function ApiProxy(req, res) {
console.log(req.method);
//console.log(req.method);
var data = JSON.stringify(req.body);
const SASToken = getSASToken();
@@ -121,18 +121,21 @@ export default async function ApiProxy(req, res) {
: config
)
.then((response) => {
// console.log(response);
res.statusCode = 200;
if (hasDocument) {
res.setHeader("Content-Type", "text/plain");
res.setHeader(
"Content-disposition",
"attachment; filename=" +
response.headers["content-disposition"].split(
"filename="
)[1]
);
res.end(response.data);
} else {
res.setHeader("Content-Type", "application/json");
res.setHeader("Cache-Control", "max-age=1800000");
// res.setHeader("Cache-Control", "max-age=1800000");
res.end(JSON.stringify(response.data));
}
//console.log("response data", response.data);
resolve();
})
.catch((error) => {
+39 -2
View File
@@ -18,6 +18,7 @@ html {
.govuk-button,
.govuk-label,
.govuk-select,
.govuk-radios__item,
.govuk-breadcrumbs__link,
.govuk-fieldset__legend--s,
.govuk-input,
@@ -136,6 +137,7 @@ body {
a.longLinkBreak {
word-wrap: break-word;
}
.govuk-header {
background-color: $charcoal;
@@ -189,6 +191,18 @@ a.longLinkBreak {
}
}
.govuk-input,
.govuk-select,
textarea,
.react-datepicker__input-container input {
border: 1px solid $darkgrey;
padding: 10px 15px;
}
.govuk-radios__label:before {
border: 1px solid $darkgrey;
}
.govuk-checkboxes__conditional--hidden {
display: none;
}
@@ -628,10 +642,22 @@ a.longLinkBreak {
outline: 3px solid transparent;
}
}
.documentList {
.govuk-summary-list__key:first-of-type {
width: 20%;
}
.govuk-summary-list__key:last-of-type {
width: 20%;
}
}
.results .govuk-summary-list__row {
@media screen and (max-width: 900px) {
padding: 20px 10px;
}
&::last-of-type {
width: 30%;
}
}
.results_wider {
@@ -679,8 +705,8 @@ a.longLinkBreak {
height: 40px;
height: 2.5rem;
margin-top: 0;
padding: 5px;
border: 2px solid #0b0c0c;
padding: 10px 15px;
border: 1px solid $darkgrey !important;
border-radius: 0;
-webkit-appearance: none;
appearance: none;
@@ -690,6 +716,17 @@ a.longLinkBreak {
line-height: 1.3157894737;
}
.react-datepicker-popper[data-placement^="top"]
.react-datepicker__triangle::before,
.react-datepicker-popper[data-placement^="bottom"]
.react-datepicker__triangle::before,
.react-datepicker-popper[data-placement^="top"]
.react-datepicker__triangle::after,
.react-datepicker-popper[data-placement^="bottom"]
.react-datepicker__triangle::after {
left: -20px !important;
}
//sharebar
.btn--arrow-up a {