Sari
02a5c6d701
fix: sidebar mobile bisa di-scroll (nav flex-1 overflow-y-auto) — menu di bawah layar kini terjangkau
2026-08-03 10:52:01 +07:00
Sari
8f840996dd
fix: hotfix blade @endif di users/index (tombol paksa logout) — penyebab error 500 manajemen user
2026-08-03 10:31:05 +07:00
Sari
0aa8beee83
feat: single session per akun — login kedua ditolak jika sesi aktif, middleware SingleSession menendang sesi lain, logout membersihkan token, tombol Paksa Logout di manajemen user; 5 feature test
2026-08-03 10:29:26 +07:00
Sari
64863456ee
kop Surat Peringatan disamakan dengan format resmi (logo lambang Jatim bersih + 6 baris + garis tebal, nama sekolah satu baris via nowrap) + refactor schoolSettings()
2026-08-03 10:14:00 +07:00
Sari
61ea5cdc83
fix kop: logo lambang Jatim tanpa background hitam (aplikasi smask asli dari PDF + upscale 2x), ukuran logo 88px, layout tabel stabil di DomPDF
2026-08-03 10:06:26 +07:00
Sari
3bfad9cf42
hak akses konsisten: sidebar Master Data pakai permission per-menu (+directive canAnyPermission); FIX direktif canPermission pakai canPermission() model (sebelumnya hanya role kolom — multi-role & user tanpa kolom role tidak dapat menu) + test
2026-08-03 09:58:52 +07:00
Sari
6dcb4c0619
update hak akses: view-point-audit terkunci Khusus Admin (UI+backend) + FIX penting: seed migrasi semua permission inti (7 permission hilang di fresh install/test DB) + test
2026-08-03 09:53:22 +07:00
Sari
465be127ec
update hak akses role: view-point-audit terkunci 'Khusus Admin' (badge + kunci di UI, proteksi di backend update()) + test
2026-08-03 09:51:28 +07:00
Sari
156841a4e7
fix: kirim WA tidak menutup aplikasi — fetch AJAX + SweetAlert dengan tombol Buka WhatsApp (tab baru, aplikasi tetap terbuka) + test JSON
2026-08-03 09:46:00 +07:00
Sari
47c5cdb48f
fix: hotfix blade @endif ganda di users/index (penyebab error 500)
2026-08-03 09:41:49 +07:00
Sari
5a4fada9a9
feat: tombol Kirim Akun via WhatsApp di manajemen user (generate password baru, link+username+password via wa.me, konfirmasi, disable tanpa HP) + test
2026-08-03 09:39:20 +07:00
Sari
f5a80fd4e2
feat: kolom phone di manajemen user (tampil di tabel, input modal, validasi regex) + FIX bug: catch-all exception handler mengubah ValidationException jadi 500 (kini redirect+error normal)
2026-08-03 09:30:14 +07:00
Sari
2e7ab00c31
fix: menu Riwayat Poin pindah ke seksi Administrasi, akses khusus admin (revoke semua role non-admin)
2026-08-03 09:20:23 +07:00
Sari
0c4fa0d0e7
fix: grant view-point-audit ke ketua_tim/kepala_sekolah/wali_kelas/staff (produksi tidak punya user role bk)
2026-08-03 09:17:35 +07:00
Sari
2dda08bb8d
feat: audit log poin — catat pencatatan/penghapusan pelanggaran (sebelum/sesudah/delta, metadata snapshot, actor, IP) + halaman Riwayat Poin (filter, permission view-point-audit) + 4 feature test
2026-08-03 09:12:46 +07:00
Sari
6f430f35d7
kop laporan: format resmi sekolah (logo lambang Jatim kiri + 6 baris teks tengah + garis hitam tebal) — settings Kop Surat baru + upload logo kop
2026-08-03 09:07:50 +07:00
Sari
e18fe3deb2
laporan: tampilkan deskripsi pelanggaran di kolom jenis (web+PDF); TEST GUARD: blokir test bila DB bukan *_test (cegah RefreshDatabase menghancurkan produksi saat config ter-cache)
2026-08-03 09:01:47 +07:00
Sari
b1662e6242
polish: halaman Laporan premium full-width (hero gradient, filter cepat, KPI 4 kartu, rekap jenis progress bar + kelas, rincian terbaru) + refactor controller (baseQuery/filters/stats)
2026-08-03 08:56:31 +07:00
Sari
c5a2ad6913
feat: laporan rekap pelanggaran PDF (per periode/kelas, scoping wali kelas) + infrastruktur test MySQL (phpunit, fix migrasi 1093, UserFactory username)
2026-08-03 08:50:52 +07:00
Novy San87
58ffd06625
fix: presensi - filter tanggal-kelas live, urutan tanggal di depan, pembersihan data yatim
2026-08-02 20:57:14 +07:00
Novy San87
6e256661dd
feat: Face ID (scan, register, liveness) + role baru KS/Waka/Ketua Tim + notifikasi WA ortu + scoping wali kelas + error pages premium
2026-08-02 20:57:11 +07:00
Novy San87
0a5f471854
fix: default presensi 'belum', perbesar tombol rekap & bulk H/S/I/A/T
...
- Default status per jam dari 'hadir' jadi 'belum' (abu-abu '—')
- Tambah validasi skip 'belum' saat simpan
- Tombol bulk H/S/I/A/T diperbesar (w-8 h-8, border-2)
- Tombol Rekap Presensi diubah ke gradien violet-indigo
- Gradien tombol Lanjutkan & Simpan konsisten
2026-07-28 12:37:43 +07:00
Bro
4da06fa55d
fix: tambah method ping() yg ilang pas revert
2026-07-24 20:01:37 +07:00
Bro
9aa79dacbb
fix: copy token pake execCommand() biar jalan di HTTP
2026-07-24 19:53:41 +07:00
Bro
e7639e5edf
fix: tombol salin token pake ID langsung, bukan nextElementSibling
2026-07-24 19:51:26 +07:00
Bro
70da27b26e
revert: hapus test koneksi E-Jurnal dari sinkronisasi
2026-07-24 19:49:26 +07:00
Bro
b82b34e542
feat: status + test koneksi E-Jurnal di sinkronisasi
2026-07-24 19:43:18 +07:00
Bro
9c32843254
feat: icon sidebar warna warni per menu
...
- Dashboard: biru
- Input Pelanggaran: hijau (emerald)
- Data Pelanggaran: merah
- Data Siswa: ungu (violet)
- Presensi Siswa: cyan
- Surat Peringatan: amber
- Pengaturan: abu-abu
- dll
Aktif: warna solid, Tidak aktif: transparan 60%,
hover: warna semakin jelas
2026-07-24 19:39:04 +07:00
Bro
3e73d675d2
fix: full width layout halaman hak akses role
2026-07-24 19:34:24 +07:00
Bro
813af07cee
fix: checkbox standar di hak akses role
2026-07-24 19:33:29 +07:00
Bro
916a9e36df
fix: checkbox toggle pake peer-checked CSS, gak perlu JS
...
Sebelum: onclick + onchange JS — checkbox gak berfungsi
Sesudah: peer-checked:opacity-100 — murni CSS, klik langsung
berfungsi, icon centang muncul/sembunyi otomatis
2026-07-24 19:31:48 +07:00
Bro
4afe6dbabe
feat: UI premium Hak Akses Role
...
- Per group: card terpisah dengan gradient header + icon
- Role columns: badge dengan icon (crown untuk admin)
- Checkbox: toggle button blue modern dengan ikon check
- Hover: gradient biru tipis di baris + icon group berubah warna
- Save section: gradient card dengan shadow
- Transisi mulus semua interaksi
2026-07-24 19:29:43 +07:00
Bro
0ece259138
feat: custom halaman error 403 & 404 premium
...
- 403: icon shield, merah soft, pesan dinamis
- 404: icon map, amber soft
- Tombol Kembali + Dashboard
- Dekorasi dots
- Menggunakan layout app (navbar + sidebar tetap)
2026-07-24 19:25:43 +07:00
Bro
96178345cd
fix: redirect user 'other' ke presensi setelah login
2026-07-24 19:22:28 +07:00
Bro
89e97c3679
fix: hak akses role - tambah label & cache untuk role other
...
- Role label: Other (Guest) di tabel permission
- Cache di-clearing untuk role 'other' setelah update
- Semua role dinamis dari controller
2026-07-24 19:17:15 +07:00
Bro
6f33f7712d
feat: reset password user dari admin
...
- Tombol key (oranye) di samping edit user
- Klik → SweetAlert2 modal: input password baru + konfirmasi
- Validasi: min 6 karakter, harus cocok
- Admin tidak bisa reset password sendiri (lewat profil)
2026-07-24 19:08:40 +07:00
Bro
dddb98d04c
fix: duplicate isStaff() method di User model
2026-07-24 19:06:20 +07:00
Bro
243a609baf
feat: tambah role 'other' untuk guest user
...
- PermissionController: tambah 'other' ke daftar role
- UserController validasi: in:admin,bk,wali_kelas,staff,other
- User model: helper isOther()
- Users view: filter dropdown + modal tambah user + label
- Role 'other' bisa diatur hak aksesnya di menu Hak Akses Role
2026-07-24 19:05:50 +07:00
Bro
5c0c3bdd48
feat: dropdown Kelas dependen berdasarkan Jurusan & Tingkat
...
Saat user pilih Jurusan dan/atau Tingkat Kelas, dropdown
Kelas otomatis terfilter hanya menampilkan kelas yang cocok.
Menggunakan JS client-side dengan data options dari backend.
2026-07-24 18:59:05 +07:00
Bro
9be9b4d939
fix: urutan filter data siswa: Jurusan → Tingkat → Kelas
...
- Dropdown diurutkan: Jurusan, Tingkat Kelas, Kelas
- Jurusan di-sort by department_name (alfabetis)
- Hapus kode jurusan dari option (cukup nama)
2026-07-24 18:56:50 +07:00
Bro
798c8c3baf
fix: tombol Simpan setelah ganti token Kesiswaan
2026-07-24 18:54:01 +07:00
Bro
c35c41f7ee
fix: tambah tombol Ganti untuk token Kesiswaan
2026-07-24 18:52:48 +07:00
Bro
a2a41adcef
fix: escape character parse error di AttendanceSyncController
2026-07-24 18:49:18 +07:00
Bro
0e2c9fc7ea
fix: tampilkan token Kesiswaan + test koneksi
...
- Token Database Kesiswaan ditampilkan sebagai text (bisa copy)
- Tambah tombol 'Test Koneksi' yang ping endpoint
/api/integration/students dan tampilkan status
- Status indikator: abu=belum, hijau=terhubung, merah=gagal
2026-07-24 18:47:08 +07:00
Bro
8712c666ad
fix: escape character parse error di StudentSyncService
2026-07-24 18:43:38 +07:00
Bro
5fce7af844
feat: auto-nonaktifkan siswa lulus/tidak aktif saat sync
...
Setelah sinkronasi, siswa yang tidak muncul di data
sumber (Database Kesiswaan) akan otomatis dinonaktifkan
(is_active=false) — mencakup siswa lulus & pindah.
Ini memastikan data siswa selalu sinkron dengan tahun
ajaran baru tanpa perlu manual cleanup.
2026-07-24 18:41:36 +07:00
Bro
4fa709509f
feat: snapshot class_name di setiap presensi & pelanggaran
...
Migration: tambah kolom:
- attendances.class_name (varchar 100)
- violations.student_class (varchar 100)
- Backfill data existing dari students.class_name
Controller manual: simpan class_name dari form
Sync E-Jurnal: simpan class_name dari lookup student
ViolationService: ambil class_name dari student saat buat
Model: tambah ke fillable
Ini menjamin data historis tetap akurat meskipun
siswa naik kelas (X→XI→XII) di tahun ajaran baru.
2026-07-24 18:38:35 +07:00
Bro
30c6927658
fix: flatpickr lebih lebar 370px + day height 42px
2026-07-24 18:28:38 +07:00
Bro
2492b5ea28
fix: custom Flatpickr modern — glass border, gradient selected, scale hover
...
- Ganti tema Airbnb dengan CSS kustom total
- Glassmorphism: background putih transparan, blur, shadow 3D
- Selected day: gradient blue 135deg + shadow glow
- Hover: scale 105% + background slate
- Border radius 16px, ukuran 300px
- Font lebih modern, spacing lebih lapang
- Transisi mulus 120ms
2026-07-24 18:27:30 +07:00
Bro
cd69638199
feat: flatpickr date picker premium di semua input tanggal
...
- Flatpickr (CDN) dengan tema Airbnb — bersih & modern
- Lokalisasi Bahasa Indonesia
- altInput: tampil dd/mm/yyyy, simpan yyyy-mm-dd
- Animasi mulus + shadow premium
- Berlaku otomatis ke semua <input type='date'> di seluruh app
- Style kustom: border-radius 12px, shadow 3D
2026-07-24 18:25:43 +07:00