Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
gwusermanual:interface:widget:gw_digital_document_widget [2022/01/19 16:22] giorgio.scali |
gwusermanual:interface:widget:gw_digital_document_widget [2024/05/10 15:42] (versione attuale) giorgio.scali [DDOC2] |
||
---|---|---|---|
Linea 164: | Linea 164: | ||
Avendo disponibile il //ddocWidget//, è possibile fa riferimento alle seguenti proprietà e function esposte: | Avendo disponibile il //ddocWidget//, è possibile fa riferimento alle seguenti proprietà e function esposte: | ||
* property: | * property: | ||
- | * **ddocSectionHeader**, di tipo Object. <code js>{gwid: 123, fkDdoc: 456, name: 'ddoc_section_name', label: 'ddoc_section_label', detailLayoutName: 'ddoc_section_detailLayoutName', isHeader: true, isVisible: true, isEditable: true, isDefaultSelected: false}</code> | + | * **ddocSectionHeader**, di tipo Object. <code js> |
- | * **ddocSections**, di tipo Object[]. <code js>[{gwid: 123, fkDdoc: 456, name: 'ddoc_section_name', label: 'ddoc_section_label', detailLayoutName: 'ddoc_section_detailLayoutName', isHeader: true, isVisible: true, isEditable: true, isDefaultSelected: false},{gwid: 123, fkDdoc: 456, name: 'ddoc_section_name', label: 'ddoc_section_label', detailLayoutName: 'ddoc_section_detailLayoutName', isHeader: false, isVisible: true, isEditable: true, isDefaultSelected: true}]</code> | + | { |
+ | gwid: 123, | ||
+ | fkDdoc: 456, | ||
+ | name: 'section_name', | ||
+ | label: 'section_label', | ||
+ | detailLayoutName: 'section_detailLayoutName', | ||
+ | isHeader: true, | ||
+ | isVisible: true, | ||
+ | isEditable: true, | ||
+ | isDefaultSelected: false | ||
+ | } | ||
+ | </code> | ||
+ | * **ddocSections**, di tipo Object[]. <code js> | ||
+ | [ | ||
+ | { | ||
+ | gwid: 123, | ||
+ | fkDdoc: 456, | ||
+ | name: 'section_name', | ||
+ | label: 'section_label', | ||
+ | detailLayoutName: 'section_detailLayoutName', | ||
+ | isHeader: true, | ||
+ | isVisible: true, | ||
+ | isEditable: true, | ||
+ | isDefaultSelected: false | ||
+ | }, | ||
+ | { | ||
+ | gwid: 123, | ||
+ | fkDdoc: 456, | ||
+ | name: 'section_name', | ||
+ | label: 'section_label', | ||
+ | detailLayoutName: 'section_detailLayoutName', | ||
+ | isHeader: false, | ||
+ | isVisible: true, | ||
+ | isEditable: true, | ||
+ | isDefaultSelected: true | ||
+ | } | ||
+ | ] | ||
+ | </code> | ||
* function: | * function: | ||
- | * **getDDOCSection(name)**, function che, dal parametro //name// (//String//), ritorna un Object. <code js>{gwid: 123, fkDdoc: 456, name: 'ddoc_section_name', label: 'ddoc_section_label', detailLayoutName: 'ddoc_section_detailLayoutName', isHeader: false, isVisible: true, isEditable: true, isDefaultSelected: true}</code> | + | * **getDDOCSection(name)**, function che, dal parametro //name// (//String//), ritorna un Object. <code js> |
+ | { | ||
+ | gwid: 123, | ||
+ | fkDdoc: 456, | ||
+ | name: 'ddoc_section_name', | ||
+ | label: 'ddoc_section_label', | ||
+ | detailLayoutName: 'ddoc_section_detailLayoutName', | ||
+ | isHeader: false, | ||
+ | isVisible: true, | ||
+ | isEditable: true, | ||
+ | isDefaultSelected: true | ||
+ | } | ||
+ | </code> | ||
* **isDDOCSectionVisible(name)**, boolean | * **isDDOCSectionVisible(name)**, boolean | ||
* **isDDOCSectionEditable(name)**, boolean | * **isDDOCSectionEditable(name)**, boolean | ||
Linea 173: | Linea 222: | ||
* **isDDOCSectionHeader(name)**, boolean | * **isDDOCSectionHeader(name)**, boolean | ||
+ | |||
+ | ==== Esempi ==== | ||
+ | |||
+ | === Esempio 1 === | ||
Si potrebbe volere, per esempio, in un'azione di dettaglio pronto, eseguire delle operazioni solo se una certa //ddocSection// risultasse //editabile// in quel momento (in base alla valutazione dinamica del grrovy). | Si potrebbe volere, per esempio, in un'azione di dettaglio pronto, eseguire delle operazioni solo se una certa //ddocSection// risultasse //editabile// in quel momento (in base alla valutazione dinamica del grrovy). | ||
<code js> | <code js> | ||
- | var name = 'ddoc_section_name'; //known | + | var ddocWidget = detailContainer.getGwWidget({name: 'ddoc_widget'}); //detailContainer provided |
+ | var name = 'section_name'; //known | ||
var isEditable = ddocWidget.isDDOCSectionEditable(name); | var isEditable = ddocWidget.isDDOCSectionEditable(name); | ||
if(isEditable){ | if(isEditable){ | ||
Linea 181: | Linea 235: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | === Esempio 2 === | ||
+ | <code js> | ||
+ | var ddocWidget = detailContainer.getGwWidget({name: 'ddoc_widget'}); //detailContainer provided | ||
+ | var name = 'section_name'; //known | ||
+ | var isVisible= ddocWidget.isDDOCSectionVisible(name); | ||
+ | if(isVisible){ | ||
+ | //do stuff | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== DDOC2 ===== | ||
+ | |||
+ | Dalla versione **4.6.9** (**issue #1070**), è stato rilasciato anche il widget **gwDigitalDocument2 (DDOC2)**, simile al gwDigitalDocument, con la stessa struttura dei metadati, e stessi parametri xml widget, ma diversa forma grafica e comportamento. | ||
+ | |||
+ | Al posto delle sezioni individuate dal tab, c'è sempre il **documento pdf in primo piano**. | ||
+ | |||
+ | La report jasper, può utilizzare il parametro booleano **IS_GW_RECORD_EMPTY** (che viene passato a true nel caso il record geoweb non esista ancora) | ||
+ | al solo fine di garantire in maniera opportuna la visualizzazione di un documento digitale vuoto, anche in assenza di record. | ||
+ | |||
+ | Scompare l'apposito button di apertura report nella sezione header. | ||
+ | |||
+ | La sezione **Header**, anche se non contiene più il button della report e le info di intestazione, **va comunque dichiarata, e nel caso nascosta imponendo un altezza di 0px al relativo layout**. In caso contrario, non viene lanciato l'evento di dettaglio pronto. | ||
+ | |||
+ | Le intestazioni delle **Section** (i vecchi selettori dei tab, che prima comandavano le parti di dettaglio [i detailLayout] impostate per la sezione), ora sono button. La loro stilizzazione attuale è rimasta la medesima, ma senza l'esplicitazione del concetto di ultimo selezionato | ||
+ | |||
+ | Al click delle intestazioni delle **Section**, solo in caso di permesso di edit, ora vengono aperti dei **floatingPane modali**, contenenti le medesime parti di dettaglio. | ||
+ | |||
+ | In caso di solo permesso di visualizzazione, al click sulla intestazione di Sezione avviene lo //scroll sul documento | ||
+ | pdf// (tramite configurazione dei bookmarks (hyperlink + bookmark level) in IReport 5 / Jaspersosft Studio 6) | ||
+ | A tale proposito si prega di visionare il video [[https://www.youtube.com/watch?v=XkpJq-P2Gko]] | ||
+ | |||
+ | I permessi edit/visualize derivano, come prima, dal risultato dinamico computato dall'esecuzione del groovy configurato. | ||