📋 Commit iniziale con: - ✅ Documentazione unificata in docs/ - ✅ Codice Laravel in netgescon-laravel/ - ✅ Script automazione in scripts/ - ✅ Configurazione sync rsync - ✅ Struttura organizzata e pulita 🔄 Versione: 2025.07.19-1644 🎯 Sistema pronto per Git distribuito
285 lines
8.6 KiB
Markdown
285 lines
8.6 KiB
Markdown
# 🔧 INTERFACCIA UNICA - TROUBLESHOOTING NETGESCON
|
||
|
||
> **Manual operativo** per risoluzione problemi interfaccia, layout e dashboard
|
||
> **🔗 Master:** [`../../00-INDICE-MASTER-NETGESCON.md`](../../00-INDICE-MASTER-NETGESCON.md)
|
||
> **📅 Aggiornato:** 15/07/2025
|
||
|
||
---
|
||
|
||
## 🚨 **PROBLEMI RISOLTI - QUICK REFERENCE**
|
||
|
||
### 1️⃣ **Dashboard si sposta dopo refresh** ✅ RISOLTO
|
||
**Problema:** Layout che si sposta in basso dopo aggiornamento pagina
|
||
**Causa:** Loading screen invasivo in `universal.blade.php`
|
||
**Fix:** Commentata riga `@include('components.layout.loading-screen')`
|
||
**File:** `resources/views/components/layout/universal.blade.php`
|
||
|
||
### 2️⃣ **View [dashboard.guest] not found** ✅ RISOLTO
|
||
**Problema:** Errore view mancante per dashboard guest
|
||
**Fix:** Creata `resources/views/dashboard/guest.blade.php`
|
||
**Content:** Layout base con @extends('layouts.app')
|
||
|
||
### 3️⃣ **Form stabili non si visualizza** ✅ RISOLTO
|
||
**Problema:** Maschera inserimento stabili non visibile, interfaccia rotta
|
||
**Causa:** Form mista Bootstrap/Tailwind, layout tab non funzionante
|
||
**Fix:** Rifatta completamente form con layout tab Bootstrap puro
|
||
**File:** `resources/views/admin/stabili/_form.blade.php`
|
||
|
||
### 4️⃣ **Ruolo 'condomino' mancante** ✅ RISOLTO
|
||
**Problema:** Errore ruolo condomino non trovato
|
||
**Fix:** Seeder ruoli aggiornato e eseguito
|
||
**Command:** `php artisan db:seed --class=RoleSeeder`
|
||
|
||
### 5️⃣ **Loading screen invasivo** ✅ RISOLTO
|
||
**Problema:** Schermata loading copre tutta l'interfaccia
|
||
**Fix:** Sostituito con progress bar footer non invasiva
|
||
**File:** `resources/views/components/menu/sections/footer.blade.php`
|
||
|
||
---
|
||
|
||
## 🏢 **FORM STABILI - DETTAGLIO ARCHITETTURA**
|
||
|
||
### 📋 **Struttura Tab Implementate**
|
||
|
||
| Tab | Contenuto | Status |
|
||
|-----|-----------|--------|
|
||
| 🏠 **Dati Generali** | Denominazione, codice stabile, CF, P.IVA, note | ✅ Completo |
|
||
| 📍 **Indirizzo** | Via, città, CAP, provincia | ✅ Completo |
|
||
| 🏢 **Palazzine** | Gestione multi-palazzine tabella Excel-like | ✅ Completo |
|
||
| 🏛️ **Dati Catastali** | Foglio, mappale, categoria, piani/interni evidenziati | ✅ Completo |
|
||
| 🏦 **Dati Bancari** | IBAN principale/secondario, banche, filiali | ✅ Completo |
|
||
| 👤 **Amministratore** | Nome, email, date nomina/scadenza | ✅ Completo |
|
||
| 🏪 **Locali Servizio** | Cantina, portiere, contatori, caldaia, biciclette | ✅ Completo |
|
||
|
||
### 🏗️ **Tab Palazzine - Gestione Multi-Palazzine**
|
||
|
||
**Funzionalità:**
|
||
- ✅ Tabella dinamica stile Excel
|
||
- ✅ Aggiungi/Rimuovi righe con bottoni
|
||
- ✅ Campi: Palazzina, Indirizzo, Scala, Interni, Piani
|
||
- ✅ Dati esempio precaricati (Via Germanico, Via Catone, Via Gracchi)
|
||
|
||
**Dati Esempio:**
|
||
```
|
||
PALAZZINA | INDIRIZZO | SCALA | INTERNI | PIANI
|
||
1 | Via Germanico 85 | A | 8 | 4
|
||
1 | Via Germanico 85 | B | 6 | 4
|
||
2 | Via Catone 34 | A | 12 | 4
|
||
2 | Via Catone 34 | B | 12 | 4
|
||
2 | Via Catone 34 | C | 12 | 4
|
||
3 | Via Gracchi 32 | A | 10 | 4
|
||
3 | Via Gracchi 32 | B | 10 | 4
|
||
```
|
||
|
||
### 🏛️ **Tab Dati Catastali - Evidenziazione**
|
||
|
||
**Caratteristiche:**
|
||
- ✅ Alert warning per evidenziare importanza
|
||
- ✅ Card dedicata per piani/interni con badge
|
||
- ✅ Layout in evidenza per dati ufficiali
|
||
|
||
**Piani/Interni Evidenziati:**
|
||
```
|
||
🏢 PIANI E INTERNI
|
||
Piano 1: [INTERNI 12] Piano 2: [INTERNI 34]
|
||
Piano 3: [INTERNI 56] Piano 4: [INTERNI 78]
|
||
```
|
||
|
||
### 🏪 **Tab Locali di Servizio**
|
||
|
||
**Tipi Locali Supportati:**
|
||
- ✅ Cantina
|
||
- ✅ Appartamento Portiere
|
||
- ✅ Locale Contatori
|
||
- ✅ Locale Caldaia
|
||
- ✅ Locale Biciclette
|
||
- ✅ Altro (personalizzabile)
|
||
|
||
**Campi per Locale:**
|
||
- **Tipo:** Dropdown con categorie predefinite
|
||
- **Descrizione:** Testo libero (es. "Cantina 1 e 2")
|
||
- **Ubicazione:** Piano/posizione (es. "Piano Interrato")
|
||
|
||
### 💾 **Database - Campi JSON**
|
||
|
||
**Tabella `stabili` - Nuovi Campi:**
|
||
```sql
|
||
palazzine_data JSON -- Array palazzine
|
||
locali_servizio JSON -- Array locali
|
||
iban_principale VARCHAR -- IBAN primario
|
||
banca_principale VARCHAR -- Nome banca
|
||
amministratore_nome VARCHAR -- Nome amministratore
|
||
foglio VARCHAR -- Catastale
|
||
mappale VARCHAR -- Catastale
|
||
categoria VARCHAR -- Catastale
|
||
rendita_catastale DECIMAL -- Catastale
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 **TROUBLESHOOTING SPECIFICO**
|
||
|
||
### ❌ **Form stabili non funziona**
|
||
|
||
**Sintomi:**
|
||
- Tab non responsive
|
||
- Campi non visibili
|
||
- JavaScript errors
|
||
- Layout rotto
|
||
|
||
**Diagnosi:**
|
||
```bash
|
||
# Controlla il file form
|
||
cat resources/views/admin/stabili/_form.blade.php | head -20
|
||
|
||
# Verifica Bootstrap loaded
|
||
curl http://localhost:8000 | grep bootstrap
|
||
|
||
# Controlla errori JavaScript
|
||
# (F12 -> Console nel browser)
|
||
```
|
||
|
||
**Fix:**
|
||
```bash
|
||
# Se la form è rotta, ripristina da backup
|
||
cp resources/views/admin/stabili/_form.blade.php.backup resources/views/admin/stabili/_form.blade.php
|
||
|
||
# Oppure ricrea la form
|
||
php artisan make:view admin.stabili._form
|
||
```
|
||
|
||
### ❌ **Palazzine non salvano**
|
||
|
||
**Sintomi:**
|
||
- Dati palazzine non persistono
|
||
- Errore validazione array
|
||
- JSON malformato
|
||
|
||
**Diagnosi:**
|
||
```bash
|
||
# Controlla migration
|
||
php artisan migrate:status | grep banking
|
||
|
||
# Verifica colonna JSON
|
||
php artisan tinker
|
||
> Schema::hasColumn('stabili', 'palazzine_data')
|
||
```
|
||
|
||
**Fix:**
|
||
```bash
|
||
# Riesegui migrazione se necessario
|
||
php artisan migrate:fresh --seed
|
||
|
||
# Controlla model cast
|
||
grep -n "palazzine_data" app/Models/Stabile.php
|
||
```
|
||
|
||
### ❌ **JavaScript tab non funziona**
|
||
|
||
**Sintomi:**
|
||
- Tab non clickable
|
||
- Contenuto non si switcha
|
||
- Console errors
|
||
|
||
**Diagnosi:**
|
||
```javascript
|
||
// Nel browser F12 -> Console
|
||
document.querySelectorAll('[data-bs-toggle="tab"]')
|
||
typeof bootstrap
|
||
```
|
||
|
||
**Fix:**
|
||
```html
|
||
<!-- Assicurati Bootstrap JS sia caricato -->
|
||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
||
|
||
<!-- Inizializza tab manualmente se necessario -->
|
||
<script>
|
||
document.querySelectorAll('[data-bs-toggle="tab"]').forEach(tab => {
|
||
new bootstrap.Tab(tab)
|
||
});
|
||
</script>
|
||
```
|
||
|
||
---
|
||
|
||
## 📋 **CHECKLIST VALIDAZIONE FORM STABILI**
|
||
|
||
### ✅ **Pre-Test**
|
||
- [ ] Server Laravel running su http://localhost:8000
|
||
- [ ] Login admin funzionante (admin@example.com / password)
|
||
- [ ] Menu Stabili accessibile
|
||
- [ ] Nessun errore 500 in laravel.log
|
||
|
||
### ✅ **Test Interfaccia**
|
||
- [ ] Tab visibili e clickable
|
||
- [ ] Ogni tab mostra contenuto corretto
|
||
- [ ] Font compatto e leggibile
|
||
- [ ] Nessun overflow o scrollbar indesiderati
|
||
|
||
### ✅ **Test Palazzine**
|
||
- [ ] Tabella visibile con dati esempio
|
||
- [ ] Bottone "Aggiungi Palazzina" funziona
|
||
- [ ] Bottone "Rimuovi" (trash) funziona
|
||
- [ ] Impossibile rimuovere ultima riga
|
||
- [ ] Validazione campi numerici (interni/piani)
|
||
|
||
### ✅ **Test Locali**
|
||
- [ ] Dropdown tipo locale funziona
|
||
- [ ] Bottone "Aggiungi Locale" funziona
|
||
- [ ] Campi descrizione/ubicazione editabili
|
||
- [ ] Rimozione locali funziona
|
||
|
||
### ✅ **Test Salvataggio**
|
||
- [ ] Form submit senza errori
|
||
- [ ] Dati persistono nel database
|
||
- [ ] JSON palazzine_data ben formato
|
||
- [ ] JSON locali_servizio ben formato
|
||
- [ ] Redirect corretto dopo salvataggio
|
||
|
||
### ✅ **Test Dati Catastali**
|
||
- [ ] Alert warning visibile
|
||
- [ ] Card piani/interni in evidenza
|
||
- [ ] Badge colorate per interni
|
||
- [ ] Campi catastali editabili
|
||
|
||
---
|
||
|
||
## 🔗 **RIFERIMENTI E LINK**
|
||
|
||
### 📁 **File Critici**
|
||
- **Form:** `resources/views/admin/stabili/_form.blade.php`
|
||
- **Controller:** `app/Http/Controllers/Admin/StabileController.php`
|
||
- **Model:** `app/Models/Stabile.php`
|
||
- **Migration:** `database/migrations/2025_07_15_063452_add_banking_and_palazzine_fields_to_stabili_table.php`
|
||
|
||
### 🔧 **Comandi Utili**
|
||
```bash
|
||
# Restart server
|
||
php artisan serve --host=0.0.0.0 --port=8000
|
||
|
||
# Check migrations
|
||
php artisan migrate:status
|
||
|
||
# Clear cache
|
||
php artisan optimize:clear
|
||
|
||
# Test database
|
||
php artisan tinker
|
||
```
|
||
|
||
### 📞 **Link Documentazione**
|
||
- **Master Index:** [`../../00-INDICE-MASTER-NETGESCON.md`](../../00-INDICE-MASTER-NETGESCON.md)
|
||
- **Quick Reference:** [`../QUICK-REFERENCE-CARD.md`](../QUICK-REFERENCE-CARD.md)
|
||
- **Log Sviluppo:** [`../LOG-SVILUPPO.md`](../LOG-SVILUPPO.md)
|
||
|
||
---
|
||
|
||
> **💡 TIP:** Questo manual viene aggiornato ad ogni fix. Documenta sempre nuovi problemi!
|
||
> **🔄 Mantieni aggiornato** con ogni modifica alla form stabili.
|
||
|
||
---
|
||
|
||
**🔧 Interfaccia Unica Troubleshooting** - NetGescon System
|
||
**📧 Support:** admin@netgescon.it | **🌐 URL:** http://localhost:8000
|