# GUIDA GESTIONE LAYOUT NETGESCON
**Data Creazione:** 22/07/2025  
**Ultima Modifica:** 22/07/2025  
**Versione:** 1.0

## PROBLEMA RICORRENTE: REGRESSIONE GRAFICA CON LOGOUT

### DESCRIZIONE PROBLEMA
Durante l'implementazione del sistema di logout, si è verificata una regressione grafica dove:
- Il logout funziona correttamente ✅
- La grafica tornava al layout vecchio (non bello) ❌
- Le pagine utilizzavano `layouts.app-universal-v2` invece di `admin.layouts.netgescon`

### CAUSA ROOT
Il problema si verifica quando si modifica il layout base e alcune pagine mantengono riferimenti al layout sbagliato.

## LAYOUT SYSTEM NETGESCON

### LAYOUT CORRETTO DA USARE
```blade
@extends('admin.layouts.netgescon')
```

### LAYOUT DA EVITARE
```blade
@extends('layouts.app-universal-v2')  <!-- SBAGLIATO -->
```

### CARATTERISTICHE LAYOUT CORRETTO
- **File:** `/resources/views/admin/layouts/netgescon.blade.php`
- **Header:** Blu con menu utente e logout funzionale
- **Sidebar:** Scura con navigazione (NETGESCON, Dashboard, Stabili, Condomini, etc.)
- **Design:** Moderno e professionale
- **Framework:** Bootstrap 5
- **Logout:** Menu dropdown in alto a destra con icona utente

## PROCEDURA DI RISOLUZIONE

### STEP 1: IDENTIFICARE PAGINE CON LAYOUT SBAGLIATO
```bash
grep -r "@extends('layouts.app-universal-v2')" resources/views/
```

### STEP 2: SOSTITUIRE LAYOUT ERRATO
Per ogni file trovato, sostituire:
```blade
# DA:
@extends('layouts.app-universal-v2')

# A:
@extends('admin.layouts.netgescon')
```

### STEP 3: PULIRE CACHE
```bash
php artisan view:clear
php artisan config:clear  
php artisan route:clear
```

### STEP 4: VERIFICARE RISULTATO
- Controllare che tutte le pagine abbiano la grafica bella
- Verificare che il logout funzioni
- Testare navigazione sidebar

## PAGINE SISTEMATE (22/07/2025)

### ADMIN PAGES
- ✅ `/admin/stabili/index.blade.php`
- ✅ `/admin/stabili/create.blade.php` 
- ✅ `/admin/stabili/edit.blade.php`
- ✅ `/admin/stabili/show.blade.php`
- ✅ `/admin/palazzine/show.blade.php`
- ✅ `/admin/unita-immobiliari/show.blade.php`
- ✅ `/admin/dashboard.blade.php`

### SUPERADMIN PAGES  
- ✅ `/superadmin/archivi/comuni.blade.php`
- ✅ `/superadmin/archivi/index.blade.php`
- ✅ `/superadmin/comuni/index.blade.php`

## COMANDO RAPIDO DI SISTEMA

### DIAGNOSI RAPIDA
```bash
# Trova tutte le pagine con layout sbagliato
grep -r "@extends('layouts.app-universal-v2')" /var/www/netgescon/resources/views/

# Conta quante pagine hanno layout sbagliato
grep -r "@extends('layouts.app-universal-v2')" /var/www/netgescon/resources/views/ | wc -l
```

### CORREZIONE AUTOMATICA (DA USARE CON ATTENZIONE)
```bash
# Sostituisce automaticamente in tutti i file
find /var/www/netgescon/resources/views/ -name "*.blade.php" -exec sed -i "s/@extends('layouts\.app-universal-v2')/@extends('admin.layouts.netgescon')/g" {} \;

# Pulisce cache dopo correzione
php artisan view:clear && php artisan config:clear && php artisan route:clear
```

## LAYOUT HEADER CON LOGOUT

### CODICE LOGOUT MENU (FUNZIONANTE)
```blade
<!-- User Dropdown Menu -->
<div class="dropdown">
    <a class="nav-link dropdown-toggle d-flex align-items-center text-white text-decoration-none" 
       href="#" role="button" id="userDropdown" data-bs-toggle="dropdown" aria-expanded="false">
        <i class="fas fa-user-circle me-2"></i>
        <span>{{ Auth::user()->name }}</span>
    </a>
    <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="userDropdown">
        <li><a class="dropdown-item" href="#"><i class="fas fa-user me-2"></i>Profilo</a></li>
        <li><a class="dropdown-item" href="#"><i class="fas fa-cog me-2"></i>Impostazioni</a></li>
        <li><hr class="dropdown-divider"></li>
        <li>
            <form method="POST" action="{{ route('logout') }}" class="d-inline">
                @csrf
                <button type="submit" class="dropdown-item">
                    <i class="fas fa-sign-out-alt me-2"></i>Logout
                </button>
            </form>
        </li>
    </ul>
</div>
```

### JAVASCRIPT NECESSARIO
```javascript
// Assicurarsi che Bootstrap JS sia caricato per dropdown
document.addEventListener('DOMContentLoaded', function() {
    // Bootstrap dropdown auto-inizializzazione
    var dropdownElementList = [].slice.call(document.querySelectorAll('.dropdown-toggle'));
    var dropdownList = dropdownElementList.map(function (dropdownToggleEl) {
        return new bootstrap.Dropdown(dropdownToggleEl);
    });
});
```

## PREVENZIONE FUTURA

### CHECKLIST MODIFICHE LAYOUT
1. ✅ Testare logout funziona
2. ✅ Verificare grafica belle mantiene
3. ✅ Controllare tutte le pagine principali
4. ✅ Pulire cache Laravel
5. ✅ Documentare cambiamenti

### FILE DA MONITORARE
- `admin.layouts.netgescon` - Layout principale
- Tutte le blade in `resources/views/admin/`
- Tutte le blade in `resources/views/superadmin/`

### BACKUP IMPORTANTE
Prima di modifiche ai layout, backup di:
- `resources/views/admin/layouts/netgescon.blade.php`
- Lista completa pagine con layout corretto

## LOGS SESSIONE RISOLUZIONE

### 22/07/2025 - RISOLUZIONE COMPLETA
**Problema:** Regressione grafica dopo implementazione logout  
**Causa:** Pagine con `@extends('layouts.app-universal-v2')`  
**Soluzione:** Cambio a `@extends('admin.layouts.netgescon')`  
**Pagine sistemate:** 8 admin pages + 3 superadmin pages  
**Risultato:** ✅ Logout funzionale + ✅ Grafica bella mantenuta  

### COMMAND LOG
```bash
# Comandi eseguiti
grep -r "@extends('layouts.app-universal-v2')" resources/views/
# Sostituzioni multiple con replace_string_in_file
php artisan view:clear && php artisan config:clear && php artisan route:clear
```

---
**NOTA:** Questo documento deve essere aggiornato ogni volta che si interviene sui layout per mantenere traccia delle modifiche e prevenire regressioni future.
