EVENTPASS UPDATE - DISPLAY PER GATE + SPLIT MONITOR
Tanggal: 15 Juli 2026

FITUR YANG DIPERTAHANKAN
- Scanner dan Display Per Gate Gate 1-5 tetap berjalan.
- Akun Operator Gate tetap terkunci ke gate masing-masing.
- Display individual tetap dapat dibuka tanpa login admin menggunakan token read-only.
- Mode offline scanner, antrean sinkronisasi, validasi anti double check-in, dan log gate tidak diubah.

FITUR BARU
1. Menu "Display Per Gate" pada sidebar admin.
   - Menampilkan seluruh URL display Gate 1-5.
   - Tombol buka display, salin URL, dan atur gate.

2. Menu "Split Monitor" pada sidebar admin.
   - Pilihan Split 2, Split 3, atau Split 4 Gate.
   - Admin dapat memilih gate untuk setiap panel.
   - Sistem menghasilkan satu URL read-only yang dapat dibuka pada monitor besar tanpa login admin.

3. Display Wall khusus.
   - Split 2: dua panel berdampingan.
   - Split 3: satu panel besar di kiri dan dua panel di kanan.
   - Split 4: grid 2x2.
   - Setiap panel hanya diperbarui oleh scanner gate yang dipilih.
   - Satu request gabungan untuk membaca status seluruh panel sehingga lebih ringan dibanding membuka 4 halaman display terpisah.
   - Mode fullscreen dan indikator koneksi tersedia.

FILE BARU
- admin/display-gates.php
- admin/display-wall-settings.php
- admin/display-wall.php
- admin/api-display-wall.php

CARA PAKAI
A. Satu monitor per gate:
   Admin -> Display Per Gate -> pilih Buka Display pada gate yang diinginkan.

B. Satu monitor besar untuk beberapa gate:
   Admin -> Split Monitor -> pilih 2/3/4 panel -> pilih gate per panel -> Buat URL Split Monitor -> Buka Split Monitor.

CATATAN
- URL Split Monitor memuat token read-only gate. Simpan URL hanya pada perangkat panitia.
- Jika token salah satu gate diganti pada Manajemen Gate, URL Split Monitor lama berhenti berfungsi. Buat ulang URL melalui menu Split Monitor.
- Untuk scanner pada perangkat berbeda, monitor membutuhkan koneksi ke server agar pembaruan muncul real-time.
- Jika scanner dan Split Monitor dibuka pada browser/perangkat yang sama, BroadcastChannel/localStorage membantu pembaruan lokal.
