LeafItem
Il leafitem (elemento foglia) rappresenta la singola voce di un menù di secondo livello e può richiamare nella sezione principale di Geoweb® la visualizzazione di diverse tipologie di Schede, come ad esempio:
- lista record di una classe di Geoweb®
- gestione processo (work-flow)
- cruscotto di reportistica / report html
- calendario
- mappa cartografica
Il leafitem può essere strutturato, e rappresentare in maniera complessa l'elenco dei contenuti da cui far partire la visualizzazione delle schede. Ad esempio:
- albero di navigazione dei layout, per aprire un layout
- albero di navigazione delle gerarchie di classi, per aprire un determinato sottoinsieme di lista di record
Il leafitem è organizzato con i propri tag nell'XML di Progetto.
Di seguito una lista degli attributi, fissi o opzionali, definibili nel leafItem:
- name: String, default null, obbligatorio. Deve essere univoco fra tutti i name dei leafItem all'interno dello stesso menu di secondo livello (AccordionPaneItem), può essere usato, insieme ai name di menu di primo e di secondo livello, per aprire il progetto settato su una specifica voce di menu.
- label: (String, default ' ' opzionale). Etichetta che compare sul menu di terzo livello
- image, (String, default null, opzionale). Rappresenta il path, comprensivo di estensione, che individua l'immagine che verrà applicata al menu dei terzo livello. (a partire dalla cartella 'WEB/images/' dentro i contenuti statici). L'immagine sara sempre ridimensionata a 32×32 px, e se assente un analogo spazio vuoto verrà lasciato per preservare l'allineamento delle label di più leafItem in sequenza. Ex: path/to/image.png
- type: String, default null, obbligatorio. Identifica la tipologia di scheda che verrà aperta al click
- disabled: Boolean, default false, opzionale. Quando posto a true, il leafItem viene mostrato disabilitato. Viene automaticamente posto a true, dove applicabile, per i leafItem senza permessi per l'utente corrente in quell'ambito (type: gwClassList, gwClassDetail, gwAction, etc..). Può essere esplicitamente settato a true da un utente configuratore per creare prototipi di strutture di menu con funzioni non ancora implementate.
- hidden: Boolean, default false, opzionale. Quando posto a true, il leafItem non viene mostrato. Viene automaticamente posto a true, dove applicabile, per i leafItem senza permessi per l'utente corrente in quell'ambito quando hideWhenWithoutPermissions vale true (vedi sotto) (type: gwClassList, gwClassDetail, gwAction, etc..).
- hideWhenWithoutPermissions: Boolean, default false, opzionale. Quando posto a true, il leaftItem viene automaticamente nascosto in assenza di permessi, dove applicabile (type: gwClassList, gwClassDetail, gwAction, etc..). Ciò è utile per creare interfacce di progetto che cambiano dinamicamente in base al profilo utente.
Parametri del LeafItem
In funzione del tipo (type) di LeafItem possono essere definiti dei parametri specifici, che stabiliscono le proprietà del LeafItem stesso. Ciascuno di tali parametri ha degli attributi fissi:
- name: nome del parametro, da impostare come fornito nella documentazione specifica di ciascun tipo LeafItem
- value: valore assunto dal parametro, anch'esso singolarmente descritto nella documentazione specifica
- hideToClient: definisce se il parametro possa essere 'trasferito' nel client, ovvero essere ispezionabile da un utente tramite browser. Impostato a false per default, se messo a true rappresenta una protezione del valore definito nel parametro.
Elenco dei leaf-item
Nome | Descrizione breve |
---|---|
leafItemClassificationMenu | visualizzazione dei record di una classe di Geoweb «classificata» organizzati all’interno dell’albero di classificazione |
leafItemHierarchicalFilterMenu | visualizzazione albero di navigazione per una gerarchia di classi |
leafItemLayoutChange | visualizzazione albero di navigazione planimetrie |
leafItemListFilters | visualizzazione dei record di una classe di Geoweb in una lista «standard» e in liste parzializzate secondo i valori assunti da uno specifico attributo |
leafItemRelationsSetting | |
leafItemSeparator | aggiunge un separatore orizzontale fra due leafItem |
leafItemGHFMC | |
leafItemGHFMCMenu | |
leafItemMCMenu |
Configurazione leafItem
leafItemClassificationMenu
Utilizzato per la visualizzazione dei record di una classe di Geoweb (di tipo «classificato») organizzati in un albero di classificazione, presenta il seguente XML di configurazione (che dovrà essere incluso all’interno di un tag di tipo «accordion».
<leafItem name="leafitem_name" label="leafitem_label" image="leafitem_image.png" type="leafItemClassificationMenu"> <parameter name="className" value="class_name" hideToClient="false"></parameter> <parameter name="staticFilters" value="{condition:‘and',columnName:‘attr_name',operator:‘in',filterType:‘string',value:[‘val1,valn']}" hideToClient="false"></parameter> <parameter name="VISUALIZATION_GROUPS" value="groupV1,…,groupVn" hideToClient="false"></parameter> <parameter name="MANAGER_GROUPS" value="groupM1,…,groupMn" hideToClient="false"></parameter> </leafItem>
leafItemHierarchicalFilterMenu
Permette di visualizzare un menu gerarchico che parzializza i record di una classe geoweb secondo criteri di filtro impostabili. La gerarchia non ha limiti nel numero di annidamenti, ed ogni livello può essere caratterizzato graficamente da una icona La gerarchia è resa attraverso un widget albero dojo, ed i filtri vengono applicati in cascata man mano che si naviga l'albero partendo dal tronco ed andando verso le foglie. I criteri di filtro, ordinati in ordine descrescente, si impostano tramite il parameter con name=“filteringCriteria”, e corrispondono al column_name degli attributi di geoweb costruiti sui campi della tabella che si vogliono usare come criteri di parzializzazione. In alto è presente una toolbar con un tasto refresh, che refresha l'albero ricordandosi i nodi gia aperti. L'albero si refresha comunque in automatico ad ogni operazione di inserimento modifica cancellazione eseguito dalle liste della classe 'gwClassName' Il refresh non è automatico, invece, in seguito a modifiche su record delle classi effettuate tramite azioni/trigger groovy. (a meno di scrivere azioni js, che richiamano groovy, ad hoc)
PARAMETRI
Parametro | Descrizione |
---|---|
gwClassName | String, richiesto, nome della gwClass classificata. |
filteringCriteria | String, richiesto, Imposta i criteri di filtro per ogni livello dell'albero. E' necessario almeno un criterio di filtro (piu' criteri di filtro vanno separati da virgola, e verranno applicati in ordine descrescente da sinistra verso destra).In filteringCriteria si puoi usare 'id_entity_classification' come criterio di filtro. Verra' quindi applicata l'intera gerarchia impostata dalla classificazione. |
orderingCriteria | String, opzionale, array parallelo a filteringCriteria (può essere anche più corto). Valori ammessi (separati da ','): quelli di filteringCriteria |
orderingCriteriaModes | String, opzionale, array parallelo a orderingCriteria (può essere anche più corto), Valori ammessi (separati da ','): ['asc', 'desc'] |
iconImagePaths | String, opzionale, array parallelo a filteringCriteria dove vengono specificate le relative icone per ogni nodo generato dal criterio di filtro. |
showAllAsRoot | Boolean, opzionale, default false, mostra anche un nodo root, riportante la label della classe, che se cliccato mostra la gwClassList della classe senza filtri |
rootLabel | String, opzionale, è la label che viene mostrata in caso di showAllAsRoot a true. In caso di showAllAsRoot a true, con rootLabel assente o stringa vuota viene usata la label della gwClass. |
rootIconImagePath | opzionale, è l'icona realtiva al nodo root. In caso di showAllAsRoot a true, con rootIconImagePath assente viene usata un'immagine di default cartellina. |
autoClickFirstNodeWhenIsFirstMenu | boolean, opzionale, default false. Se a true fa si che, in caso l'albero sia come primo elemento di menu (coordinate 0 0 0) in automatico all'avvio del progetto venga aperta la risorsa relativa al primo nodo (esattamente come onClick utente su elemento root/primo elemento) (dalla versione 4.6.17) |
Vincoli
- filteringCriteria deve avere almeno un criterio di filtro. Può contenere anche 'id_entity_classification' in caso di classe classificata
- iconImagePaths array parallelo a filteringCriteria
- Nel DB i valori dei campi degli attributi usati come criterio di parzializzazione NON devono essere nulli, pena la non visualizzazione sull'albero gerarchico
- 'id_entity_classification' NON PUO essere il PRIMO criterio di filteringCriteria
- 'id_entity_classification' PUO non essere l'ULTIMO criterio di filteringCriteria. In tal caso ci saranno ulteriori livelli dell'albero parzializzati per gli attributi impostati
Esempio
<leafItem name="menu_name" label="Menu" image="menu.png" type="leafItemHierarchicalFilterMenu"> <parameter name="gwClassName" value="asm_asset" hideToClient="false"></parameter> <parameter name="filteringCriteria" value="year,brand,model,id_entity_classification,barcode" hideToClient="false"></parameter> <parameter name="orderingCriteria " value="year,brand,model" hideToClient="false"></parameter> <parameter name="orderingCriteriaModes " value="desc,asc,asc" hideToClient="false"></parameter> <parameter name="iconImagePaths" value="image_1.png,image_2.png,image_3.png" hideToClient="false"></parameter> <parameter name="showAllAsRoot" value="true" hideToClient="false"></parameter> <parameter name="rootLabel" value="Label elemento root" hideToClient="false"></parameter> <parameter name="rootIconImagePath" value="image_1" hideToClient="false"></parameter> <parameter name="autoClickFirstNodeWhenIsFirstMenu" value="false" hideToClient="false"></parameter> </leafItem>
leafItemLayoutChange
leafItemListFilters
Utilizzato per la visualizzazione dei record di una classe di Geoweb in una lista «standard» o in liste parzializzate secondo i valori assunti da uno specifico attributo, presenta il seguente XML di configurazione (che dovrà essere incluso all’interno di un tag di tipo «accordion».
Elenco attributi:
- leafitem name = nome del leaf item
- label = etichetta del leaf item visualizzata nel menù di II° livello
- image = nome dell’immagine visualizzata nel menù di II° livello (../WEB/images)
Elenco parametri:
- className: String, required. nome della classe di Geoweb
- attributeToFilter: String, required. nome del campo della tabella relativo all’attributo utilizzato per la parzializzazione
- forcedToCheckDynamicPermissionActionsNamesList: String, optional. Lista, comma separated (',') dei nomi delle azioni di tipo 'Selezionati in Lista'/'Selezionati in Lista (Posto nella Toolbar)' su cui forzare il check delle DACL (opportunamente configurate)
Esempi:
<leafItem name="lf_risorse_umane" label="Risorse Umane" image="img_risorse_umane.png" type="leafItemListFilters"> <parameter name="className" value="hr_risorse_umane" hideToClient="false"></parameter> <parameter name="attributeToFilter" value="tipo_rapporto" hideToClient="false"></parameter> </leafItem>
<leafItem name="leafitem name" label="leafitem label" image="leafitem_image.png" type="leafItemListFilters"> <parameter name="className" value="class_name" hideToClient="false"></parameter> <parameter name="attributeToFilter" value="field_name_attribute" hideToClient="false"></parameter> </leafItem>
<leafItem name="leafitem name" label="leafitem label" image="leafitem_image.png" type="leafItemListFilters"> <parameter name="className" value="class_name" hideToClient="false"></parameter> <parameter name="attributeToFilter" value="field_name_attribute" hideToClient="false"></parameter> <parameter name="forcedToCheckDynamicPermissionActionsNamesList" value="gwActionName1,gwActionName2" hideToClient="false"></parameter> </leafItem>
leafItemRelationsSetting
leafItemSeparator
Parametri:
Vincoli: (esempio)
<leafItem type="leafItemSeparator"></leafItem>
leafItemGHFMC
leafItemGHFMCMenu
Esempio
<leafItem name="generic" label="generic" image="GWD_Room.png" type="leafItemGHFMCMenu"> <parameter name="gwClassName" value="cde_02_team_class" hideToClient="false"></parameter> <parameter name="autoExpand" value="false" hideToClient="false"></parameter> <parameter name="filteringCriteria" value="uk_02_team,cod_03_system" hideToClient="false"></parameter> <parameter name="staticFilters" value="[{condition:'AND', columnName: 'fk_01_project', operator:'=', filterType:'STRING', value: [#{var_cod_01_project}]}]" hideToClient="false"></parameter> <parameter name="iconImagePaths" value="cde35_team.png,cde35_system.png" hideToClient="false"></parameter> <parameter name="showAllAsRoot" value="true" hideToClient="false"></parameter> <parameter name="rootLabel" value="Generic" hideToClient="false"></parameter> <parameter name="rootIconImagePath" value="cde35_team.png" hideToClient="false"></parameter> <parameter name="relationDescriptionList" value="TEAMCLASS_SYSTEM" hideToClient="false"></parameter> <parameter name="classNameRelationList" value="cde_02_team_class,cde_03_system" hideToClient="false"></parameter> <parameter name="allFilteringCriteriaArrayList" value="[['cod_03_system']]" hideToClient="false"></parameter> <parameter name="alliconCriteriaArrayList" value="[['cde35_system.png']]" hideToClient="false"></parameter> <parameter name="allShowNodeLabelArrayList" value="[['false']]" hideToClient="false"></parameter> <parameter name="autoClickFirstNodeWhenIsFirstMenu" value="false" hideToClient="false"></parameter> </leafItem>
leafItemGwTreeCollectionMenu
Esempio
<leafItem name="cde_deliverable_collaboration" label="generic" image="GWD_Room.png" type="leafItemGwTreeCollectionMenu"> <parameter name="classReference" value="cde_collection" hideToClient="false"></parameter> <parameter name="gwContentClassName" value="cde_deliverable_collaboration" hideToClient="false"></parameter> <parameter name="gwUploadClassName" value="cde_deliverable_upload" hideToClient="false"></parameter> <parameter name="autoExpand" value="false" hideToClient="false"></parameter> <parameter name="filteringCriteria" value="" hideToClient="false"></parameter> <parameter name="iconImagePaths" value="cde35_folder_yellow.png" hideToClient="false"></parameter> <parameter name="showAllAsRoot" value="true" hideToClient="false"></parameter> <parameter name="rootLabel" value="Generic" hideToClient="false"></parameter> <parameter name="rootIconImagePath" value="cde35_folder_yellow.png" hideToClient="false"></parameter> <parameter name="relationDescriptionList" value="father-son,LinkedCollection" hideToClient="false"></parameter> <parameter name="classNameRelationList" value="cde_collection_root,cde_collection" hideToClient="false"></parameter> <parameter name="allFilteringCriteriaArrayList" value="[['cod_collection'],['cod_collection_parent','cod_collection'],['cod_collection']]" hideToClient="false"></parameter> <parameter name="alliconCriteriaArrayList" value="[['cde35_folder_yellow.png'],['cde35_folder_yellow.png','cde35_folder_yellow.png'],['cde35_folder_yellow.png']]" hideToClient="false"></parameter> <parameter name="allShowNodeLabelArrayList" value="[['false'],['false','false'],['false']]" hideToClient="false"></parameter> <parameter name="staticFilters" value="[{condition:'AND', columnName: 'cod_01_project', operator:'=', filterType:'STRING', value: [#{var_cod_01_project}]}]" hideToClient="false"></parameter> <parameter name="staticFiltersForUploadButton" value="[{condition:'AND', columnName:'uk_02_team', operator:'in', filterType:'CUSTOM', customFilter:'uk_02_team in (select uk_02_team from cde_user_map_role where cde_user_map_role.cde_group='TEAM' and cod_role_type not in ('TEAMSUP') and username=#{gw_activeUser})'}]" hideToClient="false"></parameter> <parameter name="autoClickFirstNodeWhenIsFirstMenu" value="false" hideToClient="false"></parameter> </leafItem>