This commit is contained in:
2025-11-28 18:03:34 +01:00
parent 30cd0c51f5
commit 6bc65c2a29
17 changed files with 3546 additions and 469 deletions

View File

@@ -46,12 +46,25 @@ XX. **Nome Problema (FIX/IMPLEMENTATO DATA):** - **Problema:** Descrizione breve
## Quick Start - Session Recovery
**Ultima sessione:** 28 Novembre 2025 (tarda notte)
**Ultima sessione:** 28 Novembre 2025 (pomeriggio - sera)
**Stato progetto:** Migrazione Oracle APEX → .NET + React TypeScript in corso
**Lavoro completato nell'ultima sessione:**
- **NUOVA FEATURE: Sistema Collaborazione Real-Time Globale** - IN CORSO
- Migrato da sistema report-specific a sistema globale per tutta l'app
- `CollaborationHub.cs` - Hub SignalR generico per qualsiasi entità/pagina
- `collaboration.ts` - Service singleton per gestione connessione
- `CollaborationContext.tsx` - React Context con hooks (`useCollaboration`, `useCollaborationRoom`)
- `CollaborationIndicator.tsx` - Indicatore globale nella UI
- Room-based collaboration con formato `{entityType}:{entityId}`
- **FIX: Incompatibilità versione SignalR** - Rimosso package `Microsoft.AspNetCore.SignalR.Common` v10.0.0 incompatibile con .NET 9, downgrade client `@microsoft/signalr` a v8.0.7
- **FIX: Auto-save non funzionante** - Usati `useRef` per evitare re-run dell'effect causato da `saveMutation` nelle dependencies
- **IN DEBUG:** Sincronizzazione real-time tra sessioni - Il salvataggio manuale sincronizza, l'auto-save invia la notifica ma la sessione 2 non la riceve ancora
**Lavoro completato nelle sessioni precedenti (28 Novembre 2025 tarda notte):**
- **NUOVA FEATURE: Toolbar Report Designer Migliorata Drasticamente** - COMPLETATO
- Design moderno stile Canva/Figma con gradient buttons e animazioni fluide
- **Sezioni etichettate** su desktop (INSERISCI, MODIFICA, CRONOLOGIA, VISTA, ZOOM, PAGINA)
@@ -1050,6 +1063,36 @@ frontend/src/
- **Type aggiunto:** `textDecoration` in `AprtStyle`
- **File:** `EditorToolbar.tsx`, `types/report.ts`
20. **Incompatibilità Versione SignalR (FIX 28/11/2025 pomeriggio):**
- **Problema:** Errore "Method not found: 'System.String Microsoft.AspNetCore.SignalR.IInvocationBinder.GetTarget(System.ReadOnlySpan`1<Byte>)'." - connessioni SignalR fallivano immediatamente
- **Causa:** Package `Microsoft.AspNetCore.SignalR.Common` v10.0.0 nel backend incompatibile con .NET 9 (è per .NET 10 preview)
- **Soluzione:**
- Rimosso `Microsoft.AspNetCore.SignalR.Common` dal .csproj (SignalR è già incluso in ASP.NET Core)
- Downgrade frontend `@microsoft/signalr` da v10.0.0 a v8.0.7
- **File:** `Apollinare.API.csproj`, `frontend/package.json`
21. **Auto-Save Non Funzionante (FIX 28/11/2025 pomeriggio):**
- **Problema:** Con auto-save attivo, le modifiche non venivano salvate (l'indicatore mostrava "Non salvato" sempre)
- **Causa:** `saveMutation` nell'array di dipendenze dell'`useEffect` causava il reset del timeout ad ogni render (React Query crea un nuovo oggetto ad ogni render)
- **Soluzione:** Usati `useRef` per `saveMutation`, `template`, e `templateInfo` per evitare che l'effect si ri-esegua inutilmente
- **File:** `ReportEditorPage.tsx`
22. **Sistema Collaborazione Real-Time (IN CORSO 28/11/2025):**
- **Obiettivo:** Collaborazione stile Google Docs su tutto l'applicativo
- **Architettura implementata:**
- `CollaborationHub.cs` - Hub SignalR generico con room-based collaboration
- `collaboration.ts` - Service singleton frontend
- `CollaborationContext.tsx` - React Context con `useCollaborationRoom` hook
- Room key format: `{entityType}:{entityId}` (es. `report-template:2`)
- **Stato attuale:**
- Connessione e join room funzionanti
- Salvataggio manuale notifica le altre sessioni correttamente
- Auto-save invia `sendDataSaved()` ma le altre sessioni non ricevono la notifica
- **Debug in corso:** Aggiunto logging dettagliato per tracciare il flusso dei messaggi
- **File principali:**
- Backend: `CollaborationHub.cs`
- Frontend: `collaboration.ts`, `CollaborationContext.tsx`, `ReportEditorPage.tsx`
### Schema Database Report System
Le tabelle sono già nel DbContext (`AppollinareDbContext.cs`):