# 🔧 Troubleshooting: Menu Tidak Muncul di Shared Hosting

Jika menu "Approval" dan "Perangkat User" muncul di local tapi tidak di shared hosting, ikuti langkah-langkah berikut:

## 🔍 Langkah 1: Check Menu Configuration

1. **Upload file `check-menu.php` ke folder `public/` di hosting**

2. **Akses via browser:**
   ```
   https://yourdomain.com/check-menu.php?secret=check-menu-2024
   ```

3. **Script akan mengecek:**
   - ✅ Apakah file `AdminPanelProvider.php` ada
   - ✅ Apakah file `UserDeviceResource.php` ada
   - ✅ Apakah navigation group "Approval" sudah terdaftar
   - ✅ Apakah UserDeviceResource menggunakan group "Approval"
   - ✅ Apakah cache files ada (perlu di-clear)
   - ✅ Apakah model UserDevice.php ada
   - ✅ Apakah table `user_devices` ada di database

4. **Lihat hasil dan ikuti rekomendasi yang diberikan**

## 🚨 Masalah Umum dan Solusi

### Masalah 1: File Belum Ter-upload

**Gejala:** Script `check-menu.php` menunjukkan file tidak ditemukan

**Solusi:**
1. Pastikan file berikut sudah ter-upload:
   - `app/Providers/Filament/AdminPanelProvider.php`
   - `app/Filament/Resources/UserDeviceResource.php`
   - `app/Models/UserDevice.php`

2. Verifikasi path file di hosting sama dengan local

3. Cek permission file (harus readable)

### Masalah 2: Cache Masih Menggunakan Konfigurasi Lama

**Gejala:** File ada, tapi menu tidak muncul

**Solusi:**
1. **Clear cache menggunakan script:**
   ```
   https://yourdomain.com/clear-cache.php?secret=clear-cache-2024
   ```

2. **Atau manual clear cache:**
   - Hapus folder `bootstrap/cache/` (kecuali file `.gitignore`)
   - Hapus folder `storage/framework/cache/`
   - Hapus folder `storage/framework/views/`

3. **Clear browser cache:**
   - Hard refresh: `Ctrl+Shift+R` (Windows) atau `Cmd+Shift+R` (Mac)
   - Atau clear browser cache manual

### Masalah 3: Navigation Group "Approval" Tidak Terdaftar

**Gejala:** File ada, tapi group "Approval" tidak muncul

**Solusi:**
1. Buka file `app/Providers/Filament/AdminPanelProvider.php`

2. Pastikan ada kode berikut di dalam `navigationGroups()`:
   ```php
   NavigationGroup::make()
       ->label('Approval')
       ->icon('heroicon-o-check-circle')
       ->collapsed(false),
   ```

3. Jika tidak ada, tambahkan setelah group "Perjalanan Dinas"

4. Clear cache setelah edit

### Masalah 4: UserDeviceResource Tidak Terdeteksi

**Gejala:** File ada, tapi resource tidak muncul di menu

**Solusi:**
1. Pastikan file `UserDeviceResource.php` ada di:
   ```
   app/Filament/Resources/UserDeviceResource.php
   ```

2. Pastikan class name benar:
   ```php
   class UserDeviceResource extends Resource
   ```

3. Pastikan menggunakan navigation group "Approval":
   ```php
   protected static ?string $navigationGroup = 'Approval';
   ```

4. Clear cache dan autoload:
   ```bash
   composer dump-autoload
   php artisan optimize:clear
   ```

### Masalah 5: Database Table Tidak Ada

**Gejala:** Menu tidak muncul karena table `user_devices` tidak ada

**Solusi:**
1. **Run migration:**
   ```
   https://yourdomain.com/artisan-helper.php?secret=artisan-helper-2024&cmd=migrate --force
   ```

2. **Atau via cPanel Terminal:**
   ```bash
   php artisan migrate --force
   ```

3. **Verifikasi table ada:**
   - Cek di phpMyAdmin atau database tool
   - Table `user_devices` harus ada

## 📋 Checklist Lengkap

Gunakan checklist ini untuk memastikan semua sudah benar:

- [ ] File `AdminPanelProvider.php` sudah ter-upload
- [ ] File `UserDeviceResource.php` sudah ter-upload
- [ ] File `UserDevice.php` (model) sudah ter-upload
- [ ] Navigation group "Approval" sudah terdaftar di `AdminPanelProvider.php`
- [ ] `UserDeviceResource` menggunakan `navigationGroup = 'Approval'`
- [ ] Cache sudah di-clear (`optimize:clear`)
- [ ] Browser cache sudah di-clear (hard refresh)
- [ ] Table `user_devices` ada di database
- [ ] Migration sudah dijalankan
- [ ] Permission folder `storage` dan `bootstrap/cache` sudah benar (775)

## 🔄 Workflow Perbaikan

1. **Upload file yang hilang** (jika ada)
2. **Run check-menu.php** untuk verifikasi
3. **Clear cache** menggunakan `clear-cache.php`
4. **Clear browser cache** (hard refresh)
5. **Login ulang** ke admin panel
6. **Verifikasi menu** sudah muncul

## 💡 Tips

1. **Selalu clear cache setelah update file:**
   - Config files
   - Resource files
   - Provider files

2. **Gunakan script check-menu.php** untuk diagnosa cepat

3. **Pastikan semua file ter-upload** dengan benar:
   - Cek size file sama dengan local
   - Cek timestamp file
   - Cek permission file

4. **Jika masih tidak muncul:**
   - Cek error log: `storage/logs/laravel.log`
   - Cek browser console untuk JavaScript errors
   - Cek network tab untuk failed requests

## 🆘 Masih Tidak Muncul?

Jika setelah semua langkah di atas menu masih tidak muncul:

1. **Cek error log:**
   ```
   storage/logs/laravel.log
   ```

2. **Cek apakah ada error di browser console:**
   - Buka Developer Tools (F12)
   - Cek tab Console untuk errors
   - Cek tab Network untuk failed requests

3. **Verifikasi user memiliki permission:**
   - Pastikan user login memiliki role `admin` atau `super_admin`
   - Cek apakah ada policy yang membatasi akses

4. **Cek environment:**
   - Pastikan `APP_ENV` di `.env` sudah benar
   - Pastikan `APP_DEBUG` sesuai kebutuhan

5. **Contact support** dengan informasi:
   - Hasil dari `check-menu.php`
   - Error log terakhir
   - Screenshot menu yang tidak muncul

---

**Selamat Troubleshooting! 🔧**

