EVENTPASS - FIX DASHBOARD, DATA PESERTA, DAN IMPORT PESERTA BLANK
Tanggal: 14 Juli 2026

MASALAH YANG DITEMUKAN
Versi import sebelumnya menjalankan CREATE TABLE / ALTER TABLE otomatis setiap kali halaman Dashboard dan Data Peserta dibuka. Pada shared hosting, proses ini dapat menunggu metadata lock atau dibatasi hak database. Karena layout header sudah terkirim lebih dahulu, hasilnya terlihat sebagai area konten kosong/blank.

PERBAIKAN UTAMA
1. Dashboard dan Data Peserta tidak lagi menjalankan migrasi database.
2. Aktivasi struktur import hanya dilakukan satu kali dari menu Import Peserta.
3. Waktu tunggu lock database dibatasi agar halaman tidak menggantung lama.
4. Jika struktur import belum aktif, Dashboard dan Data Peserta tetap tampil normal.
5. Halaman Import Peserta menampilkan tombol Aktivkan Modul dan pesan kesalahan yang jelas, bukan layar kosong.
6. Pemeriksaan struktur memakai SHOW TABLES / SHOW COLUMNS yang lebih ringan untuk shared hosting.
7. Semua query statistik import dibungkus error handling agar dashboard utama tetap dapat dibuka.
8. Export data tetap bekerja meskipun modul import belum diaktifkan.
9. Reset Total Event ikut membersihkan antrean email dan detail batch import.
10. Ditambahkan halaman Diagnostik Import Peserta.

CARA UPDATE
1. Backup file website dan database.
2. Upload seluruh isi folder eventpass dan timpa file lama.
3. Login admin.
4. Buka menu Import Peserta.
5. Jika muncul tombol Aktivkan Modul Import, klik satu kali.
6. Jika hosting menolak CREATE/ALTER, jalankan UPGRADE_IMPORT_PARTICIPANTS_COMPAT.sql melalui phpMyAdmin.
7. Muat ulang dengan Ctrl+F5.

CATATAN
- Jangan hanya mengganti admin/import-participants.php. Timpa seluruh file agar lib/importer.php, Dashboard, Data Peserta, Export, CSS, dan Mailer menggunakan versi yang sama.
- File config/database.php dan data uploads milik instalasi lama tetap dipertahankan saat update produksi.
- Setelah aktivasi, buka Diagnostik dari halaman Import Peserta dan pastikan semua status penting berwarna Siap.

Fix tambahan v4: kolom row_number diganti source_row agar kompatibel dengan MariaDB/MySQL modern.
