111 lines
3.8 KiB
JavaScript
111 lines
3.8 KiB
JavaScript
export const getThumbnailIconByMimeType = (fileType) => {
|
|
switch (fileType) {
|
|
case "text/html":
|
|
return "/assets/images/documenttypes/html.png";
|
|
case "text/plain":
|
|
return "/assets/images/documenttypes/txt.png";
|
|
case "application/msword":
|
|
return "/assets/images/documenttypes/doc.png";
|
|
case "application/pdf":
|
|
return "/assets/images/documenttypes/pdf.png";
|
|
case "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
|
|
return "/assets/images/documenttypes/docx.png";
|
|
case "text/csv":
|
|
return "/assets/images/documenttypes/csv.png";
|
|
case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":
|
|
return "/assets/images/documenttypes/xlsx.png";
|
|
case "image/jpeg":
|
|
return "/assets/images/documenttypes/jpg.png";
|
|
case "image/png":
|
|
return "/assets/images/documenttypes/png.png";
|
|
default:
|
|
return "/assets/images/documenttypes/default.png";
|
|
}
|
|
};
|
|
|
|
export const getDocumentTypePrefix = (docCode) => {
|
|
const repDate = new Date();
|
|
|
|
let day = repDate.getDate();
|
|
let month = repDate.getMonth() + 1;
|
|
let year = repDate.getFullYear();
|
|
|
|
const pdfFileNameDateStamp =
|
|
year + "-" + ("0" + month).slice(-2) + "-" + ("0" + day).slice(-2);
|
|
|
|
switch (docCode) {
|
|
case "000000":
|
|
return pdfFileNameDateStamp + "_-_Statement_of_Case";
|
|
case "000001":
|
|
return pdfFileNameDateStamp + "_-_Application_Form";
|
|
case "000002":
|
|
return pdfFileNameDateStamp + "_-_Site_Ownership_Certificate";
|
|
case "000003":
|
|
return pdfFileNameDateStamp + "_-_Decision_Notice";
|
|
case "000004":
|
|
return pdfFileNameDateStamp + "_-_Site_Location_Plan";
|
|
case "000005":
|
|
return pdfFileNameDateStamp + "_-_Plans_Drawing_Documents";
|
|
case "000006":
|
|
return (
|
|
pdfFileNameDateStamp + "_-_Additional_Plans_Drawings_Documents"
|
|
);
|
|
case "000007":
|
|
return pdfFileNameDateStamp + "_-_Design_and_Access_Statement";
|
|
case "000008":
|
|
return pdfFileNameDateStamp + "_-_NSB_LPA_Additional_Documents";
|
|
case "000009":
|
|
return pdfFileNameDateStamp + "_-_LPA_Correspondence";
|
|
case "000010":
|
|
return pdfFileNameDateStamp + "_-_LPA_Original_Permission";
|
|
case "000011":
|
|
return pdfFileNameDateStamp + "_-_LPA's_Registration_Letter";
|
|
case "000012":
|
|
return pdfFileNameDateStamp + "_-_Environmental_Statement";
|
|
case "000013":
|
|
return pdfFileNameDateStamp + "_-_Cost_of_Application";
|
|
case "000014":
|
|
return pdfFileNameDateStamp + "_-_Other_Relevant_Material";
|
|
case "000015":
|
|
return (
|
|
pdfFileNameDateStamp +
|
|
"_-_S106_Agreement_or_Unilateral_Undertaking"
|
|
);
|
|
default:
|
|
return pdfFileNameDateStamp + "_-_000000_-_";
|
|
}
|
|
};
|
|
|
|
const FILENAME_ALLOWED = /^[A-Za-z0-9 ._\-:()—']+$/;
|
|
|
|
export const validateUploadFilename = (
|
|
file,
|
|
t,
|
|
invalidFilenameLabelKey = "newappeal:new-appeal-fileupload-file-error-invalid-filename-label"
|
|
) => {
|
|
const name = file.name;
|
|
|
|
if (name.includes("#")) {
|
|
return {
|
|
code: "filename-invalid-chars",
|
|
message: `${name} ${t(invalidFilenameLabelKey)}`
|
|
};
|
|
}
|
|
|
|
if (!FILENAME_ALLOWED.test(name)) {
|
|
return {
|
|
code: "filename-invalid-chars",
|
|
message: `${name} ${t(invalidFilenameLabelKey)}`
|
|
};
|
|
}
|
|
|
|
if (/[<>"/\\|?*]/.test(name)) {
|
|
return {
|
|
code: "filename-invalid-chars",
|
|
message: `${name} ${t(invalidFilenameLabelKey)}`
|
|
};
|
|
}
|
|
|
|
return null;
|
|
};
|