netgescon-master/docs/00-LAYOUT-MANAGEMENT-GUIDE.md

5.7 KiB

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

@extends('admin.layouts.netgescon')

LAYOUT DA EVITARE

@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

grep -r "@extends('layouts.app-universal-v2')" resources/views/

STEP 2: SOSTITUIRE LAYOUT ERRATO

Per ogni file trovato, sostituire:

# DA:
@extends('layouts.app-universal-v2')

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

STEP 3: PULIRE CACHE

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

# 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)

# 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)

<!-- 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

// 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

# 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.