fix routing spatial-plannings

This commit is contained in:
arifal
2025-03-04 16:17:47 +07:00
parent 0a7012a57c
commit 5b4780495e
4 changed files with 75 additions and 67 deletions

View File

@@ -195,7 +195,7 @@ class UsersRoleMenuSeeder extends Seeder
], ],
[ [
"name" => "Tata Ruang", "name" => "Tata Ruang",
"url" => "spatial-plannings.index", "url" => "web-spatial-plannings.index",
"icon" => null, "icon" => null,
"parent_id" => $data->id, "parent_id" => $data->id,
"sort_order" => 6, "sort_order" => 6,

View File

@@ -73,7 +73,7 @@ document.addEventListener("DOMContentLoaded", function () {
}, 3000); }, 3000);
setTimeout(() => { setTimeout(() => {
window.location.href = "/data/spatial-plannings"; window.location.href = "/data/web-spatial-plannings";
}, 3000); }, 3000);
} else { } else {
if (authLogo) { if (authLogo) {

View File

@@ -25,7 +25,7 @@ console.log(dropzonePreviewNode);
headers: { headers: {
Authorization: `Bearer ${document Authorization: `Bearer ${document
.querySelector('meta[name="api-token"]') .querySelector('meta[name="api-token"]')
.getAttribute("content")}` .getAttribute("content")}`,
}, },
init: function () { init: function () {
// Listen for the success event // Listen for the success event
@@ -34,11 +34,12 @@ console.log(dropzonePreviewNode);
console.log("API Response:", response); console.log("API Response:", response);
// Show success toast // Show success toast
showToast('bxs-check-square', 'green', response.message); showToast("bxs-check-square", "green", response.message);
document.getElementById("submit-upload").innerHTML = "Upload Files"; document.getElementById("submit-upload").innerHTML =
"Upload Files";
// Tunggu sebentar lalu reload halaman // Tunggu sebentar lalu reload halaman
setTimeout(() => { setTimeout(() => {
window.location.href = "/data/spatial-plannings"; window.location.href = "/data/web-spatial-plannings";
}, 2000); }, 2000);
}); });
// Listen for the error event // Listen for the error event
@@ -48,28 +49,30 @@ console.log(dropzonePreviewNode);
// Handle the error response // Handle the error response
// Show error toast // Show error toast
showToast('bxs-error-alt', 'red', errorMessage.message); showToast("bxs-error-alt", "red", errorMessage.message);
document.getElementById("submit-upload").innerHTML = "Upload Files"; document.getElementById("submit-upload").innerHTML =
"Upload Files";
}); });
} },
}))); })));
// Add event listener to control the submission manually // Add event listener to control the submission manually
document.querySelector("#submit-upload").addEventListener("click", function () { document.querySelector("#submit-upload").addEventListener("click", function () {
console.log("Ini adalah value dropzone", dropzone.files[0]); console.log("Ini adalah value dropzone", dropzone.files[0]);
const formData = new FormData() const formData = new FormData();
console.log("Dropzonefiles", dropzone.files); console.log("Dropzonefiles", dropzone.files);
this.innerHTML = '<span class="spinner-border spinner-border-sm me-1" role="status" aria-hidden="true"></span>Loading...'; this.innerHTML =
'<span class="spinner-border spinner-border-sm me-1" role="status" aria-hidden="true"></span>Loading...';
// Pastikan ada file dalam queue sebelum memprosesnya // Pastikan ada file dalam queue sebelum memprosesnya
if (dropzone.files.length > 0) { if (dropzone.files.length > 0) {
formData.append('file', dropzone.files[0]) formData.append("file", dropzone.files[0]);
console.log("ini adalah form data on submit", ...formData); console.log("ini adalah form data on submit", ...formData);
dropzone.processQueue(); // Ini akan manual memicu upload dropzone.processQueue(); // Ini akan manual memicu upload
} else { } else {
// Show error toast when no file is selected // Show error toast when no file is selected
showToast('bxs-error-alt', 'red', "Please add a file first."); showToast("bxs-error-alt", "red", "Please add a file first.");
document.getElementById("submit-upload").innerHTML = "Upload Files"; document.getElementById("submit-upload").innerHTML = "Upload Files";
} }
}); });
@@ -87,17 +90,19 @@ dropzone.on("complete", function(file) {
}); });
// Add event listener to download file template // Add event listener to download file template
document.getElementById('downloadtempspatialPlannings').addEventListener('click', function() { document
.getElementById("downloadtempspatialPlannings")
.addEventListener("click", function () {
var url = `${GlobalConfig.apiHost}/api/download-template-spatialPlannings`; var url = `${GlobalConfig.apiHost}/api/download-template-spatialPlannings`;
fetch(url, { fetch(url, {
method: 'GET', method: "GET",
headers: { headers: {
Authorization: `Bearer ${document Authorization: `Bearer ${document
.querySelector('meta[name="api-token"]') .querySelector('meta[name="api-token"]')
.getAttribute("content")}` .getAttribute("content")}`,
}, },
}) })
.then(response => { .then((response) => {
if (response.ok) { if (response.ok) {
return response.blob(); // Jika respons OK, konversi menjadi blob return response.blob(); // Jika respons OK, konversi menjadi blob
} else { } else {
@@ -107,38 +112,42 @@ document.getElementById('downloadtempspatialPlannings').addEventListener('click'
.then((blob) => { .then((blob) => {
console.log(blob); console.log(blob);
const url = window.URL.createObjectURL(blob); const url = window.URL.createObjectURL(blob);
const a = document.createElement('a'); const a = document.createElement("a");
a.style.display = 'none'; a.style.display = "none";
a.href = url; a.href = url;
a.download = 'template_rencana_tata_ruang.xlsx'; a.download = "template_rencana_tata_ruang.xlsx";
document.body.appendChild(a); document.body.appendChild(a);
a.click(); a.click();
window.URL.revokeObjectURL(url); window.URL.revokeObjectURL(url);
}) })
.catch((error) => { .catch((error) => {
console.error("Gagal mendownload file:", error); console.error("Gagal mendownload file:", error);
showToast('bxs-error-alt', 'red', "Template file is not already exist."); showToast(
}) "bxs-error-alt",
}) "red",
"Template file is not already exist."
);
});
});
// Function to show toast // Function to show toast
function showToast(iconClass, iconColor, message) { function showToast(iconClass, iconColor, message) {
const toastElement = document.getElementById('toastUploadSpatialPlannings'); const toastElement = document.getElementById("toastUploadSpatialPlannings");
const toastBody = toastElement.querySelector('.toast-body'); const toastBody = toastElement.querySelector(".toast-body");
const toastHeader = toastElement.querySelector('.toast-header'); const toastHeader = toastElement.querySelector(".toast-header");
// Remove existing icon (if any) before adding the new one // Remove existing icon (if any) before adding the new one
const existingIcon = toastHeader.querySelector('.bx'); const existingIcon = toastHeader.querySelector(".bx");
if (existingIcon) { if (existingIcon) {
toastHeader.querySelector('.auth-logo').removeChild(existingIcon); // Remove the existing icon toastHeader.querySelector(".auth-logo").removeChild(existingIcon); // Remove the existing icon
} }
// Add the new icon to the toast header // Add the new icon to the toast header
const icon = document.createElement('i'); const icon = document.createElement("i");
icon.classList.add('bx', iconClass); icon.classList.add("bx", iconClass);
icon.style.fontSize = '25px'; icon.style.fontSize = "25px";
icon.style.color = iconColor; icon.style.color = iconColor;
toastHeader.querySelector('.auth-logo').appendChild(icon); toastHeader.querySelector(".auth-logo").appendChild(icon);
// Set the toast message // Set the toast message
toastBody.textContent = message; toastBody.textContent = message;
@@ -147,4 +156,3 @@ function showToast(iconClass, iconColor, message) {
const toast = new bootstrap.Toast(toastElement); // Inisialisasi Bootstrap Toast const toast = new bootstrap.Toast(toastElement); // Inisialisasi Bootstrap Toast
toast.show(); toast.show();
} }

View File

@@ -97,7 +97,7 @@ Route::group(['middleware' => 'auth'], function(){
Route::get('/tourisms/bulk-create', [TourismController::class, 'bulkCreate'])->name('tourisms.bulk-create'); Route::get('/tourisms/bulk-create', [TourismController::class, 'bulkCreate'])->name('tourisms.bulk-create');
// Resource route, kecuali create karena dibuat terpisah // Resource route, kecuali create karena dibuat terpisah
Route::resource('/spatial-plannings', SpatialPlanningController::class)->except(['create', 'show']); Route::resource('/we-spatial-plannings', SpatialPlanningController::class)->except(['create', 'show']);
// Rute khusus untuk create dan bulk-create // Rute khusus untuk create dan bulk-create
Route::get('/spatial-plannings/create', [SpatialPlanningController::class, 'create'])->name('tourisms.create'); Route::get('/spatial-plannings/create', [SpatialPlanningController::class, 'create'])->name('tourisms.create');
Route::get('/spatial-plannings/bulk-create', [SpatialPlanningController::class, 'bulkCreate'])->name('tourisms.bulk-create'); Route::get('/spatial-plannings/bulk-create', [SpatialPlanningController::class, 'bulkCreate'])->name('tourisms.bulk-create');