diff --git a/wwwroot/driver/js/detail-penjemputan-non-tps.js b/wwwroot/driver/js/detail-penjemputan-non-tps.js
index c50ef6b..0ff151c 100644
--- a/wwwroot/driver/js/detail-penjemputan-non-tps.js
+++ b/wwwroot/driver/js/detail-penjemputan-non-tps.js
@@ -417,7 +417,9 @@ document.addEventListener('DOMContentLoaded', async function() {
-
+
+
![Preview foto kedatangan]()
+
${getKedatanganUploadStateMarkup(tps)}
@@ -465,7 +467,9 @@ document.addEventListener('DOMContentLoaded', async function() {
-
+
+
![Preview foto petugas]()
+
${getPetugasUploadStateMarkup(tps)}
@@ -490,25 +494,49 @@ document.addEventListener('DOMContentLoaded', async function() {
const form = tpsContentContainer.querySelector("form");
if (!form) return;
- const previewKedatangan = form.querySelector('.tps-preview-kedatangan');
- if (previewKedatangan) {
- if (tps.fotoKedatangan.length > 0) {
- renderStoredPhotos(tps.fotoKedatangan, previewKedatangan);
- } else if (tps.fotoKedatanganUploaded && tps.fotoKedatanganFileNames.length > 0) {
- renderServerImagePreview(tps.fotoKedatanganFileNames, previewKedatangan);
- }
- }
-
- const previewPetugas = form.querySelector('.tps-preview-petugas');
- if (previewPetugas) {
- if (tps.fotoPetugas.length > 0) {
- renderStoredPhotos(tps.fotoPetugas, previewPetugas);
- } else if (tps.fotoPetugasUploaded && tps.fotoPetugasFileNames.length > 0) {
- renderServerImagePreview(tps.fotoPetugasFileNames, previewPetugas);
- }
+ const previewWrapKedatangan = form.querySelector('.tps-preview-kedatangan-wrap');
+ const previewImgKedatangan = form.querySelector('.tps-preview-kedatangan-img');
+ if (previewWrapKedatangan && previewImgKedatangan) {
+ let imgSrc = '';
+ if (Array.isArray(tps.fotoKedatangan) && tps.fotoKedatangan.length > 0) {
+ const localUrl = getStoredPhotoUrl(tps.fotoKedatangan[0]);
+ if (localUrl) {
+ imgSrc = localUrl;
+ if (isBrowserFile(resolveStoredPhoto(tps.fotoKedatangan[0]))) {
+ previewImgKedatangan.onload = () => URL.revokeObjectURL(localUrl);
+ }
}
+ } else if (tps.fotoKedatanganUploaded && Array.isArray(tps.fotoKedatanganFileNames) && tps.fotoKedatanganFileNames.length > 0) {
+ imgSrc = tps.fotoKedatanganFileNames[0];
+ }
+ if (imgSrc) {
+ previewImgKedatangan.src = imgSrc;
+ previewWrapKedatangan.classList.remove('hidden');
+ }
}
+ const previewWrapPetugas = form.querySelector('.tps-preview-petugas-wrap');
+ const previewImgPetugas = form.querySelector('.tps-preview-petugas-img');
+ if (previewWrapPetugas && previewImgPetugas) {
+ let imgSrc = '';
+ if (Array.isArray(tps.fotoPetugas) && tps.fotoPetugas.length > 0) {
+ const localUrl = getStoredPhotoUrl(tps.fotoPetugas[0]);
+ if (localUrl) {
+ imgSrc = localUrl;
+ if (isBrowserFile(resolveStoredPhoto(tps.fotoPetugas[0]))) {
+ previewImgPetugas.onload = () => URL.revokeObjectURL(localUrl);
+ }
+ }
+ } else if (tps.fotoPetugasUploaded && Array.isArray(tps.fotoPetugasFileNames) && tps.fotoPetugasFileNames.length > 0) {
+ imgSrc = tps.fotoPetugasFileNames[0];
+ }
+ if (imgSrc) {
+ previewImgPetugas.src = imgSrc;
+ previewWrapPetugas.classList.remove('hidden');
+ }
+ }
+ }
+
function renderStoredPhotos(files, container) {
container.innerHTML = "";
container.className = "space-y-2";
@@ -552,28 +580,56 @@ document.addEventListener('DOMContentLoaded', async function() {
const btnAddTimbangan = form.querySelector(".tps-btn-add-timbangan");
fotoKedatanganInput.addEventListener('change', function() {
- tps.fotoKedatangan = Array.from(this.files);
- tps.fotoKedatanganUploaded = false;
+ if (!this.files || !this.files[0]) return;
+ const currentTps = tpsData[activeTpsIndex];
+ const file = this.files[0];
+
+ const previewWrap = form.querySelector('.tps-preview-kedatangan-wrap');
+ const previewImg = form.querySelector('.tps-preview-kedatangan-img');
+ if (previewWrap && previewImg) {
+ const localUrl = URL.createObjectURL(file);
+ previewImg.src = localUrl;
+ previewWrap.classList.remove('hidden');
+ previewImg.onload = () => URL.revokeObjectURL(localUrl);
+ }
+
+ currentTps.fotoKedatangan = [file];
+ currentTps.fotoKedatanganFileNames = [];
+ currentTps.fotoKedatanganUploaded = false;
+
updateWaktuKedatangan();
- updateMultiPreview(this, form.querySelector('.tps-preview-kedatangan'));
refreshKedatanganUploadState(form);
});
fotoPetugasInput.addEventListener('change', function() {
- tps.fotoPetugas = Array.from(this.files);
- tps.fotoPetugasUploaded = false;
- updateMultiPreview(this, form.querySelector('.tps-preview-petugas'));
+ if (!this.files || !this.files[0]) return;
+ const currentTps = tpsData[activeTpsIndex];
+ const file = this.files[0];
+
+ const previewWrap = form.querySelector('.tps-preview-petugas-wrap');
+ const previewImg = form.querySelector('.tps-preview-petugas-img');
+ if (previewWrap && previewImg) {
+ const localUrl = URL.createObjectURL(file);
+ previewImg.src = localUrl;
+ previewWrap.classList.remove('hidden');
+ previewImg.onload = () => URL.revokeObjectURL(localUrl);
+ }
+
+ currentTps.fotoPetugas = [file];
+ currentTps.fotoPetugasFileNames = [];
+ currentTps.fotoPetugasUploaded = false;
+
refreshPetugasUploadState(form);
});
namaPetugasInput.addEventListener('input', function() {
- tps.namaPetugas = this.value;
+ tpsData[activeTpsIndex].namaPetugas = this.value;
refreshPetugasUploadState(form);
- scheduleAutoSave();
+ scheduleAutoSave();
});
namaPetugasInput.addEventListener('blur', function() {
- tps.namaPetugas = this.value;
+ tpsData[activeTpsIndex].namaPetugas = this.value;
scheduleAutoSave();
});
@@ -1571,6 +1627,12 @@ document.addEventListener('DOMContentLoaded', async function() {
if (form) {
const fotoInput = form.querySelector('.tps-foto-kedatangan');
if (fotoInput) fotoInput.value = '';
+ const previewWrap = form.querySelector('.tps-preview-kedatangan-wrap');
+ const previewImg = form.querySelector('.tps-preview-kedatangan-img');
+ if (previewWrap && previewImg && tps.fotoKedatanganFileNames.length > 0) {
+ previewImg.src = tps.fotoKedatanganFileNames[0];
+ previewWrap.classList.remove('hidden');
+ }
refreshKedatanganUploadState(form);
}
scheduleAutoSave();
@@ -1617,6 +1679,12 @@ document.addEventListener('DOMContentLoaded', async function() {
if (form) {
const fotoInput = form.querySelector('.tps-foto-petugas');
if (fotoInput) fotoInput.value = '';
+ const previewWrap = form.querySelector('.tps-preview-petugas-wrap');
+ const previewImg = form.querySelector('.tps-preview-petugas-img');
+ if (previewWrap && previewImg && tps.fotoPetugasFileNames.length > 0) {
+ previewImg.src = tps.fotoPetugasFileNames[0];
+ previewWrap.classList.remove('hidden');
+ }
refreshPetugasUploadState(form);
}
scheduleAutoSave();