function renderTree(units, katDok, klasifikasi_id) { if (!Array.isArray(units) || !units.length) return '

Tidak ada data

'; return ``; } async function loadFiles(e) { const ul = e.nextElementSibling; const unitId = $(e).data('unit') const subId = $(e).data('sub') const katId = $(e).data('kat') const klas = $(e).data('klas') const loaded = ul.getAttribute('data-loaded'); if (loaded === '1') { // toggle saja ul.style.display = ul.style.display === 'none' ? 'block' : 'none'; return; } ul.innerHTML = '
  • memuat...
  • '; ul.style.display = 'block'; try { const r = await fetch(`/getFile/${unitId}/${subId}/${katId}?klasifikasi=${klas}`); const res = await r.json(); // array kosong / ada isi const files = res.data || []; if (!Array.isArray(files) || !files.length) { ul.innerHTML = '
  • kosong
  • '; ul.setAttribute('data-loaded', '1'); return; } ul.innerHTML = files.map(f => { const name = f.file.split('/').pop(); const by = f.pegawai_nama_entry || 'Unknown'; const at = new Date(f.entry_at).toLocaleString('id-ID', { day:'2-digit', month:'short', year:'numeric', hour:'2-digit', minute:'2-digit' }); return `
  • ๐Ÿ“„ ${name} (${f.klasifikasi?.nama_klasifikasi_directory})
    Upload by ${by} ยท ${at}
  • `; }).join(''); ul.setAttribute('data-loaded', '1'); } catch (e) { ul.innerHTML = '
  • gagal memuat
  • '; console.error(e); } } function index(kategori_dok = [], unitKerja = null, subUnitKerja = [], klasifikasi_id = []) { const params = new URLSearchParams(); if (kategori_dok.length) params.append("kategori", kategori_dok); if (unitKerja) params.append("unitKerja", unitKerja); if (subUnitKerja.length) params.append("subUnit", subUnitKerja); if (klasifikasi_id.length) params.append("klasifikasi", klasifikasi_id); fetch(`/data-unit-kerja?${params.toString()}`) .then(response => response.json()) .then(data => { let file_tree = document.getElementById("file_tree"); file_tree.innerHTML = ''; if (Array.isArray(data?.data?.unitKerja)) { file_tree.innerHTML = renderTree(data.data.unitKerja, data.data.katDok, klasifikasi_id); // Toggle buka/tutup folder file_tree.querySelectorAll(".folder > span").forEach(span => { span.addEventListener("click", () => { let li = span.parentElement; li.classList.toggle("collapsed"); // Ganti ikon ๐Ÿ“‚ <-> ๐Ÿ“ if (li.classList.contains("collapsed")) { span.textContent = span.textContent.replace("๐Ÿ“‚", "๐Ÿ“"); } else { span.textContent = span.textContent.replace("๐Ÿ“", "๐Ÿ“‚"); } }); }); } else { file_tree.innerHTML = '

    Silakan lakukan pencarian terlebih dahulu untuk menampilkan data

    '; } }) .catch(error => console.error('Error : ', error)); } index(); function referesh(){ index() } function searchData(){ let klasifikasi_id = $("#klasifikasi_dok").val() let kategori_dok = $("#kategori_dok").val() let unitKerja = $("#unit_kerja").val() let subUnitKerja = $("#sub_unit_kerja").val() if( klasifikasi_id.length === 0 || kategori_dok.length === 0 || !unitKerja.length || subUnitKerja.length === 0){ Swal.fire({ text: 'Lengkapi Isi form pencarian', icon: 'warning' }) return } index(kategori_dok, unitKerja, subUnitKerja, klasifikasi_id); }