Novy San87
a9efc83dab
fix(sp-letters): tanggal pelanggaran jadi format 'Hari, 02 Agustus 2026' (locale id)
2026-08-07 14:43:13 +07:00
Novy San87
59981abab0
fix(sp-letters): daftar pelanggaran jadi tabel (Tanggal | Jenis | Point) + baris Total, tanpa bullet
2026-08-07 14:41:04 +07:00
Novy San87
c44eb84346
fix(sp-letters): paragraf pembuka diberi indentasi 2 tab (text-indent 2em)
2026-08-07 14:37:47 +07:00
Novy San87
670be7ebad
fix(sp-letters): kalimat pembuka — 'kepada ananda NAMA (tebal)' menggantikan 'Saudara/i'
2026-08-07 14:36:47 +07:00
Novy San87
98614545fc
fix(sp-letters): alamat 'Kepada Yth. Bapak/Ibu/Wali' + nama siswa uppercase langsung di bawahnya, jarak 1 spasi
2026-08-07 14:32:50 +07:00
Novy San87
fffb35e868
fix(sp-letters): rapatkan jarak judul SURAT PERINGATAN dengan Nomor surat (1 spasi)
2026-08-07 14:30:42 +07:00
Novy San87
743a4d39fa
fix(sp-letters): kertas cetak F4 (210x330mm) dengan margin kiri-kanan 1cm
2026-08-07 14:29:42 +07:00
Novy San87
9877f93e8f
fix(sp-letters): logo di cetakan pakai asset() URL, bukan public_path() filesystem — perbaiki logo pecah (kotak image) saat cetak surat
2026-08-07 14:28:46 +07:00
Novy San87
0d8c40af40
fix(modal): tambah overflow-hidden di container modal reset & tolak — sudut header gradien kini mengikuti radius container
2026-08-07 12:47:46 +07:00
Novy San87
44fde365d9
ui(reset-password): samakan dengan modal premium lain — container max-w-xl, header gradien amber-oranye, input pakai kelas .input seragam
2026-08-07 12:46:04 +07:00
Novy San87
2d2ff0dac0
ui(premium): modal Reset Password Wali custom (Alpine) — header ikon gradien amber, info card, input password + toggle show/hide, validasi inline, loading state; ganti SweetAlert polos
2026-08-07 12:40:27 +07:00
Novy San87
61b93a35ac
ui(premium): modal Tolak Wali custom (Alpine) — header ikon gradien rose, kartu info, textarea alasan + counter 0/255, tombol loading state; ganti SweetAlert polos
2026-08-07 10:47:40 +07:00
Novy San87
42ffd893b2
ui(school-info): rombak kartu Tambah/Edit Informasi — kolom lebih lebar (2/5), header gradien dengan watermark & subtitle kontekstual, kategori jadi pill berwarna (6 pilihan), input berikon + counter judul 0/200, tanggal dengan hint badge Hari Ini, textarea berikon, toggle publikasi premium, tombol submit gradien dengan ikon dinamis
2026-08-07 09:53:51 +07:00
Novy San87
eef1d8d1fa
fix(school-info): perbaiki 3 bug — @json ganti @js (x-data rusak karena quote tidak ter-escape), _method pakai :value PUT/POST (create tidak lagi 405/500), pastikan edit memuat data benar
2026-08-07 09:50:14 +07:00
Novy San87
9b821602a0
ui(premium): poles halaman Informasi Sekolah — breadcrumb, hero gradien, 4 KPI, filter live (cari/kategori/status), kartu premium per kategori, form sticky dengan header gradien
2026-08-07 09:39:32 +07:00
Novy San87
2b354e9e46
fix: laporan rekap pakai snapshot student_class (kelas saat pelanggaran) — akurat walau siswa naik kelas/lulus
2026-08-06 23:10:22 +07:00
Novy San87
c80f968abd
fix(nyata): buang Alpine x-model dari form filter laporan — konflik x-model membuat select class/jenis tidak ikut terkirim (bukti log: class_id & violation_type_id null); ganti preset/reset ke JS vanilla
2026-08-06 23:00:08 +07:00
Novy San87
1a7c18ce07
fix: tombol Cetak PDF & Export Excel jadi submit native di dalam form (formaction) — pasti membawa semua filter
2026-08-06 22:54:50 +07:00
Novy San87
7c0f1dc02a
fix: tombol Cetak PDF/Export Excel kirim filter via state Alpine (class+jenis) — bukan atribut form yang kadang tidak membawa nilai
2026-08-06 22:52:01 +07:00
Novy San87
558bb883ad
fix(ui): tata ulang filter laporan — 4 kolom rapi (tanggal/kelas/jenis), tombol Terapkan+Reset+Cepat satu baris terpisah, perbaiki div tak seimbang
2026-08-06 22:45:07 +07:00
Novy San87
0013facf5f
feat: filter Jenis Pelanggaran di Laporan Rekap — dropdown kategori+jenis (poin), berlaku untuk tampilan & cetak PDF
2026-08-06 22:43:27 +07:00
Novy San87
7ed2d7e1b3
fix: icon FA7 — megaphone/clipboard-user tidak ada di FontAwesome 7, ganti tower-broadcast & user-clock
2026-08-06 22:42:05 +07:00
Novy San87
8da3f6fac4
fix: icon sidebar wali — daftarkan house-user/clipboard-user/megaphone ke mapping nav-item (sebelumnya jatuh ke default circle)
2026-08-06 22:40:38 +07:00
Novy San87
940bba8a6a
ui: ganti icon sidebar — Data Wali Murid (house-user), Verifikasi Wali (clipboard-user), Informasi Sekolah (megaphone)
2026-08-06 22:38:59 +07:00
Novy San87
6524cb8616
ui(premium): Verifikasi Wali — header gradien + badge SiMURID, 4 kartu statistik, kartu antrean premium (avatar gradien + badge relasi + chip NISN + HP), tombol setujui/tolak gradien, konfirmasi Swal + alasan penolakan, tabel riwayat premium
2026-08-06 22:34:54 +07:00
Novy San87
dc211f3e05
fix: status akun di Data Wali Murid ikut status verifikasi tautan — pending tampil 'Menunggu verifikasi' (bukan aktif)
2026-08-06 22:32:36 +07:00
Novy San87
505d060df2
feat: Logout jarak jauh wali — cabut semua token Sanctum dari panel admin, app langsung 401 → login ulang
2026-08-06 22:03:05 +07:00
Novy San87
c8f90866ca
feat: hapus akun wali murid — tombol Hapus + konfirmasi Swal, hapus user + tautan anak + perangkat (data siswa aman)
2026-08-06 21:57:18 +07:00
Novy San87
25502b99f3
feat: Data Wali Murid diperkaya — relasi (Ayah/Ibu/Wali), email, status akun, perangkat & last active (fix $pending/$baruMingguIni)
2026-08-06 21:52:07 +07:00
Novy San87
d83689a95b
ui(premium): Data Wali Murid — header gradien + badge SiMURID, 4 kartu statistik, search premium, tabel dengan avatar gradien & badge status pulsing, tombol reset gradien amber
2026-08-06 21:47:44 +07:00
Novy San87
eb6d8c4256
feat: Data Wali Murid terpisah — halaman khusus (daftar akun + anak + reset password), user internal difilter dari role parent
2026-08-06 21:44:52 +07:00
Novy San87
31643ff7dc
feat: menu & API Informasi Sekolah untuk aplikasi wali
...
- Tabel school_informations (judul, isi, kategori, tanggal kegiatan, publish)
- Menu admin 'Informasi Sekolah' (CRUD + permission manage-school-info)
- API wali: GET /parent/school-informations (hanya yang dipublikasikan)
- 2 data contoh: Jadwal UTS & Class Meet
- Test suite tetap hijau (39 test)
2026-08-05 21:11:06 +07:00
Novy San87
3efce0f919
feat: API wali murid (Sanctum) + verifikasi admin
...
- Pasang laravel/sanctum, routes/api.php (prefix api/v1, 10 endpoint)
- Migrasi: parent_name di students, parent_students (pivot wali↔anak),
parent_devices (token FCM), permission parents-verify
- Auth wali: registrasi NISN+HP (auto-verify jika HP cocok data siswa,
pending jika tidak) + login token Sanctum
- Endpoint: me, logout, students, link anak, violations, sp-letters,
notifications, register device
- Halaman admin Verifikasi Wali (approve/reject) + menu sidebar
- Sync kesiswaan: tarik data orang tua (student_parents) ke students
- 8 feature test baru (ParentApiTest) — total suite 39 test hijau
2026-08-05 18:58:29 +07:00
Novy San87
b06419624b
Fix viewfinder hilang: aspect-[3/4] tidak di-generate Tailwind v4 → CSS manual .face-viewfinder (3:4 HP, 4:3 desktop)
2026-08-05 18:29:26 +07:00
Novy San87
28abd132c9
Face scan: viewfinder lebih lega di HP (rasio 3:4 potret) — desktop tetap 4:3
2026-08-05 18:28:16 +07:00
Novy San87
381f087a51
Face scan: ganti library deteksi MediaPipe WASM → face-api.js (tfjs + tinyFaceDetector) — kompatibilitas browser HP jauh lebih baik, model 193KB self-host
2026-08-05 18:20:02 +07:00
Novy San87
324d9d55d8
Face scan: sensitivitas deteksi dinaikkan — minDetectionConfidence 0.5→0.35, resolusi kamera 1280→960 (frame lebih cepat di HP)
2026-08-05 18:15:44 +07:00
Novy San87
586fbc3a56
Face scan: hapus UI indikator liveness (Kedip/Senyum/3D/Gerak) — mode tanpa liveness bersih
2026-08-05 18:14:39 +07:00
Novy San87
1019ac34e1
Face scan: kembali ke mode tanpa liveness — wajah cocok langsung selesai (sesuai permintaan)
2026-08-05 18:12:37 +07:00
Novy San87
1ed6fb43f1
Face scan: gerak (motion) ikut jadi sinyal penerimaan — praktis di kamera HP; foto diam tetap tertolak; auto-accept tidak lagi bergantung landmarker
2026-08-05 18:09:10 +07:00
Novy San87
63bdadcdd2
Poles halaman Pengaturan premium
...
- Header card gradient biru + watermark, judul extrabold
- Input/label seragam (.input, label xs bold slate)
- 5 seksi dengan icon chip: Identitas (school), Kop Surat (file-lines),
Background Login (image), Kepala Sekolah (user-tie), Template WA
(whatsapp brand)
- Tombol Simpan Pengaturan btn-primary full-width
- Perbaiki label Nama Kepala Sekolah yang sempat hilang + keseimbangan div
- Test 31/105 hijau
2026-08-03 18:59:10 +07:00
Novy San87
187be9676b
Fix sidebar blokir scroll halaman di desktop
...
- Hapus overscroll-contain dari nav sidebar: kelas ini memblokir scroll
chaining ke body, sehingga saat mouse di sidebar & menu pendek, roda
scroll tidak menggulir halaman utama
- Sekarang scroll mengalir normal: menu sidebar habis → lanjut ke halaman
2026-08-03 18:55:17 +07:00
Novy San87
57d618a1ad
Poles halaman Input Pelanggaran premium
...
- Breadcrumb chevron + slate, judul extrabold
- Header form: gradient lebih dalam (blue-600→sky-400) + watermark gavel
- Section label slate seragam (5 bagian), input pakai sistem .input
- Tombol Pilih File/Ambil Foto/Batal btn-outline, Simpan btn-primary
- Logika Alpine tidak disentuh
2026-08-03 18:37:26 +07:00
Novy San87
4dce2ad1d3
Poles halaman Jenis Pelanggaran premium
...
- Header: tombol Download/Export/Import btn-outline, Tambah btn-primary
- Filter: input .input, tombol Filter/Reset sistem
- Tabel: thead slate, kategori jadi pill warna, poin +icon bolt, aksi
pill Edit/Nonaktifkan/Aktifkan konsisten, badge Sistem + x-tooltip,
empty state gradient
- Modal CRUD & Import: header gradient biru-indigo, .input seragam,
toggle iOS + glow, tombol btn
2026-08-03 18:23:04 +07:00
Novy San87
d6fa338921
Modal kategori: overlay blur konsisten (bg-slate-900/50 backdrop-blur-sm)
2026-08-03 18:20:45 +07:00
Novy San87
eec19d9a4f
Poles halaman Kategori Pelanggaran premium
...
- Kartu: strip gradient warna, icon chip gradient, badge 'X jenis' + urutan,
hover lift, label Nonaktif, aksi Edit/Nonaktifkan/Aktifkan pill + icon FA
- Empty state icon gradient + tombol btn-primary
- Modal: header gradient biru-indigo, input .input seragam, color picker +
8 preset swatch, toggle status iOS + glow, preview, tombol btn-primary/
btn-outline
2026-08-03 18:17:55 +07:00
Novy San87
c1b8a083f7
Brand area sidebar: tinggi eksplisit h-16 (sama persis topbar) + items-center
2026-08-03 18:15:32 +07:00
Novy San87
3e0c526daf
Sejajarkan tinggi brand area sidebar dengan topbar (64px)
2026-08-03 18:14:11 +07:00
Novy San87
c7d15b65ae
Poles halaman Data Siswa premium
...
- Header: badge 'X siswa' pill + badge filter 'X ditemukan'
- Tombol Cari/Reset pakai sistem btn-primary/btn-outline
- Avatar siswa: gradient warna bervariasi per huruf awal nama (6 palet,
konsisten utk nama yang sama)
- thead slate + tracking huruf, divide slate; jurusan jadi badge soft
- Empty state icon gradient
2026-08-03 18:10:54 +07:00
Novy San87
3169c636c5
Tooltip kustom premium via Alpine directive x-tooltip
...
- Directive global di app.js: satu tooltip singleton di body, posisi dari
getBoundingClientRect (fixed, tidak terpotong overflow-hidden), animasi
fade + slide halus, delay 120ms anti-kedip, fallback ke bawah jika di
tepi atas viewport, clamp ke viewport
- Tooltip gelap glass: bg-slate-900/95 + ring + shadow + backdrop-blur
- Badge kalender pelanggaran ('X pelanggaran') & presensi ('X siswa, Y
alpha') beralih dari :title native ke x-tooltip
- Sembunyi otomatis saat scroll/resize/klik
2026-08-03 18:08:57 +07:00