Commit Graph

3 Commits

Author SHA1 Message Date
Saufi
57c20353c7 Carian langsung (AJAX) pada dashboard
Taip nama/no. KP terus mencari tanpa klik butang (debounce 300ms).
Tukar pusat mengundi/status juga menapis serta-merta. Jadual dan
statistik digantikan melalui fetch; URL dikemas kini (replaceState)
supaya refresh dan eksport kekal konsisten. Butang Cari kekal sebagai
fallback tanpa JavaScript; pilihan DUN (superadmin) kekal muat semula
penuh kerana senarai pusat mengundi berubah.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 03:21:24 +08:00
Saufi
cd5cfb49a9 Superadmin boleh padam pengguna
- Butang Padam dalam senarai pengguna (dengan pengesahan)
- Tidak boleh padam akaun sendiri — dipapar '(akaun anda)'
- Tidak boleh padam pengguna yang telah mencatat rekod kehadiran
  (disokong FK dicatat_oleh_user_id di peringkat DB)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 03:18:07 +08:00
Saufi
dfd22ff2af Aplikasi kehadiran KTM ambil peti undi (SPR 2026)
Sistem untuk admin DUN merekod waktu KTM (Ketua Tempat Mengundi) hadir
mengambil peti undi. Data KTM dibaca daripada DB sppm (spr2026) melalui
connection kedua — hanya penempatan berjawatan KTM yang dipaparkan.

- Dashboard: senarai KTM ikut pusat mengundi (asc) & saluran (asc),
  status BELUM HADIR (merah) / HADIR (hijau) + tarikh & masa
- Carian nama/no. KP, tapisan pusat mengundi & status
- Tanda hadir / batal dengan kawalan DUN (admin terhad ke DUN sendiri)
- Eksport Excel (worksheet Hadir & Belum Hadir) guna SimpleXlsx
- Peranan: superadmin (urus pengguna, semua DUN) & admin DUN
- Docker: nginx + php-fpm + queue + scheduler + webhook deploy,
  port 127.0.0.1:8009, TZ Asia/Kuala_Lumpur di semua container
- Zon waktu aplikasi: Asia/Kuala_Lumpur (APP_TIMEZONE)

Berasaskan scaffold spr2026_taklimat.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 02:40:00 +08:00