@@ -258,14 +250,14 @@ document.addEventListener('DOMContentLoaded', function() {
tps.fotoKedatanganUploaded = false;
updateWaktuKedatangan();
updateMultiPreview(this, form.querySelector('.tps-preview-kedatangan'));
- renderTpsForm();
+ refreshKedatanganUploadState(form);
});
fotoPetugasInput.addEventListener('change', function() {
tps.fotoPetugas = Array.from(this.files);
tps.fotoPetugasUploaded = false;
updateMultiPreview(this, form.querySelector('.tps-preview-petugas'));
- renderTpsForm();
+ refreshPetugasUploadState(form);
});
namaPetugasInput.addEventListener('input', function() {
@@ -660,7 +652,7 @@ document.addEventListener('DOMContentLoaded', function() {
if (isUploaded) {
return `
✓ Foto timbangan sudah diupload
-
Kalau mau revisi, pilih file baru di atas. Status upload akan direset otomatis.
+
Jika ingin revisi, pilih file baru diatas. Status upload akan tereset otomatis.
`;
}
@@ -677,6 +669,31 @@ document.addEventListener('DOMContentLoaded', function() {
`;
}
+ function getKedatanganUploadStateMarkup(tps) {
+ if (tps.fotoKedatanganUploaded) {
+ return '
✓ Foto kedatangan sudah diupload
';
+ }
+ if (!tps.fotoKedatangan.length) {
+ return '';
+ }
+ return `
`;
+ }
+
+ function refreshKedatanganUploadState(form) {
+ const stateContainer = form.querySelector('.kedatangan-upload-state');
+ if (!stateContainer) return;
+
+ const tps = tpsData[activeTpsIndex];
+ stateContainer.innerHTML = getKedatanganUploadStateMarkup(tps);
+
+ const btnUploadKedatangan = stateContainer.querySelector('.tps-btn-upload-kedatangan');
+ if (btnUploadKedatangan) {
+ btnUploadKedatangan.addEventListener('click', uploadFotoKedatangan);
+ }
+
+ refreshSubmitButtonState(form);
+ }
+
function getPetugasUploadStateMarkup(tps) {
if (tps.fotoPetugasUploaded) {
return '
✓ Foto petugas sudah diupload
';
@@ -968,7 +985,7 @@ document.addEventListener('DOMContentLoaded', function() {
const ocrInfo = item.querySelector('.input-ocr-info')?.textContent || 'OCR: belum diproses.';
tps.timbangan.push({
- file: fileInput.files[0] || null,
+ file: fileInput.files[0] || previousTimbangan[index]?.file || null,
berat: [weight],
jenisSampah: [jenisSampah],
lokasiAngkut: [],
@@ -1050,7 +1067,8 @@ document.addEventListener('DOMContentLoaded', function() {
}
alert(`Upload ${tps.fotoKedatangan.length} foto kedatangan\n(Implementasi upload ke server)`);
tps.fotoKedatanganUploaded = true;
- renderTpsForm();
+ const form = tpsContentContainer.querySelector('form');
+ if (form) refreshKedatanganUploadState(form);
}
function uploadFotoPetugas() {
@@ -1065,7 +1083,8 @@ document.addEventListener('DOMContentLoaded', function() {
}
alert(`Upload ${tps.fotoPetugas.length} foto petugas untuk ${tps.name}\n(Implementasi upload ke server)`);
tps.fotoPetugasUploaded = true;
- renderTpsForm();
+ const form = tpsContentContainer.querySelector('form');
+ if (form) refreshPetugasUploadState(form);
}
function submitTpsData() {
diff --git a/wwwroot/driver/js/detail-penjemputan-tps.js b/wwwroot/driver/js/detail-penjemputan-tps.js
index c09e4c7..a530adf 100644
--- a/wwwroot/driver/js/detail-penjemputan-tps.js
+++ b/wwwroot/driver/js/detail-penjemputan-tps.js
@@ -250,15 +250,7 @@ const DetailPenjemputan = (function() {
- ${tps.fotoKedatangan.length > 0 && !tps.fotoKedatanganUploaded ? `
-
- ` : tps.fotoKedatanganUploaded ? `
-
- ✓ Foto kedatangan sudah diupload
-
- ` : ''}
+
${getKedatanganUploadStateMarkup(tps)}
@@ -338,14 +330,14 @@ const DetailPenjemputan = (function() {
tps.fotoKedatanganUploaded = false;
updateWaktuKedatangan();
updateMultiPreview(this, form.querySelector('.tps-preview-kedatangan'));
- renderTpsForm();
+ refreshKedatanganUploadState(form);
});
fotoPetugasInput.addEventListener('change', function() {
tps.fotoPetugas = Array.from(this.files);
tps.fotoPetugasUploaded = false;
updateMultiPreview(this, form.querySelector('.tps-preview-petugas'));
- renderTpsForm();
+ refreshPetugasUploadState(form);
});
namaPetugasInput.addEventListener('input', function() {
@@ -685,7 +677,7 @@ const DetailPenjemputan = (function() {
if (isUploaded) {
return `
✓ Foto timbangan sudah diupload
-
Kalau mau revisi, pilih file baru di atas. Status upload akan direset otomatis.
+
Jika ingin revisi, pilih file baru diatas. Status upload akan tereset otomatis.
`;
}
@@ -702,6 +694,31 @@ const DetailPenjemputan = (function() {
`;
}
+ function getKedatanganUploadStateMarkup(tps) {
+ if (tps.fotoKedatanganUploaded) {
+ return '
✓ Foto kedatangan sudah diupload
';
+ }
+ if (!tps.fotoKedatangan.length) {
+ return '';
+ }
+ return `
`;
+ }
+
+ function refreshKedatanganUploadState(form) {
+ const stateContainer = form.querySelector('.kedatangan-upload-state');
+ if (!stateContainer) return;
+
+ const tps = state.tpsData[state.activeTpsIndex];
+ stateContainer.innerHTML = getKedatanganUploadStateMarkup(tps);
+
+ const btnUploadKedatangan = stateContainer.querySelector('.tps-btn-upload-kedatangan');
+ if (btnUploadKedatangan) {
+ btnUploadKedatangan.addEventListener('click', uploadFotoKedatangan);
+ }
+
+ refreshSubmitButtonState(form);
+ }
+
function getPetugasUploadStateMarkup(tps) {
if (tps.fotoPetugasUploaded) {
return '
✓ Foto petugas sudah diupload
';
@@ -1211,7 +1228,8 @@ async function applyWatermark(file, photoNumber) {
alert(`Upload ${tps.fotoKedatangan.length} foto kedatangan untuk ${tps.name}\n(Implementasi upload ke server)`);
tps.fotoKedatanganUploaded = true;
- renderTpsForm();
+ const form = elements.tpsContentContainer.querySelector('form');
+ if (form) refreshKedatanganUploadState(form);
}
function uploadFotoPetugas() {
@@ -1228,7 +1246,8 @@ async function applyWatermark(file, photoNumber) {
alert(`Upload ${tps.fotoPetugas.length} foto petugas untuk ${tps.name}\n(Implementasi upload ke server)`);
tps.fotoPetugasUploaded = true;
- renderTpsForm();
+ const form = elements.tpsContentContainer.querySelector('form');
+ if (form) refreshPetugasUploadState(form);
}
function buildSubmitFormData(tps) {