Files
database-pertani-web/resources/views/components/kunci-petani-terverifikasi.blade.php
T

59 lines
2.8 KiB
PHP

{{--
Data petani Terverifikasi: halaman hanya untuk dilihat.
Semua tombol simpan/tambah/hapus dan isian form dinonaktifkan (server juga menolak, lihat BatasiAksesPetani).
--}}
<div class="alert alert-success d-flex align-items-center mb-6" role="alert">
<span class="alert-icon rounded me-3"><i class="icon-base ti tabler-lock"></i></span>
<span>Data petani ini sudah <strong>terverifikasi</strong> dan hanya bisa dilihat. Data tidak dapat diubah, ditambah, atau dihapus.</span>
</div>
@once
@push('style')
<style>
/* Area unggah/hapus foto (dropzone) & elemen yang dikunci tidak bisa diklik. */
.data-terkunci .dz-btn-action, .data-terkunci .btn-tambah-foto, .data-terkunci .dropzone,
.kunci-terverifikasi { pointer-events: none !important; opacity: .65; }
</style>
@endpush
@push('scripts')
<script>
(function () {
const area = document.querySelector('.content-wrapper');
if (!area) return;
area.classList.add('data-terkunci');
// Tombol hapus/tambah yang bukan bagian form (dijalankan lewat JS/AJAX) & tautan ke halaman tambah.
const TOMBOL_UBAH = [
'[class*="delete"]', '[class*="hapus"]', '.btn-danger', '.btn-outline-danger',
'.btn-tambah-foto', '.dz-btn-action', '.add-new', 'a[href$="/create"]',
].join(',');
// Bagian yang tetap aktif: tab, ringkasan kelengkapan, pencarian/filter (form GET).
const dikecualikan = (el) => el.closest('.nav, #kelengkapan-petani, form[method="GET" i], form:not([method])');
function kunci() {
// Semua isian & tombol di form yang menyimpan data (POST/PUT/DELETE).
area.querySelectorAll('form[method="POST" i]').forEach((form) => {
form.querySelectorAll('input:not([type="hidden"]), select, textarea, button').forEach((el) => {
el.disabled = true;
});
form.addEventListener('submit', (e) => e.preventDefault());
});
area.querySelectorAll(TOMBOL_UBAH).forEach((el) => {
if (dikecualikan(el)) return;
el.classList.add('kunci-terverifikasi');
el.setAttribute('aria-disabled', 'true');
el.setAttribute('tabindex', '-1');
if ('disabled' in el) el.disabled = true;
});
}
// Setelah plugin (select2, flatpickr, dropzone, repeater) selesai dipasang.
window.addEventListener('load', () => { kunci(); setTimeout(kunci, 500); });
})();
</script>
@endpush
@endonce