Apertura dettaglio classe Multiplo (gwClassDetail Multiple)
E' possibile modificare una o più proprietà su più record allo stesso tempo, mediante un particolare dettaglio di classe. Questo particolare gwClassDetail, in corrispondenza di ogni widget, permette di:
- segnalare se i record oggetto di editing multiplo hanno diversi valori. Il colore di riferimento per lo sfondo/alone del widget è il blu pallido. In caso di widget con una componente derivata da dijit/form/TextBox viene scritto anche il placeHolder '<valori multipli>'
- segnalare se i record oggetto di editing multiplo hanno stesso valore, e mostrarlo. Non viene usato alcun colore per sfondo/alone del widget.
- segnalare se i record oggetto di editing multiplo hanno tutti valore nullo. Non viene usato alcun colore per sfondo/alone del widget.
- annullare i valori per tutti i record oggetto di editing multiplo. In seguito all'annullamento viene usato un colore giallo pallido per lo sfondo/alone del widget solo nel caso in cui all'apertura c'erano valori multipli od un singolo valore non nullo
- segnalare l'eventuale avventa modifica multipla (non ancora persistita con il click su 'Salva'). In seguito alla modifica viene usato un colore giallo pallido per lo sfondo/alone del widget
- in caso di modifica senza click sul tasto 'Salva', ripristinare i valori come all'apertura del gwClassDetail
Al click su 'Salva' verranno persistite le modifiche su tutti i record interessati. Per ogni record verrà eseguito l'eventuale trigger applicativo esistente.
Parametri
- gwClassName String, required. E' il nome della gwClass
- detailLayoutName String, required. E' il nome del layout di Classe da utilizzare per aprire il gwClassDetail
- queryParameter Object, optional. {filters:[]} Contiene la lista di filtri da applicare per determinare i record interessati dalla modifica multipla. Se assente non applica filtri e quindi interviene su tutti i record (al netto di permessi di ambito/dacl)
- options Object, optional:
- openingDetailMode String, optional, default 'floatingPane'
Note
- In genere questa function viene utilizzata dentro una gwAction di tipo 'Selezionati in Lista', e agisce solo sui record selezionati dall'utente.
- Il detailLayoutName dovrebbe essere uno specifico e pensato per l'azione, in maniera tale che ospiti solo i campi che si vuole effettivamente permettere all'utente di modificare.
- Ogni tipologia di widget, in fase di creazione da parte degli sviluppatori, viene dichiarato essere adatto o meno all'editing multiplo. Nel caso il detailLayoutName specificato contenga gruppi attributi contenenti widget non adatti, un'eccezione viene generata.
- In ogni caso, se un determinato widget è in readonly o disabled, esso non sarà modificabile tramite la gwClassDetail multiple. Attualmente, anche eventuali azioni di dettaglio pronto, o eventi attributi che andassero a modificare redonly/disabled dell'attributo successivamente all'apertura del gwClassDetail, non riattiverebbero il pieno supporto all'editing multiplo
- La funzionalità, data la sua natura massiva ed irreversibile, andrebbe usata con estrema parsimonia e solo nei casi veramente necessari.
Esempio
Esempio di utilizzo da dentro una gwClass di tipo 'Selezionati in Lista':
//queryParameter is an incoming parameter from js action in gwClassList if(grid!=null && grid.query!=null) queryParameter.staticFilters = clone(grid.query.query.staticFilters); var gwClassName = 'gwClassName'; var detailLayoutName = 'detailLayoutName'; var options = { openingDetailMode: 'floatingPane' }; var gwClassDetailMultiple = openGwClassDetailMultiple(gwClassName, detailLayoutName, queryParameter, options);