rev: file upload ekstensi
Deskripsi: - tambah type ekstensi file upload pada project, task divisi dan dokumen divisi No Issues
This commit is contained in:
@@ -149,7 +149,7 @@ export default function DrawerMenuDocumentDivision() {
|
||||
}}
|
||||
activateOnClick={false}
|
||||
maxSize={3 * 1024 ** 2}
|
||||
accept={['text/csv', 'image/png', 'image/jpeg', 'image/heic', 'application/pdf']}
|
||||
accept={['image/png', 'image/jpeg', 'image/heic', 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']}
|
||||
onReject={(files) => {
|
||||
refresh.set(true)
|
||||
setOpenModal(false)
|
||||
|
||||
@@ -34,6 +34,7 @@ export default function NavbarDocumentDivision() {
|
||||
const [isOpenModalView, setOpenModalView] = useState(false);
|
||||
const [isExtension, setExtension] = useState("");
|
||||
const [idStorage, setIdStorage] = useState("");
|
||||
const [nameFileFull, setNameFileFull] = useState("");
|
||||
const [name, setName] = useState("");
|
||||
const [isOpen, setOpen] = useState(false);
|
||||
const [isDelete, setIsDelete] = useState(false);
|
||||
@@ -253,9 +254,18 @@ export default function NavbarDocumentDivision() {
|
||||
setRename(true);
|
||||
}
|
||||
|
||||
const onDownload = async () => {
|
||||
const onDownload = async (kategori: string, file?: { idFile: string, nameFile: string }) => {
|
||||
try {
|
||||
const fileUrl = `https://wibu-storage.wibudev.com/api/files/${selectedFiles[0].idStorage}`;
|
||||
let idStorageDownload, nameFileDownload = ""
|
||||
if (kategori == "selected") {
|
||||
idStorageDownload = selectedFiles[0].idStorage
|
||||
nameFileDownload = `${selectedFiles[0].name}.${selectedFiles[0].extension}`
|
||||
} else if (kategori == "klik") {
|
||||
idStorageDownload = file?.idFile
|
||||
nameFileDownload = String(file?.nameFile)
|
||||
}
|
||||
|
||||
const fileUrl = `https://wibu-storage.wibudev.com/api/files/${idStorageDownload}`;
|
||||
const response = await fetch(fileUrl);
|
||||
const blob = await response.blob();
|
||||
|
||||
@@ -263,7 +273,7 @@ export default function NavbarDocumentDivision() {
|
||||
const link = document.createElement("a");
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
link.href = url;
|
||||
link.download = `${selectedFiles[0].name}.${selectedFiles[0].extension}`; // Nama file yang akan diunduh
|
||||
link.download = nameFileDownload; // Nama file yang akan diunduh
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
|
||||
@@ -341,7 +351,7 @@ export default function NavbarDocumentDivision() {
|
||||
direction={"column"}
|
||||
onClick={() => {
|
||||
if (selectedFiles.length > 0 && copyAllowed) {
|
||||
onDownload();
|
||||
onDownload("selected");
|
||||
}
|
||||
}}
|
||||
>
|
||||
@@ -663,9 +673,7 @@ export default function NavbarDocumentDivision() {
|
||||
</Box>
|
||||
) : (
|
||||
dataDocument.map((v, i) => {
|
||||
const isSelected = selectedFiles.some(
|
||||
(i: any) => i?.id == v.id
|
||||
);
|
||||
const isSelected = selectedFiles.some((i: any) => i?.id == v.id);
|
||||
return (
|
||||
<Box key={i}>
|
||||
<Box mt={10} mb={10}>
|
||||
@@ -680,20 +688,17 @@ export default function NavbarDocumentDivision() {
|
||||
xl: 1,
|
||||
}}
|
||||
onClick={() => {
|
||||
if (
|
||||
v.category == "FOLDER" &&
|
||||
selectedFiles.length == 0 &&
|
||||
!dariSelectAll
|
||||
) {
|
||||
if (v.category == "FOLDER" && selectedFiles.length == 0 && !dariSelectAll) {
|
||||
router.push("?path=" + v.id);
|
||||
} else if (
|
||||
v.category == "FILE" &&
|
||||
selectedFiles.length == 0 &&
|
||||
!dariSelectAll
|
||||
) {
|
||||
} else if (v.category == "FILE" && selectedFiles.length == 0 && !dariSelectAll) {
|
||||
setExtension(v.extension);
|
||||
setIdStorage(v.idStorage);
|
||||
setOpenModalView(true);
|
||||
setNameFileFull(v.name + "." + v.extension)
|
||||
if (v.extension != "doc" && v.extension != "docx" && v.extension != "xls" && v.extension != "xlsx" && v.extension != "ppt" && v.extension != "pptx") {
|
||||
setOpenModalView(true);
|
||||
} else {
|
||||
onDownload("klik", { idFile: v.idStorage, nameFile: v.name + "." + v.extension })
|
||||
}
|
||||
}
|
||||
}}
|
||||
>
|
||||
@@ -712,7 +717,13 @@ export default function NavbarDocumentDivision() {
|
||||
{v.category == "FOLDER" ? (
|
||||
<FcFolder size={isMobile ? 40 : 50} />
|
||||
) : v.extension == "pdf" ||
|
||||
v.extension == "csv" ? (
|
||||
v.extension == "csv" ||
|
||||
v.extension == "doc" ||
|
||||
v.extension == "docx" ||
|
||||
v.extension == "xls" ||
|
||||
v.extension == "xlsx" ||
|
||||
v.extension == "ppt" ||
|
||||
v.extension == "pptx" ? (
|
||||
<FcDocument size={isMobile ? 40 : 50} />
|
||||
) : (
|
||||
<FcImageFile size={isMobile ? 40 : 50} />
|
||||
@@ -723,7 +734,13 @@ export default function NavbarDocumentDivision() {
|
||||
{v.category == "FOLDER" ? (
|
||||
<FcFolder size={isMobile ? 40 : 50} />
|
||||
) : v.extension == "pdf" ||
|
||||
v.extension == "csv" ? (
|
||||
v.extension == "csv" ||
|
||||
v.extension == "doc" ||
|
||||
v.extension == "docx" ||
|
||||
v.extension == "xls" ||
|
||||
v.extension == "xlsx" ||
|
||||
v.extension == "ppt" ||
|
||||
v.extension == "pptx" ? (
|
||||
<FcDocument size={isMobile ? 40 : 50} />
|
||||
) : (
|
||||
<FcImageFile size={isMobile ? 40 : 50} />
|
||||
@@ -747,20 +764,17 @@ export default function NavbarDocumentDivision() {
|
||||
<Flex
|
||||
direction={"column"}
|
||||
onClick={() => {
|
||||
if (
|
||||
v.category == "FOLDER" &&
|
||||
selectedFiles.length == 0 &&
|
||||
!dariSelectAll
|
||||
) {
|
||||
if (v.category == "FOLDER" && selectedFiles.length == 0 && !dariSelectAll) {
|
||||
router.push("?path=" + v.id);
|
||||
} else if (
|
||||
v.category == "FILE" &&
|
||||
selectedFiles.length == 0 &&
|
||||
!dariSelectAll
|
||||
) {
|
||||
} else if (v.category == "FILE" && selectedFiles.length == 0 && !dariSelectAll) {
|
||||
setExtension(v.extension);
|
||||
setIdStorage(v.idStorage);
|
||||
setOpenModalView(true);
|
||||
setNameFileFull(v.name + "." + v.extension)
|
||||
if (v.extension != "doc" && v.extension != "docx" && v.extension != "xls" && v.extension != "xlsx" && v.extension != "ppt" && v.extension != "pptx") {
|
||||
setOpenModalView(true);
|
||||
} else {
|
||||
onDownload("klik", { idFile: v.idStorage, nameFile: v.name + "." + v.extension })
|
||||
}
|
||||
}
|
||||
}}
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user