Initial commit: Retribusi frontend dengan dashboard, event logs, dan settings

This commit is contained in:
mwpn
2025-12-18 11:21:40 +07:00
commit b3573ed390
35 changed files with 7368 additions and 0 deletions

111
DASHBOARD_DEBUG.md Normal file
View File

@@ -0,0 +1,111 @@
# Debug Dashboard Data Kosong
## ✅ Perbaikan yang Sudah Dilakukan
1. **Default Date**: Diubah ke `2025-12-16` (tanggal yang ada data)
2. **Logging**: Ditambahkan console.log di berbagai titik
3. **Response Handling**: Handle wrapped response dengan benar
4. **Fallback Logic**: Ditambahkan fallback di backend jika daily_summary kosong
## 🔍 Cara Debug
### 1. Buka Browser Console (F12)
Cek apakah ada log:
```
[Dashboard] Summary response raw: {...}
[Dashboard] By Category response raw: {...}
[Dashboard] Final counts: {...}
```
### 2. Cek Network Tab
- Buka DevTools > Network
- Filter: XHR atau Fetch
- Cari request ke `/retribusi/v1/dashboard/summary`
- Klik request > Response tab
- Lihat apakah response berisi data
**Expected Response:**
```json
{
"success": true,
"data": {
"total_count": 47,
"total_amount": 112000,
"active_gates": 1,
"active_locations": 1
}
}
```
### 3. Test Manual di Console
Buka browser console dan jalankan:
```javascript
// Test API call langsung
const response = await apiGetSummary({ date: '2025-12-16' });
console.log('Response:', response);
// Test render manual
renderSummary({
totalAmount: 112000,
personCount: 33,
motorCount: 12,
carCount: 2
});
```
### 4. Cek Element HTML
```javascript
// Di browser console
const amountEl = document.getElementById('card-total-amount');
console.log('Amount element:', amountEl);
console.log('Current value:', amountEl?.textContent);
```
## 🐛 Jika Masih Kosong
### Kemungkinan 1: API Error
**Cek**: Network tab > Status code
- **401**: Token expired, login ulang
- **404**: Route tidak ditemukan, cek base URL
- **500**: Server error, cek API logs
### Kemungkinan 2: Response Format Salah
**Cek**: Response body di Network tab
- Jika format `{success: true, data: {...}}`, sudah benar
- Jika format berbeda, perlu fix di api.js
### Kemungkinan 3: Element Tidak Ditemukan
**Cek**: Console untuk error "Cannot read property..."
- Pastikan HTML element dengan ID yang benar ada
- Cek apakah script di-load setelah DOM ready
### Kemungkinan 4: Date Tidak Sesuai
**Cek**: State date di console
```javascript
console.log('State date:', state.date);
// Harus: '2025-12-16' atau tanggal yang ada data
```
## 🚀 Quick Test
Jalankan di browser console setelah halaman load:
```javascript
// Force load dengan date yang ada data
state.date = '2025-12-16';
const dateInput = document.getElementById('filter-date');
if (dateInput) dateInput.value = '2025-12-16';
loadSummaryAndCharts();
```
## 📝 Expected Values untuk 2025-12-16
- **Total Pendapatan**: Rp 112,000
- **Jumlah Orang**: 33
- **Jumlah Motor**: 12
- **Jumlah Mobil**: 2
Jika nilai ini tidak muncul, ada masalah dengan:
1. API call (cek Network tab)
2. Response parsing (cek console log)
3. Data rendering (cek element HTML)