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); 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; documentDetailsArr = documentDetailsArr.value;
return ( 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"> <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")} {t("case:documents-name-label")}
</dd> </dd>
<dd className="govuk-summary-list__key govuk-!-font-size-16"> <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"> <dd className="govuk-summary-list__key govuk-!-font-size-16">
{t("case:documents-date-published-label")} {t("case:documents-date-published-label")}
</dd> </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")} {t("case:documents-size-label")}
</dd> </dd> */}
</div> </div>
{documentDetailsArr.map((item) => { {documentDetailsArr.map((item) => {
@@ -88,29 +88,25 @@ const DocumentDetails = (props) => {
className="govuk-summary-list__row" className="govuk-summary-list__row"
key={key} key={key}
> >
<dd className="govuk-summary-list__value govuk-!-font-size-16 govuk-!-padding-left-2"> <dd className="govuk-summary-list__value govuk-!-font-size-16 ">
<Link <a
href={ href={
"/api/proxy/documents/download/" + "/api/proxy/documents/download/" +
detailsObj.pinswg_isharedocumentreference detailsObj.pinswg_isharedocumentreference
} }
> >
<a> <span className="results-visually-hidden">
<span className="results-visually-hidden"> {t("case:documents-name-label")}
{t( :
"case:documents-name-label" </span>
)} {_.has(historyObj, [
: "_pinswg_documentid_value@OData.Community.Display.V1.FormattedValue",
</span> ])
{_.has(historyObj, [ ? historyObj[
"_pinswg_documentid_value@OData.Community.Display.V1.FormattedValue", "_pinswg_documentid_value@OData.Community.Display.V1.FormattedValue"
]) ]
? historyObj[ : ""}
"_pinswg_documentid_value@OData.Community.Display.V1.FormattedValue" </a>
]
: ""}
</a>
</Link>
</dd> </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"> <span className="results-visually-hidden">
@@ -152,12 +148,12 @@ const DocumentDetails = (props) => {
) )
: ""} : ""}
</dd> </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"> <span className="results-visually-hidden">
{t("case:documents-size-label")}: {t("case:documents-size-label")}:
</span> </span>
92 92
</dd> </dd> */}
</div> </div>
) : ( ) : (
"" ""
@@ -212,11 +208,6 @@ const DocumentDetails = (props) => {
}; };
const searchDocumentResultsObj = docDetailsObj(); const searchDocumentResultsObj = docDetailsObj();
const getFileFromCRM = (event, docRef) => {
console.log(e, docRef);
return alert(docRef);
};
}, [incidentid, setDocumentHistory, setDocumentDetails]); }, [incidentid, setDocumentHistory, setDocumentDetails]);
function formatDates(dateObj) { function formatDates(dateObj) {
+5 -1
View File
@@ -1,7 +1,8 @@
import useSWR from "swr"; import useSWR from "swr";
import { Field, reduxForm } from "redux-form"; import { Field, reduxForm } from "redux-form";
import { useRouter } from "next/router"; 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, { useState } from "react";
import "react-datepicker/dist/react-datepicker.css"; import "react-datepicker/dist/react-datepicker.css";
import moment from "moment"; import moment from "moment";
@@ -140,6 +141,8 @@ const RenderDatePicker = ({
meta: { touched, error }, meta: { touched, error },
...custom ...custom
}) => { }) => {
const router = useRouter();
registerLocale("cy", cy);
return ( return (
<> <>
<div <div
@@ -175,6 +178,7 @@ const RenderDatePicker = ({
)} )}
<DatePicker <DatePicker
{...custom} {...custom}
locale={router.locale}
autoOk={true} autoOk={true}
dateFormat="dd/MM/yyyy" dateFormat="dd/MM/yyyy"
onChange={onChange} onChange={onChange}
+2 -2
View File
@@ -28,8 +28,8 @@ export default function Home({ children, pages }) {
<CaseSearch /> <CaseSearch />
<CaseComment /> <CaseComment />
<Dns /> <Dns />
{/*<Login /> <Login />
<Inspectorate /> */} {/* <Inspectorate /> */}
</div> </div>
</div> </div>
</div> </div>
+1
View File
@@ -15,6 +15,7 @@
"compression": "^1.7.4", "compression": "^1.7.4",
"cookies": "^0.8.0", "cookies": "^0.8.0",
"crypto-js": "^4.1.1", "crypto-js": "^4.1.1",
"date-fns": "^2.25.0",
"dom": "^0.0.3", "dom": "^0.0.3",
"dynamics-web-api": "^1.7.4", "dynamics-web-api": "^1.7.4",
"express": "^4.17.1", "express": "^4.17.1",
+9 -6
View File
@@ -61,7 +61,7 @@ const getSASToken = () => {
}; };
export default async function ApiProxy(req, res) { export default async function ApiProxy(req, res) {
console.log(req.method); //console.log(req.method);
var data = JSON.stringify(req.body); var data = JSON.stringify(req.body);
const SASToken = getSASToken(); const SASToken = getSASToken();
@@ -121,18 +121,21 @@ export default async function ApiProxy(req, res) {
: config : config
) )
.then((response) => { .then((response) => {
// console.log(response);
res.statusCode = 200; res.statusCode = 200;
if (hasDocument) { 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); res.end(response.data);
} else { } else {
res.setHeader("Content-Type", "application/json"); 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)); res.end(JSON.stringify(response.data));
} }
//console.log("response data", response.data);
resolve(); resolve();
}) })
.catch((error) => { .catch((error) => {
+39 -2
View File
@@ -18,6 +18,7 @@ html {
.govuk-button, .govuk-button,
.govuk-label, .govuk-label,
.govuk-select, .govuk-select,
.govuk-radios__item,
.govuk-breadcrumbs__link, .govuk-breadcrumbs__link,
.govuk-fieldset__legend--s, .govuk-fieldset__legend--s,
.govuk-input, .govuk-input,
@@ -136,6 +137,7 @@ body {
a.longLinkBreak { a.longLinkBreak {
word-wrap: break-word; word-wrap: break-word;
} }
.govuk-header { .govuk-header {
background-color: $charcoal; 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 { .govuk-checkboxes__conditional--hidden {
display: none; display: none;
} }
@@ -628,10 +642,22 @@ a.longLinkBreak {
outline: 3px solid transparent; 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 { .results .govuk-summary-list__row {
@media screen and (max-width: 900px) { @media screen and (max-width: 900px) {
padding: 20px 10px; padding: 20px 10px;
} }
&::last-of-type {
width: 30%;
}
} }
.results_wider { .results_wider {
@@ -679,8 +705,8 @@ a.longLinkBreak {
height: 40px; height: 40px;
height: 2.5rem; height: 2.5rem;
margin-top: 0; margin-top: 0;
padding: 5px; padding: 10px 15px;
border: 2px solid #0b0c0c; border: 1px solid $darkgrey !important;
border-radius: 0; border-radius: 0;
-webkit-appearance: none; -webkit-appearance: none;
appearance: none; appearance: none;
@@ -690,6 +716,17 @@ a.longLinkBreak {
line-height: 1.3157894737; 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 //sharebar
.btn--arrow-up a { .btn--arrow-up a {