Commenti sui documenti
Introduzione
Sutram fornisce un potente sistema di commenti sui documenti che permette ai team di progetto di collaborare direttamente sui documenti posizionando commenti in punti specifici. I commenti sono ancorati a posizioni precise all'interno di PDF, immagini, documenti Office, file Markdown e modelli CAD/BIM, consentendo discussioni contestuali senza lasciare la piattaforma.
Funzionalità Principali
- Ancoraggio Contestuale: Tre diversi metodi di ancoraggio a seconda del tipo di file
- Discussioni con Thread: Rispondi ai commenti per creare thread di conversazione
- Collaborazione in Tempo Reale: Visualizza istantaneamente i commenti degli altri utenti tramite PubSub
- Supporto Multi-Formato: Funziona con PDF, immagini, documenti Office (Word, Excel, PowerPoint), Markdown e file CAD/BIM
- Risoluzione dei Commenti: Segna i commenti come risolti quando le questioni sono state affrontate
- Indicatori Visivi: Indicatori a palloncino numerati mostrano la posizione dei commenti direttamente sui documenti
- Pannello Commenti: Pannello inferiore con filtri (Tutti/Aperti/Risolti) per sfogliare e navigare tra i commenti
- Navigazione: Clicca sugli indicatori o sugli elementi del pannello per saltare a commenti specifici
- Supporto 6 Lingue: Internazionalizzazione completa (Inglese, Portoghese, Spagnolo, Francese, Tedesco, Italiano)
Metodi di Ancoraggio per Tipo di File
Il sistema utilizza tre metodi di ancoraggio distinti a seconda del tipo di file, ciascuno ottimizzato per il modo in cui gli utenti interagiscono con quel tipo di contenuto:
1. Ancoraggio Posizionale (PDF e Immagini)
Utilizzato per: File PDF, Immagini, Documenti Office (convertiti in PDF)
Come funziona: L'utente clicca in qualsiasi punto del documento e il commento viene ancorato a coordinate relative (0.0-1.0).
| Tipo di File | Tipo di Posizione | Archiviazione | Interazione Utente |
|---|---|---|---|
pdf_page |
pdf_page_number + pdf_relative_x/y (0.0-1.0) |
Clic ovunque sulla pagina | |
| Immagini | image |
pdf_relative_x/y (0.0-1.0) |
Clic ovunque sull'immagine |
| Office | pdf_page |
Convertito prima in PDF, uguale a PDF | Clic sul PDF convertito |
Vantaggi:
- Funziona indipendentemente dal livello di zoom o dalla dimensione della finestra
- Posizionamento preciso su contenuti visivi
- Semplice e intuitivo per gli utenti
Testo del pulsante: "Clicca per aggiungere..." (tradotto in 6 lingue)
2. Ancoraggio Vista Telecamera (CAD/BIM)
Utilizzato per: Disegni CAD 2D (DWG, DXF), Modelli CAD 3D (IFC, RVT, ecc.)
Come funziona: L'utente clicca sul modello e il commento cattura sia le coordinate mondo CHE lo stato della telecamera (posizione della vista, zoom, rotazione).
| Tipo di File | Tipo di Posizione | Archiviazione | Interazione Utente |
|---|---|---|---|
| CAD 3D | aps_3d |
aps_world_coordinates {x,y,z} + aps_db_id + aps_camera_state |
Clic sulla superficie del modello 3D |
| CAD 2D | aps_2d |
aps_world_coordinates {x,y,z} + aps_sheet_guid + aps_camera_state |
Clic sul disegno 2D |
Vantaggi:
- Gli indicatori seguono il modello durante zoom/panoramica/rotazione
- "Vai alla posizione" ripristina la vista esatta che il commentatore vedeva
- Funziona con viste esplose e piani di sezione
- ID dell'elemento catturato per future integrazioni
Testo del pulsante: "Clicca per aggiungere..." (tradotto in 6 lingue)
3. Commenti Ancorati al Testo (Markdown)
Utilizzato per: File Markdown (nel visualizzatore e nell'editor)
Come funziona: L'utente seleziona il testo (invece di cliccare) e il commento viene ancorato al testo selezionato con contesto circostante per la resilienza alle modifiche.
| Tipo di File | Tipo di Posizione | Archiviazione | Interazione Utente |
|---|---|---|---|
| Markdown | markdown |
text_anchor {exact_text, prefix, suffix} + pdf_relative_y (fallback) |
Seleziona testo per commentare |
Struttura dell'Ancora Testuale:
{
"exact_text": "the selected text",
"prefix": "50 chars before selection",
"suffix": "50 chars after selection",
"selection_length": 18
}
Vantaggi:
- I commenti sopravvivono alle modifiche del documento (ricerca basata sul testo, non sulla posizione dei pixel)
- Il contesto prefisso/suffisso aiuta a trovare il testo anche se la corrispondenza esatta si sposta
- Evidenziazione visiva del testo commentato nel visualizzatore
- Supporto mobile con pulsante "Commenta" flottante
Testo del pulsante: "Seleziona testo..." (tradotto in 6 lingue)
UX Mobile:
- Il dispositivo touch viene rilevato automaticamente
- L'utente esegue una pressione prolungata per selezionare il testo
- Il pulsante flottante "Commenta" appare sotto la selezione (evita conflitti con il menu nativo)
- Debounce di 600ms permette all'utente di regolare le maniglie di selezione prima che appaia il pulsante
Come Funziona
Attivazione della Modalità Commenti
- Aprire l'anteprima di un documento (PDF, immagine, Markdown, Office o file CAD)
- Fare clic sul pulsante commenti nella barra degli strumenti dell'anteprima
- L'overlay si attiva e appaiono gli indicatori per i commenti esistenti
- Il Pannello Commenti appare in basso con le opzioni di filtro
Aggiunta di un Commento
L'interazione varia in base al tipo di file:
PDF, Immagini, Office, CAD
- Con la modalità commenti attivata, fare clic su Aggiungi nel Pannello Commenti
- Fare clic sul documento nella posizione desiderata
- Appare una finestra modale con un campo di testo
- Inserire il testo del commento
- Fare clic su Pubblica Commento per creare il commento
- Un indicatore numerato appare nella posizione cliccata
Markdown
- Con la modalità commenti attivata, fare clic su Aggiungi nel Pannello Commenti
- Selezionare il testo cliccando e trascinando (desktop) o pressione prolungata e trascinamento maniglie (mobile)
- Su desktop: la finestra modale si apre immediatamente dopo la selezione
- Su mobile: toccare il pulsante flottante "Commenta" che appare sotto la selezione
- Inserire il testo del commento
- Fare clic su Pubblica Commento per creare il commento
- Un indicatore numerato appare nel margine sinistro, allineato con il testo selezionato
Visualizzazione dei Commenti Esistenti
- Indicatori: Indicatori a palloncino numerati mostrano la posizione dei commenti
- Indicatori viola: Commenti aperti
- Indicatori verdi: Commenti risolti
- Badge arancione: Numero di risposte
- Clic sull'indicatore: Apre la finestra modale del thread del commento
- Pannello Commenti: Pannello inferiore che mostra tutti i commenti
- Espansione/compressione cliccando sull'intestazione
- Filtro per stato: Tutti / Aperti / Risolti
- Clic su qualsiasi commento per navigare alla sua posizione
- Navigazione: Utilizzare "Vai alla posizione" o il pannello per saltare ai commenti
Risposta ai Commenti
- Fare clic su un indicatore di commento esistente (o selezionare dal Pannello Commenti)
- La finestra modale del thread si apre mostrando il commento originale e le eventuali risposte
- Digitare la risposta nel campo di input
- Fare clic su Pubblica risposta per aggiungere la propria risposta
Risoluzione dei Commenti
- Aprire un thread di commento
- Fare clic su Segna come risolto (pulsante sopra l'area di risposta)
- L'indicatore diventa verde per indicare la risoluzione
- I commenti risolti possono essere Riaperti dalle azioni della finestra modale
Eliminazione dei Commenti
- Aprire un thread di commento
- Fare clic sul pulsante Elimina (visibile solo all'autore del commento o all'amministratore del progetto)
- Confermare l'eliminazione
- L'indicatore viene rimosso dal documento
Documenti Office (Word, Excel, PowerPoint)
I file Office richiedono una gestione speciale perché i commenti necessitano di un'area statica per il posizionamento.
Come Funziona
- Impostazione progetto: "Consenti commenti sui file Office" deve essere abilitato
- Prima attivazione: Quando si clicca sul pulsante commenti su un file Office:
- Se PDF in cache: Passa immediatamente al visualizzatore PDF
- Se non in cache: Mostra lo stato di caricamento "Conversione documento in corso..."
- Conversione: LibreOffice converte il file Office in PDF (eseguita una volta, memorizzata permanentemente nella cache)
- Risultato: Appare il visualizzatore PDF con l'overlay dei commenti
- Badge: Il badge "Modalità commenti" viene mostrato nell'intestazione quando si visualizza il PDF convertito
Configurazione
I proprietari del progetto possono abilitare i commenti Office nelle Impostazioni Progetto:
- Navigare a Impostazioni > Impostazioni File
- Abilitare "Consenti commenti sui file Office"
- Salvare le impostazioni
Limitazioni
- I commenti vengono posizionati sulla conversione PDF, non sul file Office originale
- La formattazione complessa potrebbe renderizzarsi diversamente in PDF
- Le formule di Excel mostrano solo i valori calcolati
- Le animazioni/transizioni di PowerPoint vengono perse
File CAD/BIM (Autodesk APS)
Il sistema di commenti si integra completamente con il Visualizzatore Autodesk per i file CAD e BIM.
Modelli 3D (IFC, RVT, ecc.)
Per i modelli 3D, i commenti vengono ancorati utilizzando:
- Coordinate Mondo: Il punto 3D dove l'utente ha cliccato
- ID Elemento: L'elemento specifico del modello (se il test di hit ha successo)
- Stato Telecamera: La posizione esatta della vista quando il commento è stato creato
Comportamento:
- Gli indicatori aggiornano la posizione in tempo reale quando si ruota/ingrandisce il modello
- "Vai alla posizione" ripristina la vista esatta della telecamera al momento della creazione del commento
- Funziona con viste esplose e piani di sezione
Disegni 2D (DWG, DXF)
Per i disegni 2D, i commenti utilizzano:
- Coordinate del Modello: Posizione in unità di disegno (non pixel dello schermo)
- GUID del Foglio: Identifica su quale foglio si trova il commento
Comportamento:
- Gli indicatori rimangono attaccati ai punti del disegno durante zoom/panoramica
- Gli eventi di cambio telecamera attivano il ri-rendering degli indicatori
- Funziona a diversi livelli di zoom e posizioni di panoramica
Dettagli Tecnici
Il sistema utilizza i metodi dell'SDK del Visualizzatore Autodesk:
| Operazione | Metodo |
|---|---|
| Ottenere posizione clic (3D) | viewer.impl.hitTest() |
| Ottenere posizione clic (2D) | viewer.clientToWorld() |
| Renderizzare posizione indicatore | viewer.impl.worldToClient() |
| Navigare al commento | viewer.restoreState() |
| Tracciare cambi telecamera | Listener CAMERA_CHANGE_EVENT |
Collaborazione in Tempo Reale
I commenti vengono sincronizzati in tempo reale tra tutti gli utenti connessi.
Topic PubSub
Formato topic: document_comments:{content_item_id}
Eventi
| Evento | Descrizione |
|---|---|
comment_added |
Nuovo commento creato da un altro utente |
comment_updated |
Commento modificato, risposta aggiunta o stato cambiato |
comment_deleted |
Commento rimosso da un altro utente |
Comportamento
- Nuovi indicatori appaiono istantaneamente quando altri utenti aggiungono commenti
- Il conteggio delle risposte si aggiorna in tempo reale
- Lo stato di risoluzione si sincronizza tra tutti i visualizzatori
- Se si sta visualizzando un commento eliminato, la finestra modale si chiude automaticamente
Interfaccia Utente
Indicatori dei Commenti
Gli indicatori utilizzano un design a palloncino di chat con un puntatore:
┌───────┐
│ 1.2 │ ← Numero (pagina.indice o solo indice)
└───┬───┘
▽ ← Il puntatore indica la posizione esatta
Stile:
- Sfondo: Indaco (#6366f1) per aperti, Verde (#22c55e) per risolti
- Badge risposte: Cerchio arancione (#f97316) nell'angolo in alto a destra
- Effetto hover: Leggero ingrandimento (1.1x)
- Ombra: Ombra esterna per visibilità su qualsiasi sfondo
Finestra Modale dei Commenti
La finestra modale visualizza:
Intestazione:
- Nome e avatar dell'autore del commento
- Timestamp (relativo, es. "2 ore fa")
- Informazioni sulla posizione (es. "Pagina 3" o "Punto 3D")
Corpo:
- Testo del commento
- Risposte (con thread, cronologiche)
- Campo di input per la risposta
Azioni (vista thread):
- Segna come risolto: Pulsante sopra il form di risposta (verde, prominente)
- Pubblica risposta: Pulsante di invio risposta
- Elimina: Icona cestino (solo autore/admin)
- Riapri: Disponibile quando il commento è risolto
- Chiudi: Chiude la finestra modale
Architettura
Schema del Database
Tabella: document_comments
| Colonna | Tipo | Descrizione |
|---|---|---|
id |
UUID | Chiave primaria |
content |
Text | Testo del commento |
content_item_id |
UUID | FK verso content_items |
user_id |
UUID | FK verso users (autore) |
project_id |
UUID | FK verso projects |
parent_id |
UUID | FK verso document_comments (per le risposte) |
position_type |
String | pdf_page, image, markdown, aps_3d, aps_2d |
pdf_page_number |
Integer | Numero di pagina (solo PDF) |
pdf_relative_x |
Float | Posizione X 0.0-1.0 (o pixel per markdown) |
pdf_relative_y |
Float | Posizione Y 0.0-1.0 (o pixel per markdown) |
aps_world_coordinates |
Map | {x, y, z} per CAD |
aps_db_id |
Integer | ID elemento Autodesk |
aps_camera_state |
Map | Stato del visualizzatore per la navigazione |
aps_sheet_guid |
String | Identificatore del foglio 2D |
resolved |
Boolean | Stato di risoluzione |
resolved_at |
DateTime | Quando è stato risolto |
resolved_by_id |
UUID | FK verso users |
inserted_at |
DateTime | Timestamp di creazione |
updated_at |
DateTime | Ultima modifica |
Moduli Backend
| Modulo | Scopo |
|---|---|
Sutram.Content.DocumentComment |
Schema Ecto con validazioni |
Sutram.Content |
Funzioni CRUD per i commenti |
SutramWeb.ProjectLive.Content.CommentHandler |
Gestori eventi LiveView |
SutramWeb.ProjectLive.Components.CommentModal |
LiveComponent della finestra modale |
SutramWeb.ProjectLive.Components.CommentsPanel |
Pannello inferiore con filtri |
SutramWeb.ProjectLive.Components.PreviewModal |
Anteprima con overlay |
Frontend (JavaScript)
| File | Scopo |
|---|---|
assets/js/hooks/comment_overlay.js |
Hook overlay principale |
assets/js/viewers/pdf_viewer.js |
Visualizzatore PDF con tracciamento pagine |
assets/js/viewers/autodesk_viewer.js |
Visualizzatore CAD con getViewerInstance() |
Funzioni Chiave
Hook CommentOverlay:
calculatePdfPosition(): Converte il clic in coordinate PDFcalculateImagePosition(): Converte il clic in coordinate immaginecalculateMarkdownPosition(): Converte il clic in coordinate pixel markdowncalculateApsPosition(): Converte il clic in coordinate mondo CADcalculateScreenPosition(): Converte la posizione memorizzata in pixel dello schermorenderMarkers(): Disegna tutti gli indicatori visibilinavigateToComment(): Scorre/ingrandisce alla posizione del commento
Configurazione
Impostazioni Progetto
| Impostazione | Predefinito | Descrizione |
|---|---|---|
allow_office_comments |
false |
Abilita i commenti sui file Office |
Impostazioni Applicazione
I commenti sono abilitati per impostazione predefinita per:
- File PDF
- File immagine
- File CAD (quando APS è configurato)
I file Office richiedono l'attivazione esplicita a livello di progetto a causa del requisito di conversione in PDF.
Risoluzione dei Problemi
I Commenti Non Appaiono
Causa: Modalità commenti non attivata
Soluzione:
- Fare clic sul pulsante commenti nella barra degli strumenti dell'anteprima
- Attendere il rendering degli indicatori
- Controllare la console del browser per eventuali errori
Indicatori nella Posizione Sbagliata
Causa: Ridimensionamento o zoom cambiato dopo il rendering degli indicatori
Soluzione:
- Gli indicatori si riposizionano automaticamente al ridimensionamento/zoom
- Se ancora errati, chiudere e riaprire l'anteprima
Commenti CAD Non Salvati
Causa: Visualizzatore APS non completamente caricato
Soluzione:
- Attendere il caricamento completo del modello 3D
- Provare a cliccare su una superficie visibile
- Verificare che il visualizzatore risponda alla navigazione
Pulsante Commenti Office Mancante
Causa: Impostazione progetto non abilitata
Soluzione:
- Andare a Impostazioni Progetto > Impostazioni File
- Abilitare "Consenti commenti sui file Office"
- Salvare e aggiornare
Riferimento API
Eventi LiveView (Client verso Server)
| Evento | Payload | Descrizione |
|---|---|---|
position_selected |
Dati posizione | L'utente ha cliccato per aggiungere un commento |
marker_clicked |
{comment_id, marker_number} |
L'utente ha cliccato su un indicatore esistente |
create_comment |
{content} |
Salva nuovo commento |
create_reply |
{content, parent_id} |
Aggiunge risposta al thread |
resolve_comment |
{comment_id} |
Segna come risolto |
reopen_comment |
{comment_id} |
Riapre commento risolto |
delete_comment |
{comment_id} |
Rimuove commento |
navigate_to_comment |
{comment_id} |
Salta alla posizione |
request_markers |
{content_item_id} |
Richiede indicatori iniziali |
Eventi Push (Server verso Client)
| Evento | Payload | Descrizione |
|---|---|---|
render_markers |
{markers: [...]} |
Lista completa degli indicatori |
add_marker |
{marker: {...}} |
Singolo nuovo indicatore |
update_marker |
{marker: {...}} |
Dati indicatore aggiornati |
remove_marker |
{comment_id} |
Elimina indicatore |
navigate_to_comment |
{comment: {...}} |
Attiva navigazione |
Cronologia delle Release
| Versione | Data | Modifiche |
|---|---|---|
| v0.58.0 | 2025-12-22 | Commenti PDF iniziali con threading |
| v0.59.0 | 2025-12-23 | Commenti nel contesto Chat |
| v0.60.0 | 2025-12-24 | Supporto commenti su immagini |
| v0.61.0 | 2025-12-24 | Commenti su file Office (tramite PDF) |
| v0.61.1 | 2025-12-24 | Commenti CAD/APS (2D e 3D) |
| v0.62.0 | 2025-12-24 | Toast suggerimento onboarding |
| v0.63.0 | 2025-12-25 | Pannello Commenti (V3) - pannello inferiore con filtri e navigazione |
| v0.64.0 | 2025-12-26 | Supporto commenti Markdown |
| v0.64.1 | 2025-12-26 | Miglioramenti UI: azioni della finestra modale riorganizzate, toast suggerimento rimosso |
| v0.65.0 | 2025-12-26 | Modalità commenti nell'editor markdown con regolazione manuale della posizione |
| v0.65.1 | 2025-12-29 | Supporto selezione testo mobile per commenti markdown |
| v0.65.2 | 2025-12-29 | Miglioramenti UX: pulsante flottante posizionato sotto la selezione per evitare il menu nativo |
| v0.65.3 | 2025-12-29 | Internazionalizzazione: pulsante flottante "Commenta" tradotto in 6 lingue |
Pannello Commenti (V3)
Il Pannello Commenti è un pannello inferiore che elenca tutti i commenti nel documento, fornendo un'esperienza di navigazione unificata sia per mobile che per desktop.
Layout
Il pannello utilizza un design a pannello inferiore (unificato per mobile e desktop):
┌─────────────────────────────────────────────────┐
│ │
│ Visualizzatore (PDF/Immagine/CAD) │
│ │
│ 📍 │
│ │
├─────────────────────────────────────────────────┤
│ 💬 4 commenti ▼ │ ← Clic per espandere
├─────────────────────────────────────────────────┤
│ ◉ Tutti ○ Aperti ○ Risolti │ ← Filtri
├─────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────┐ │
│ │ 🗨️1 👤 Giovanni · 2h fa │ │
│ │ Verificare se la quota è corretta... │ │
│ └─────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────┐ │
│ │ 🗨️2 👤 Maria · 1g fa ✅ │ │
│ │ Conflitto con la struttura esistente │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
Stati
| Stato | Descrizione |
|---|---|
| Ridotto | Mostra solo l'intestazione con il conteggio dei commenti (altezza 48px) |
| Espanso | Mostra filtri e lista scorrevole (max 50vh) |
Funzionalità
- Toggle: Clicca sull'intestazione per espandere/comprimere
- Filtri: Tutti / Aperti / Risolti (pulsanti radio)
- Lista Commenti: Lista scorrevole con indicatori a palloncino corrispondenti allo stile del canvas
- Navigazione: Clicca su qualsiasi commento per saltare alla sua posizione (cambio pagina per PDF, ripristino telecamera per CAD)
- Tempo reale: Si aggiorna automaticamente tramite PubSub esistente
Stile degli Indicatori
I commenti nella lista utilizzano lo stesso stile a palloncino del canvas:
┌───────┐
│ 1 │ ← Numero (ordine di inserimento)
└───┬───┘
▽ ← Puntatore (coda del fumetto)
- Sfondo: Indaco (#6366f1) per aperti, Verde (#22c55e) per risolti
- Badge risposte: Arancione (#f97316) nell'angolo in alto a destra
- Ombra esterna: Per la visibilità
Dettagli Tecnici
Nuovo Componente: SutramWeb.ProjectLive.Components.CommentsPanel
Props:
comments- Lista di struct DocumentCommentexpanded- Boolean (stato del pannello)filter- Atom (:all, :open, :resolved)
Eventi (inviati al genitore tramite send/2):
{:comments_panel, :toggle}- Toggle espansione/compressione{:comments_panel, :filter, filter}- Cambia filtro{:comments_panel, :go_to_comment, comment_id}- Naviga al commento
Gestione dello Stato (nel Content LiveView):
comments_panel_expanded- Booleancomments_panel_filter- Atom
Modalità Commenti nell'Editor Markdown (v0.65.0)
L'editor markdown include una modalità commenti dedicata che permette agli utenti di visualizzare e riposizionare gli indicatori dei commenti durante la modifica. Questo risolve il problema degli indicatori disallineati dopo la modifica del contenuto markdown (poiché markdown utilizza coordinate pixel assolute).
Due Modalità
| Modalità | Descrizione |
|---|---|
| Modifica (predefinita) | Editor WYSIWYG Milkdown normale, nessun indicatore visibile |
| Commenti | Anteprima renderizzata con overlay commenti e pannello laterale |
Layout (Modalità Commenti)
┌─────────────────────────────────────────────────────────────────┐
│ ← Indietro [Modifica] [Commenti 📍3] Carica │ Intestazione │
├─────────────────────────────────────┬───────────────────────────┤
│ │ 💬 3 commenti │
│ Anteprima Markdown Renderizzata │ ─────────────────────────│
│ (sola lettura) │ ◉ Tutti ○ Aperti ○ Risolti│
│ │ ─────────────────────────│
│ 📍 Indicatore 1 │ [1] Giovanni · 2h fa │
│ │ Controlla questa sezione│
│ 📍 Indicatore 2 │ [Regola] [Vai a] │
│ │ ─────────────────────────│
│ │ [2] Maria · 1g fa ✅ │
│ │ Corretto │
└─────────────────────────────────────┴───────────────────────────┘
Regolazione Manuale della Posizione
Quando il contenuto markdown viene modificato, gli indicatori dei commenti potrebbero disallinearsi perché utilizzano coordinate pixel assolute. Gli utenti possono riposizionare manualmente gli indicatori:
- Entrare nella modalità Commenti nell'editor markdown
- Trovare il commento disallineato nel pannello laterale
- Fare clic sul pulsante "Regola posizione"
- Il cursore cambia a mirino, il pannello laterale mostra "Clicca sulla nuova posizione"
- Fare clic sulla posizione corretta nell'anteprima
- L'indicatore si sposta nella nuova posizione e viene salvato
Restrizione Mobile
La modalità commenti non è disponibile su dispositivi mobili (viewport < 768px). Un tooltip sul pulsante disabilitato spiega: "Usa un computer desktop per gestire i commenti".
Dettagli Tecnici
Nuovi Assign (in markdown_editor.ex):
editor_mode- Atom (:editing|:comments)comments- Lista di struct DocumentCommentcomments_panel_expanded- Booleancomments_panel_filter- Atom (:all|:open|:resolved)repositioning_comment_id- UUID o nil
Nuovi Eventi:
toggle_editor_mode- Alterna tra modalità modifica e commentistart_reposition- Entra in modalità riposizionamento per un commento specificocancel_reposition- Esce dalla modalità riposizionamentoupdate_marker_position- Salva la nuova posizione dal clic di riposizionamentogo_to_comment- Naviga/scorre alla posizione del commento
Modifiche JavaScript (comment_overlay.js):
- Aggiunto stato
repositioningCommentId - Aggiunti gestori eventi
enter_reposition_mode/exit_reposition_mode - Gestore clic modificato per rilevare la modalità riposizionamento e inviare
update_marker_position - Selettori elementi markdown aggiornati per funzionare sia nel contesto del visualizzatore che dell'editor
Versione Documento: 1.3 Ultimo Aggiornamento: 29 Dicembre 2025 Autore: Team di Sviluppo Sutram