Sono interessato a sapere quale sarebbe l'opzione migliore da una prospettiva UX. Ho una tabella in cui devo decidere se devo modificare ogni riga con la modifica in linea in cui è possibile fare clic su ciascun elemento della riga e modificare separatamente o tutto in una volta con un popup modale.
In linea, ed ecco perché. Quando si separa l'utente da ciò che stanno facendo in un pop-up, perdono le connessioni degli oggetti, i loro dettagli e il posizionamento. Ci vogliono alcuni minuti per ri-orientarsi.
Quando un utente viene separato dal prodotto, impiegano un momento per riconnettere tutte quelle informazioni nella propria testa e quindi avviarsi.
Con la modifica in linea è molto semplice.
Adam, questa è un'ottima domanda. Tuttavia, non sei limitato a solo 2 opzioni qui: finestra in linea e popup. La terza opzione è avere una pagina per modificare/creare un record e anche una combinazione di inline + pagina/popup.
Mentre inline è preferito, aggiungerei che dipende davvero dal tipo di applicazione e attività dell'utente.
Nella mia esperienza, le modifiche collettive sono molto importanti per le applicazioni aziendali ed è qui che aiuta l'utente a selezionare più elementi e quindi eseguire un'azione collettiva. Inline in questo caso diventa molto limitante perché non rende facili le modifiche ripetibili.
Quindi alcune domande da considerare sarebbero: quanto è grande il tavolo? C'è impaginazione? punti di vista diversi? Quali azioni l'utente dovrebbe probabilmente eseguire più frequentemente sui dati della tabella? Tali tabelle vengono utilizzate per presentare dati in altre aree del prodotto?
Mi piace molto la risposta di Jon.
C'è un altro aspetto da considerare: l'editing multi-record. Chiaramente, se si desidera consentire all'utente di modificare più record contemporaneamente, il metodo inline non funziona. Prendi in considerazione iTunes o qualche altro (migliore) editor di tag ID3 di musica. A volte è necessario correggere il nome di una canzone - l'editing in linea è perfetto per questo (anche se hai la sfida di chiarire le ambiguità tra un clic per selezionare il record, un clic per riprodurre la traccia e un clic per modificare il campo specifico) . A volte, vuoi selezionare tutte le tracce in un album e cambiare il genere. Per questo è bello selezionare più righe e quindi invocare una finestra di dialogo dell'editor (CMD + I lo fa in iTunes) in cui è possibile compilare uno o più campi e solo quei campi verranno aggiornati per l'intero record. (L'implementazione di iTunes, sebbene funzionale, non è immediatamente intuitiva).
Dal punto di vista dello sviluppatore, se hai un periodo di tempo limitato e puoi implementare un solo metodo di input, devi considerare se stai per avviare la modifica multi-record abilitata o meno. Se lo desideri, scegli la finestra di dialogo: prendi un po 'di usabilità e prestazioni, ma puoi risparmiare un sacco di tempo nella codifica.
Odio dirlo, ma se ci atteniamo a questi due modi di gestire l'input, la soluzione migliore è implementarli entrambi e trovare un modo intuitivo (meglio di iTunes in ogni caso) per consentire all'utente di entrare modalità di modifica in linea (anche F2 di Microsoft è ai box, anche se almeno sono abbastanza coerenti al riguardo) e l'utente può entrare in modalità di registrazione multipla.
Un'ultima cosa da considerare: affinché la modifica in linea funzioni, è necessario avere visibilità in tutti i campi del record nella visualizzazione tabulare. Se stai permettendo ai tuoi utenti di nascondere le colonne o stai solo scegliendo di mostrare un sottoinsieme dei campi modificabili, non hai altra scelta che implementare una sorta di "vista dettagliata" modificabile.
Se hai a che fare con un'app aziendale con dati transazionali che molte persone possono modificare contemporaneamente, sceglierei modale e ho un pulsante di invio anche se in linea sembra di più naturale per chi lavora su app per singolo utente come Excel.
Il fatto che sposta il contesto fuori dalla tabella è un modo in cui l'utente può iniziare a pensare in modalità di modifica e tutti i campi contrassegnati come modificabili sono modificabile anziché indovinare se una cella di tabella è modificabile o meno.
In secondo luogo, rendendolo modale e disponendo di un pulsante submit, puoi effettuare un controllo davvero importante: il record è stato modificato da qualcun altro mentre stavi apportando modifiche? Anche se è fastidioso quando succede, è molto meglio che non conoscere e presumere che i tuoi dati siano passati. Anche se è anche vero che un "brindisi" può essere mostrato all'utente notificando loro la modifica dopo il fatto che la seccatura potrebbe essere maggiore.
Intendiamoci questo contesto è solo per l'editing. Le ricerche d'altra parte dovrebbero essere in linea a meno che non sia una query complessa davvero strana con molti campi.
Sono propenso a dire, perché non entrambi?
Posso pensare a due scenari in cui ciascuno degli approcci ha un senso.
Supponendo che sia necessario aggiornare un piccolo numero di celle in una griglia in cui il numero totale di colonne è piuttosto inferiore. Potresti semplicemente lavorare come Excel e continuare ad aggiornare. In questo approccio, è necessario considerare il problema evidenziato da Archimedes Trajano . Gli aggiornamenti simultanei possono essere un problema per tutti i soggetti coinvolti.
Creazione di un nuovo record o modifica di molti campi di un record quando le colonne totali sono grandi in numeri. Quindi ha senso aprire un popup modale e consentire all'utente di modificare/inserire rapidamente i valori. Ciò sarà utile perché l'utente saprà dove si trova esattamente ogni campo e potrà aggiornarli rapidamente. Il problema dell'integrità dei dati è meno evidente.
In entrambi gli approcci, è possibile ottenere più modifiche con modalità poco innovative.