Dashboard Set Configurabili
Con il nome Dashboard Set Configurabili si indica l'insieme del nuovo sistema di configurabilità dei menu con cui vengono presentate le dashboard per ogni funzione utente, introdotto dalla versione 4.7.3, che comprende:
- sistema di classi di gestione
- nuove funzioni dedicate al SM e all'utente GW ADMIN
- nuovo tipo di menu di terzo livello
Contesto
Precedentemente a questo viluppo, la struttura di menu distribuita su tre livelli, era configurata fissa ed immutabile nell’xml di gwProject.
Questa operazione era effettuata esclusivamente da utenti configuratori nella fase di implementazione del progetto (App). Le informazioni relative sistema di menu sui tre livelli erano quindi salvate esclusivamente sullo schema dei metadati, la cui gestione è attualmente quasi esclusivamente relegata al webadmin.
In generale era quindi molto complicato far modificare informazioni presenti nello schema dei metadati da UI che fossero fruibili dall’utente finale nel webclient.
Era quindi estremamente complicato realizzare, con pura configurazione, meccanismi che permettessero all’utente finale, il Solution Manager in particolare, di modificare puntualmente le configurazioni dei metadati.
Andando più nello specifico, la problematica si verificava nelle varie funzioni che presentano dashboard in apertura, veniva infatti aperta subito solo la prima dashboard configurata per il prodotto, che era quindi fissa per tutti. Le altre dashboard erano comunque disponibili sotto, come ulteriori leafItem, altrettanto fisse.
L’unico margine di dinamicità che preesistente, era legato ai permessi legati alle risorse collegate ai leafItem che, in caso di mancanza degli stessi, faceva sì che i leafItem senza permessi potessero essere nascosti/disabilitati. Di fatto però questo meccanismo è quasi del tutto inutilizzato nelle recenti implementazioni delle linee di prodotto, in quanto si tende a fare funzioni dedicate per ruoli dedicati, molto specializzate, e non più un unico progetto flessibile che varia in base ai permessi dell’utente corrente.
Alla luce di tutto ciò a richiesta generatasi è stata quella di, sempre rimanendo nell’ambito e nei confini di prodotto, lasciare all’utente dei margini di personalizzazione. La mancanza di tale funzionalità aveva infatti dei risvolti importanti sul lato commerciale.
Nasceva quindi la necessità di colmare una lacuna difficilmente giustificabile nei confronti del cliente. Andava in sintesi creato un nuovo meccanismo che superasse le rigidità imposte dal sistema di menu di terzo livello, che essendo persistito sui metadati, non era facilmente configurabile per soddisfare i nuovi requisiti di personalizzazione delle dashboard
Nomenclatura
- Dashboard: in questo contesto sarà spesso usato non tanto per descrivere la scheda dashboard, ma per far riferimento all’entità che modella la singola voce di menu dalla quale effettivamente si apre la relativa scheda dashboard.
- Dashboard set: raggruppamento di Dashboard, nell’accezione di cui sopra
- gwDashboardSet: nuovo leafItem di terzo livello, parte del rilascio, volto a dare rappresentazione grafica ad un Dashboard set, dentro una data Funzione
- Utente Solution Manager (SM): figura a cui è abilitata la possibilità di eseguire personalizzazioni sul sistema di dashboard per Funzione che, fra l’altro, sceglie la dashboard principale per funzione, determina l’ordine delle dashboard secondarie, nasconde alcune dashboard rispetto alla lista del prodotto, cambia i titoli delle dashboard.
- Utente GW ADMIN: figura a cui è demandata la completa gestione del sistema di dashboard per Funzione. Fa tutto quello che può fare il SM, ed molto altro.
- Funzione di destinazione: è una Funzione, sulla quale hanno i permessi tutti i soggetti (Utenti finali) abilitati a fruire di un determinato set di dashboard tramite l’apposita menu di terzo livello di tipo gwDashboardSet
- Funzione dedicata al SM: è una Funzione, creata appositamente per il SM per la personalizzazione dei Dashboard Set per Funzione
- Funzione dedicata al GW_ADMIN: è una Funzione, del tutto simile a quella dedicata al SM, ma con più funzionalità
Requisiti
Questo rilascio, durante lo sviluppo, ha tenuto conto di questi requisiti:
- le personalizzazioni sulle dashboard devono essere esposte al Solution Manager (SM), in una funzione dedicata
- la scelta del SM deve essere fatta fra una lista di dashboard (di prodotto) predeterminate per ogni funzione dall’utente GW ADMIN (in altra funzione dedicata)
- il SM configura quale dashboard sia la predefinita, cioè la prima ad essere visualizzata, in base alla funzione.
- il SM può configurare l’ordine di comparsa nel menu delle altre dashboard
- il SM può nascondere delle dashboard per certe funzioni (gwaFunction)
- il SM può modificare la label delle dashboard, che comparirà sia come label del menu di terzo livello, sia come titolo del tab ospitante la dashboard.
- nella funzione di destinazione:
- la forma grafica per il 3rd level menu gwDashboardSet (complesso della dashboard principale e delle secondarie) deve essere resa tramite un menu di terzo livello. Questo allo scopo di integrarsi con altri menu di terzo livello dentro lo stesso menu di secondo livello.
- la dashboard principale va tematizzata come un classico leafItem
- le dashboard secondarie vanno stilizzate differentemente (ma senza calcare con la grafica alcun concetto gerarchico, essendo entità comunque omogenee)
- le altre dashboard non predefinite, nella funzione di competenza, devono comunque essere fruibili a richiesta, nelle solite modalità (click che apre scheda)
- va prevista la possibilità, tramite UI, di collassare/espandere in blocco tutte le voci di menu delle dashboard secondarie
Caratteristiche Componente
Implementazione: nuova funzione per SOLUTION MANAGER
E’ stata predisposta una nuova funzione (gwProjectName: dashboard_management), che abilita al Solution Manager la personalizzazione delle varie dashboard, secondo le logiche sopra esposte. In particolare viene presentata una lista dei dashboard set, uno per ogni Funzione.
All’apertura del relativo dettaglio di classe, viene presentata la lista (linkListNam) delle relative dashboard. Il SM può agire in editing direttamente sulla lista.
Alcuni widget sono posti in editing (reso possibile con issue #1190 e issue #1432) direttamente in lista (linkListNam). In particolare nella colonna Principale, uno switch widget permette di impostare la dashboard principale. Analogamente, nella colonna Nascosta, un altro switch widget permette di nascondere la dashboard. Esistono poi due widget azione, sposta su e sposta giù, che permettono di variare l’ordine delle dashboard. Ad ogni interazione utente che porta modifiche viene fatto girare il trigger applicativo della classe di associazione della linkListNam. Questo si preoccupa di performare i cambiamento, facendo alcuni controlli di integrità:
- Ci può essere una ed una sola dashboard principale alla volta
- La principale prende sempre ordine 1, ed alle secondarie viene assegnato un ordine mantenendo l’ordine relativo precedente
- La report principale non può essere nascosta
- La prima report non pio essere spostata ne su ne giù. La seconda non può diventare principale tramite la freccia. L’ultima non può essere spostata giù. Questi vincoli continuano a valere specularmente anche in caso di lista ordinata al contrario
Al click sulla riga viene aperto il dettaglio della dashboard, dove l’utente SM può personalizzare anche la label della dashboard, la quale sarà usata sia nel menu di terzo livello, che come titolo della relativa scheda aperta.
Implementazione: nuova funzione per GW ADMIN
E’ stata predisposta parallelamente anche una nuova funzione (gwProjectName: dashboard_management_admin). Questa abilita l’utente GW_ADMIN una gestione più completa del dashboard set. Anche qui viene presentata una lista dei dashboard set, uno per ogni Funzione. Vengono visualizzate più informazioni. Il GW ADMIN può creare, modificare ed eliminare i vari set dashboard.
All’apertura del relativo dettaglio di classe, viene presentata la lista (linkListNam) delle relative dashboard. Il GW ADMIN può agire in editing direttamente sulla lista, e modificare altri dati di servizio del set dashboard.
Al click sulla riga viene aperto il dettaglio della dashboard, dove l’utente GW ADMIN ha controllo sull’xml del leafItem della dashboard (lo stesso che andrebbe nell’xml di progetto nei metadati).
Vale qui la pena sottolineare il fatto che nell’xml possa essere configurato in pratica qualsiasi tipologia di leafItem, compreso quello di type gwAction. Il fatto di configurare dashboard va considerato puramente incidentale. Si potrebbe per esempio aprire una dashboard tramite azione dopo aver recuperato alcuni dati tramite l’esecuzione di un groovy. Inoltre in futuro potrebbero essere rilasciate nuove tipologie di leafItem con funzionalmente del tutto analoghe alle attuali dashboard, e sarebbero fin da ora supportate.
Il trigger applicativo della classe si occupa di computare in automatico l’icona e la label (se non esplicitamente impostata nell’input a parte).
Il flag Custom, inoltre denota se la particolare dashboard è di prodotto (flag disattivo) o specifica per il cliente/progetto (flag attivo).
Sviluppo: nuovo leafItem gwDashboardSet
Questo comprende un nuovo menu di terzo livello: il leafItem con type gwDashboardSet. Questo leafItem va configurato in tutte le gwaFunction che hanno un set di dashboard configurabile dal SM, impostandolo come primo leafItem, tramite questo xml:
<leafItem name="leaf_item_0" label="" image="" type="gwDashboardSet"> </leafItem>
Ecco come si presenta nella funzione di destinazione per l’utente finale.
Si noti che la dashboard principale è resa come un normale leafItem, con icona 32px x 32px. Le altre dashboard secondarie sono indentate, e con un’icona più piccola (24px x 24px).
In generale alcune voci di menu possono non essere visualizzate per le seguenti ragioni:
- Attributo hidden=”true” esplicitamente impostato nel tag leafItem dall’utente GW ADMIN
- Mancanza di permessi per la risorsa e attributo hideWhenWithoutPermission=”true” esplicitamente impostato nel tag leafItem dall’utente GW ADMIN
- Esplicita personalizzazione da parte del SM su funzione dedicata
In generale alcune voci di menu potrebbero apparire disabilitate per le seguenti ragioni:
- Attributo disabled=”true” esplicitamente impostato nel tag leafItem dall’utente GW ADMIN
- Mancanza di permessi per la risorsa e attributo hideWhenWithoutPermission=”false” esplicitamente impostato nel tag leafItem dall’utente GW ADMIN
E’ inoltre presente un toggle button che permette di espandere/collassare l’alberatura delle dashboard secondarie. Le voci di menu si integrano nelle logiche generali di navigazione del framework, dove tra la voce di menu e la relativa scheda aperta viene mantenuto (e ripristinato) il path di navigazione.
Messa in esercizio
Si rimanda alla pagina dedicata Dashboard Set Configurabili - Messa in esercizio
Gestione aggiornamenti
Si rimanda alla pagina dedicata Dashboard Set Configurabili - Gestione Aggiornamenti
Ambiente di Test
Link funzione dedicata al SM:
http://192.168.0.225:8090/test_gw47/project/dashboard_management.html?group=SOLUTION_MANAGER&preventCache=1733226332161 username: sm password: SolutionM0@
Link funzione dedicata al GW ADMIN:
http://192.168.0.225:8090/test_gw47/project/dashboard_management_admin.html?group=GW_ADMIN
utente: gwadmin password: GwAdmin0@
Link funzioni/App per utente finale (stesse credenziali SM):
http://192.168.0.225:8090/test_gw47/project/dashboard_set_test_1.html?group=SOLUTION_MANAGER http://192.168.0.225:8090/test_gw47/project/dashboard_set_test_2.html?group=SOLUTION_MANAGER