Files
sibedas/resources/js/business-industries/create.js
2025-03-13 14:13:06 +07:00

81 lines
3.1 KiB
JavaScript

import { Dropzone } from "dropzone";
import GlobalConfig from "../global-config";
Dropzone.autoDiscover = false;
var previewTemplate,
dropzone,
dropzonePreviewNode = document.querySelector("#dropzone-preview-list");
const uploadButton = document.getElementById("btnUploadBusinessIndustry");
const spinner = document.getElementById("spinner");
const toastNotification = document.getElementById("toastNotification");
const toast = new bootstrap.Toast(toastNotification);
let menuId = document.getElementById("menuId").value;
(dropzonePreviewNode.id = ""),
dropzonePreviewNode &&
((previewTemplate = dropzonePreviewNode.parentNode.innerHTML),
dropzonePreviewNode.parentNode.removeChild(dropzonePreviewNode),
(dropzone = new Dropzone(".dropzone", {
url: `${GlobalConfig.apiHost}/api/api-business-industries/upload`,
method: "post",
acceptedFiles: ".xls,.xlsx", // Use acceptedFiles for better validation
previewTemplate: previewTemplate,
previewsContainer: "#dropzone-preview",
autoProcessQueue: false, // Disable auto post
headers: {
Authorization: `Bearer ${document
.querySelector('meta[name="api-token"]')
.getAttribute("content")}`,
},
init: function () {
this.on("success", function (file, response) {
document.getElementById("toast-message").innerText =
response.message;
toast.show();
setTimeout(() => {
window.location.href = `/data/business-industries?menu_id=${menuId}`;
}, 2000);
});
this.on("error", function (file, errorMessage) {
console.error("Error uploading file:", file);
console.error("Error message:", errorMessage);
document.getElementById("toast-message").innerText =
errorMessage.message;
toast.show();
uploadButton.disabled = false;
spinner.classList.add("d-none");
});
},
})));
// Add event listener to control the submission manually
document
.querySelector("#btnUploadBusinessIndustry")
.addEventListener("click", function () {
console.log("Ini adalah value dropzone", dropzone.files[0]);
const formData = new FormData();
if (dropzone.files.length > 0) {
formData.append("file", dropzone.files[0]);
dropzone.processQueue(); // Ini akan manual memicu upload
uploadButton.disabled = true;
spinner.classList.remove("d-none");
} else {
document.getElementById("toast-message").innerText =
"Please add a file first.";
toast.show();
uploadButton.disabled = false;
spinner.classList.add("d-none");
}
});
dropzone.on("addedfile", function (file) {});
dropzone.on("complete", function (file) {
dropzone.removeFile(file);
});