// ===================================================== // popup.js — Modal Detail Beasiswa // Tutup via: tombol ×, klik overlay, tekan Escape // + DUKUNGAN MULTI-BAHASA (ID/EN) // ===================================================== const overlay = document.getElementById('popup-overlay'); const modal = document.getElementById('popup-modal'); const closeBtn = document.getElementById('popup-close'); const popupBody = document.getElementById('popup-content'); let currentOpenId = null; // Menyimpan status beasiswa mana yang sedang dibuka // Bertanya langsung ke mesin utama (localization.js) function getPopupLang() { if (typeof window.getLang === 'function') { return window.getLang(); } return localStorage.getItem('if_untan_lang') || 'id'; } // Format tanggal dinamis (ID / EN) function fmtDate(str, lang) { if (!str) return '—'; const d = new Date(str); if (isNaN(d.getTime())) return str; return d.toLocaleDateString(lang === 'en' ? 'en-US' : 'id-ID', { day: 'numeric', month: 'long', year: 'numeric' }); } // Kamus Teks Statis Modal const popupDict = { id: { req_empty: 'Syarat belum tersedia. Kunjungi sumber resmi.', req_title: 'Syarat Umum', open_date: 'Tanggal Buka', close_date: 'Tanggal Tutup', contact: 'Kontak', more_info: 'Info Lebih Lanjut', no_link: 'Tautan tidak tersedia. Silakan hubungi admin prodi.', status_open: 'Buka', status_closed: 'Ditutup' }, en: { req_empty: 'Requirements not available. Visit official source.', req_title: 'General Requirements', open_date: 'Open Date', close_date: 'Closing Date', contact: 'Contact', more_info: 'More Information', no_link: 'Link unavailable. Please contact department admin.', status_open: 'Open', status_closed: 'Closed' } }; /** * Buka popup modal untuk beasiswa dengan ID tertentu */ function openPopup(id) { currentOpenId = id; const data = window.beasiswaData || []; const bsw = data.find(b => b.id === id); if (!bsw) return; const lang = getPopupLang(); const d = popupDict[lang]; const isBuka = bsw.status === 'Buka' || bsw.status === 'Dibuka'; const badgeClass = isBuka ? 'badge-buka' : 'badge-ditutup'; // Terjemahkan Status & Kategori const statusText = isBuka ? d.status_open : (lang === 'en' && (bsw.status === 'Ditutup' || bsw.status === 'Tutup') ? d.status_closed : bsw.status); // Menerjemahkan Kategori (Misal: "Beasiswa Swasta" -> "Private Scholarship") let kategoriText = bsw.kategori; if (lang === 'en') { if (bsw.kategori_en) { kategoriText = bsw.kategori_en; } else if (bsw.kategori.toLowerCase().includes('swasta')) { kategoriText = 'Private Scholarship'; } else if (bsw.kategori.toLowerCase().includes('pemerintah')) { kategoriText = 'Government Scholarship'; } } // Teks Dinamis (Ambil _en dari JSON jika ada, jika tidak pakai ID) const namaText = (lang === 'en' && bsw.nama_en) ? bsw.nama_en : bsw.nama; const deskripsiText = (lang === 'en' && bsw.deskripsi_singkat_en) ? bsw.deskripsi_singkat_en : bsw.deskripsi_singkat; const syaratData = (lang === 'en' && bsw.syarat_umum_en) ? bsw.syarat_umum_en : (bsw.syarat_umum || []); // Bangun list syarat umum const syaratItems = syaratData .map(s => `
${d.req_empty}
`; const hasUrl = bsw.url_sumber && bsw.url_sumber !== '#'; // Render konten popup dengan template Anda yang dipertahankan popupBody.innerHTML = `${deskripsiText}
${d.no_link}
` }