gwplatform:release_notes

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
gwplatform:release_notes [2024/07/08 10:26]
giorgio.scali [Versione 4.7.0]
gwplatform:release_notes [2025/03/04 11:35] (versione attuale)
giorgio.scali [Versione 4.7.3]
Linea 24: Linea 24:
  
 ^ versione Geoweb ^ versione MapGuide ^ ecc. ^ versione Geoweb ^ versione MapGuide ^ ecc.
 +| 4.7.x | 3.1.1.9378 |  ... |
 | 4.6.x | 3.1.1.9378 |  ... | | 4.6.x | 3.1.1.9378 |  ... |
 | 4.5.x | 3.1 |  ... | | 4.5.x | 3.1 |  ... |
Linea 31: Linea 32:
 | 4.1 | 2.1 |  ... | | 4.1 | 2.1 |  ... |
 | 4.0 | 2.1 |  ... | | 4.0 | 2.1 |  ... |
 +
 +
 +===== Versione 4.7.4 =====
 +rev 9f69335ba28c26afa74b23277fd552586767caf5
 +
 +date 2025/03/04
 +
 +=== BUGFIX ===
 +  * widget date con handleTime true, non era possibile annullare il valore da UI (regressione issue #1035) (issue #1507)
 +  * leafItemHierarchicalFilterMenu parametri hideNewIgnorePermissions hideDeleteIgnorePermissions non erano ereditati dal tag gwClassListSettings dell'​xml di progetto (issue #1506)
 +  * gwClassDetail errore non sistematico mancato salvataggio campi required modificati (issue #1504)
 +  * Fix errore su anteprima per Content Handler forma DOC (issue #1503)
 +  * risolte variate problematiche di sicurezza rilevate dalla analisi SAST (issue #1502)
 +  * Modalità alto contrasto - propagazione del setting sui tab già aperti e confinamento impostazione alle platform stessa installazione (issue #1501)
 +  * ToDoList: corretta mancata gestione attibuto hiddenActionsNamesList (issue #1500)
 +  * terzo livello di dominio: adeguato backoffice a pagine di accesso (issue #1498)
 +  * widget ImgPathGalleryRest risolto errore che impediva la visualizzaizone in gwClassDetail in visualizzazione (issue #1495)
 +  * importCSV() con type 3 e 4 su advancedDelete1000Item() tabella temporanea non trovata (issue #1493)
 +  * GeowEventManagementServiceAsync:​ aggiornata data salvata nell'​evento con il fuso orario recuperato dalle variabili d'​ambiente (issue #1490)
 +  * widget LinkListNam migliorata velocità associazione/​disassociazione,​ che poteva causare errori di timeout (issue #1487)
 +  * CmisFactory:​ eliminati log che mostravano in chiaro tutte le informazioni di connessione,​ compresi utenti e pessword (issue #1491)
 +  * Gestione Utenti (geow_users):​ aggiunta eliminazione delle associazioni ai ruoli organizzativi nel trigger di eliminazione utente (issues #1489)
 +  * scheda layout2D - dialog '​Stampa'​ rimane in primo piano dopo aver creato la report pdf (issue #1488)
 +  * widget externalTable aggiunto nullcheck per mancanza tag <​gwClassListSettings>​ dentro tag <​gwClassSettings>​ in xml di progetto (issue #1486)
 +  * widget ImgPathGalleryRestWidget risolto errore ​ nullcheck caption su visualizzatore js gwGallery (issue #1482)
 +  * gwClassDetail multiple editing ripristinata comparsa button di editing (regressione issue #1452 di 4.7.3) (issue #1459)
 +  * gwClassDetail multiple editing nascosto button editing anche in caso di ctrlParam disabled true (oltre che con readonly true) (issue #1458)
 +  * fix contentHandler:​ Aggiunto il lancio della code ifcToGltf nel caso di inserimento di un nuovo record (issue #1475)
 +  * widget LinkListNam gestite operazioni associazione/​disassociazione in un'​unica transazione al fine di evitare errori di timeout (issue #1472)
 +  * widget attachmentRest e attachment- migliorata gestione errori in caso di caricamento del file (o dei files) fallito (issue #1469)
 +  * widget document in lista risolto errore bloccante che occorreva con il valore non selezionato (introdotto con issue #1430) (issue #1467)
 +  * fix filtri per ruoli: migliorato il controllo che aggiunge l'​operatore OR a partire dall'​eventuale secondo filtro (issue #1468)
 +
 +=== NEW FEATURES ===
 +  * nuovo plugin gw-commons-react per api progetti react (issue #1497)
 +  * nuova api js openGwClassListInsideContentPane() (issue #1494)
 +  * Gestione multischema:​ la funzione insertClassRecord() ora utilizza lo schema della classe, se impostato, per la generazione dei valori di chiave (sequence seq_fb) (issue #1485)
 +  * widget TextArea aggiunto parametro placeHolder (issue #1477)
 +  * widget LinkListNam nuova property afterSelectionScriptName (String, optional) per l'​esecuzione di un groovy finale di associazione. Il groovy viene eseguito nella medesima transazione delle associazioni/​disassociazioni (rollback in caso di exception). Variabili disponibili:​ services, all session variables, scriptName, log, parameters/​parameterMap (con dentro: ​ attributeGwid,​ projectName,​ associationClassKeyColumnValue,​ associatedList,​ removedList,​ startClass, associationClass,​ targetClass,​ associationRelation,​ targetRelation) (issue #1473)
 +  * eliminati byte array dalle classi che si occupano di caricare i file sui gestori documentali nella nuova API CMS REST (tutte le classi che estendono GwDocSessionImpl (issue #1470)
 +  * Documentatore:​ miglioramenti generali, aggiornamento libreria marked.js, definizione nuovi standard per i path delle immagini e dei riferimenti interni (issue #1464)
 +  * openDialog/​openFloatingPane adesso viene visualizzato sempre un loading message non solo con href GET (issue #1466)
 +
 +=== NEW COMPONENTS ===
 +  * nuovo plugin gw-commons-react (issue #1492)
 +  * nuovo widget codeEditor, simile alla textarea, ma specializzato per visualizzare codice. Supporta tutti i linguaggi e molte stilizzazioni (issue #1465)
 +
 +
 +
 +===== Versione 4.7.3 =====
 +rev 90d85db6dc508465f24e1d8c5cf5633a6189bfd4
 +
 +date 2024/12/23
 +
 +=== BUGFIX ===
 +  * navigazione intra-frameowork:​ risolta problematice dei favorite button per i raggruppamenti di funzioni:
 +    * adesso l'​impostazione viene propagata a tutte le function/​progetti gia aperti
 +    * adesso possono essere clickati senza selezionare la sezione
 +    * se non è possibile ripristinare il default su '​stesso oggetto'​ (perchè la function corrente non ce lo ha) viene considerato come favorite la sezione di default '​all'​(issue #1408)
 +  * navigazione intra-frameowork:​ risolta problematica per la quale una funzione/​progetto non visualizzava fra le recenti le funzioni/​progetti aperti successivamente. Contestualemnte incrementato il numero delle recenti a 5 (esclusa la corrente), e l'​ordine di visualizzazione:​ adesso alla più recente descrescendo (issue #1407)
 +  * incrementata velocità di apertura gwaFunction/​gwProject (issue #1404)
 +  * Dashboard ToDoList - corretta errata visualizzaizone lista geoweb (issue #1405)
 +  * ReportController - aggiunto parametro di ordinamento quando si va chiamare il metodo selectAllRecordsFromCache;​ come parametro di ordinamento si sceglie la chiave univoca della classe classificata (issue #1325 pt2)
 +  * Estrattore SQL - salvataggio wizard - migliorato recupero ultimo cod_extraction_model rendendolo indipendente dal codice del dataset (issue #1402)
 +  * Estrattore SQL - salvataggio wizard - aggiunto supporto a oracle e sqlserver (issue #1401)
 +  * widget externalTable error 404 not found su cancellazione record da dialog (issue #1400)
 +  * Notifiche : corretto posizionamento del badge delle notifiche (issue #1399)
 +  * Widget approvazioni corretto calcolo errato dell'​altezza del dialog (issue #1397)
 +  * gwClassDetail multiple dava errore con vari tipi di azione che controllano le DACL (issue #1387)
 +  * gwClassDeatail multiple adesso compare correttamente anche senza esplicatere il terzo parametro queryParameter (issue #1386)
 +  * widget linkList risolto errore gwClassDetail dovuto ad apice singolo ' in label classe target (issue #​1377) ​
 +  * scheda gwMap/​gwLayout2D alla prima apertura dopo f5 non si vedono i tooltip dei MapCommand (issue #1376)
 +  * mainActionWidget cambiato stile su hover: stesso colore testo, stesso colore sfondo, ma attenuato, e comparsa border grigio neutro (issue #1375)
 +  * actionWidget/​mainActionWidget adessso fa il corretto escape dei valori contenuti negli altri campi (passati al momento dell'​azione e che possono contenere codice html) (issue #1374)
 +  * ripristinata l'​azione di importazione di oggetti da BIM tramite query apposite costruite dall'​utente (issue #​1373) ​
 +  * risolto errore su dettaglio widget galleria fotografica:​ all'​apertura di più dettagli contemporanemante,​ solo il primo viene visualizzato in modo corretto mentre gli altri vanno in errore a causa dell'​id duplicato del pulsante delle info (issue #​1370) ​
 +  * widget html aggiungere supporto ad initialsValuesMap api js openGwClassDetail (issue #1369)
 +  * risolti errori del tipo: GwScopeService Error creating bean with name '​scopedTarget.sessionObject'​ su groovy eseguito da gwTaskScheduler (issue #1368)
 +  * gwClassList con molte azioni in toolbar non visualizzava numero eventuali record filtrati (issue #1365)
 +  * ambienti containerizzati:​ estesa gestione codifica UTF-8 (issue #1364)
 +  * ambienti containerizzati:​ gwAction con caratteri speciali non erano correttamente codificate in UTF-8 (issue #896)
 +  * gwClassDetail risolto problema di charset che si verificava salvando certi char (accentati à, é, ò, ...) su alcuni widget (Normal, TextBox, TextArea) in ambienti containerizzati,​ e che causava la visualizzazione di un ? al loro posto (issue #1363)
 +  * Report generiche venivano visualizzate vuote e senza errori lato server (introdotto con issue #1171 in 4.7.1) (issue #1361)
 +  * gwUserSettings - adesso vengono visualizzate le descrizioni dei gruppi invece che il codice/nome sia nel dialog cambio gruppo che nel tooltip (issue #1360)
 +  * webadmin callEmptyMetadataCache dava errore NoClassDefFoundError StreamConstraintsException,​ risolto aggiornando lib jackson-* a 2.17.2 (problematica introdotta dalla 4.7.1 con introduzione jasperreports 6.21.2) (issue #1359)
 +  * widget action/​mainActionWidget adesso nella gwAction le DACL con filtri CUSTOM che si riferiscono a campi del record sono correttamente valutate (issue #1356)
 +  * gwClassList - columnToggler - nascosti dal menu colonne non visibili de facto (issue #1355)
 +  * link cambio password adesso funziona anche dall' indice dei progetti anche quando userSettings.management.changePassword.url non è popolata (e quindi viene usato il default /​changePassword.html) oppure quando è popolato un url non relativo (issue #1350)
 +  * crypto.randomUUID() ora funziona anche in contesti non HTTPS (issue #1348)
 +  * accessibilità framework - risolto errore introdotto in issue #1331 su pagine scelta gruppo ed indice proegetti, che poteva avvenire in base alle impostazioni di locale del server dojo/​parser::​parse() error Error: string.substitute could not find key "​loadingState"​ in template (issue #1347)
 +  * ImportCSV - risolto problema di lettura del file di importazione che si verificava in caso di file con tanti record (problema introdotto dalla issue #1328 dato che lo stream del file di importazione viene letto due volte: una per elaborare l'​importazione e una per scriverlo nella tabella del db) (issue #1357)
 +  * ImportCSV - la form di caricamento del file di importazione viene ora disabilitata dopo aver iniziato la procedura di importazione (issue #1358)
 +
 +=== NEW FEATURES ===
 +  * widget mainActionWidget in assenza dei campi configurati usare label, tooltip ed icona della gwAction (issue #1445)
 +  * ProjectsDocController copiato da webadmin su webclient per erogare documentazione prodotti (doc metadati progetto) (issue #1444)
 +  * gwWindowManager - open(), aggiunto supporto al riconoscimento delle finestre delle app di geoweb già aperte, al fine erogare le DAR dei link pregenerati evitando se possibile di ricaricare l'​intera pagina (issue #1441)
 +  * gwWindowManager aggiunta funzionalità di broadcast di messaggi fra le varie finestre, che permette di eseguire codice senza avere un riferimento diretto della finestra (issue #1441)
 +  * js api gwAddIconImage() esteso supporto per widget dojo senza property iconClass in alcuni casi (Es: dijit/​layout/​ContentPane) (issue #1438)
 +  * widget linkListNam,​ aggiunto supporto a criteri di ordinamento impostabili negli xml dei widget in lista (issue #1434)
 +  * widget htmlTemplate con behaviorType 0, nuove proprietà disponibili in espressioni ${}: itemId, gwClassName,​ keyColumn, nameColumn, geomColumn (issue #1433)
 +  * widget switchWidget,​ numberBox - adesso supportano il flag dell'​xml isEditableInRelatedGwClassList (issue #1432)
 +  * navigazione intra-framework adesso compare in ogni sezione un messaggio notificante che non ci sono altre app nella sezione (issue #1431)
 +  * UserSettingsMenu - aggiunto comando per abilitare la '​Modalità Contrasto Elevato'<​code properties>​
 + ##################################################################​
 + # U S E R   S E T T I N G S   M A N A G E M E N T
 + ##################################################################​
 + ...
 + userSettings.management.changeLanguage.disabled=false
 + #hide the change contrast UI when true. default false (from 4.7.3, issue #1347)
 + userSettings.management.changeContrast.disabled=false
 +   </​code>​(issue #1347)
 +  * esteso supporto accessibiltà:​ widget Image aggiunto ora navigabile da tastiera (issue #1347)
 +  * esteso supporto accessibiltà:​ aggiunti tag per gli SR <h1> label progetto, <h2> 1st level menu, <h3> 2nd level menu, <h4> 3rd level menu (issue #1347)
 +  * nuovo componente preview file .xlsx. Nuove api js:
 +    * openGwXlsxViewerFloatingPane()
 +    * openGwXlsxViewerTab() (issue #1417)
 +  * nuovo mapping request exportByGroovyExecution per esecuzione groovy che producono file da scaricare (issue #1414)
 +  * notifiche: aggiunto nuovo parametro di configurazione nel configuration.properties:​ notifications.management.hide.timer. Questo parametro permette di gestire la durata del timer che mostra la snackbarcon la possibilità di annullare le azioni "​Nascondi"​ o "​Nascondi tutte"​. Il valore di default (che vale anche se il parametro non è presente nel configuration) è 10000 ms (issue #1442)
 +  * notifiche: il titolo delle notifiche da scadenzario viene recuperato - se c'è - dalla tabella geow_event_type (issue #1454)
 +  * Documentatore:​ report scheda prodotto_
 +    * nuovo layout non più basato sulle soluzioni ma sulla piattaforma
 +    * riorganizzazione dei titoli in base alla modalità "​scheda prodotto"​ o  "​manuale"​ (issue #1381)
 +
 +=== NEW COMPONENTS ===
 +  * nuovo 3rd level menu con type gwDashboardSet,​ che permette al Solution Mangager di personalizzare il set di risorse (dashboard) per Funzione (App). Il nuovo leafItem non ha parametri, ma necessita di nuove tabelle e relativi metadati. Rilasciate App dedicate per il SM e l'​utente GW_ADMIN.<​code xml>
 + <​leafItem name="​leaf_item_0"​ label="​dummy unused Label" image="​dummy_unused_image.png"​ type="​gwDashboardSet"​ escapeLabel="​true"​ disabled="​false"​ hidden="​false"​ hideWhenWithoutPermissions="​false"​ checkDynamicPermission="​false"​ avoidRemovalWhenAlone="​false">​
 + </​leafItem></​code>​ (issue #1428)
 +
 +
 +
 +===== Versione 4.7.2 =====
 +rev 345732fd75155f0297cb5315e44cf09e3dd03676
 +
 +date 2024/10/24
 +
 +=== BUGFIX ===
 +  * navigazione intra-frameowork:​ risolta problematice dei favorite button per i raggruppamenti di funzioni:
 +    * adesso l'​impostazione viene propagata a tutte le function/​progetti gia aperti
 +    * adesso possono essere clickati senza selezionare la sezione
 +    * se non è possibile ripristinare il default su '​stesso oggetto'​ (perchè la function corrente non ce lo ha) viene considerato come favorite la sezione di default '​all'​(issue #1408)
 +  * navigazione intra-frameowork:​ risolta problematica per la quale una funzione/​progetto non visualizzava fra le recenti le funzioni/​progetti aperti successivamente. Contestualemnte incrementato il numero delle recenti a 5 (esclusa la corrente), e l'​ordine di visualizzazione:​ adesso dalla più recente descrescendo (issue #1407)
 +  * incrementata velocità di apertura gwaFunction/​gwProject (issue #1404)
 +  * Dashboard ToDoList - corretta errata visualizzaizone lista geoweb (issue #1405)
 +  * ReportController - aggiunto parametro di ordinamento quando si va chiamare il metodo selectAllRecordsFromCache;​ come parametro di ordinamento si sceglie la chiave univoca della classe classificata (issue #1325 pt2)
 +  * Estrattore SQL - salvataggio wizard - migliorato recupero ultimo cod_extraction_model rendendolo indipendente dal codice del dataset (issue #1402)
 +  * Estrattore SQL - salvataggio wizard - aggiunto supporto a oracle e sqlserver (issue #1401)
 +  * widget externalTable error 404 not found su cancellazione record da dialog (issue #1400)
 +  * Notifiche : corretto posizionamento del badge delle notifiche (issue #1399)
 +  * Widget approvazioni corretto calcolo errato dell'​altezza del dialog (issue #1397)
 +  * gwClassDetail multiple dava errore con vari tipi di azione che controllano le DACL (issue #1387)
 +  * gwClassDeatail multiple adesso compare correttamente anche senza esplicatere il terzo parametro queryParameter (issue #1386)
 +  * widget linkList risolto errore gwClassDetail dovuto ad apice singolo ' in label classe target (issue #​1377) ​
 +  * scheda gwMap/​gwLayout2D alla prima apertura dopo f5 non si vedono i tooltip dei MapCommand (issue #1376)
 +  * mainActionWidget cambiato stile su hover: stesso colore testo, stesso colore sfondo, ma attenuato, e comparsa border grigio neutro (issue #1375)
 +  * actionWidget/​mainActionWidget adessso fa il corretto escape dei valori contenuti negli altri campi (passati al momento dell'​azione e che possono contenere codice html) (issue #1374)
 +  * ripristinata l'​azione di importazione di oggetti da BIM tramite query apposite costruite dall'​utente (issue #​1373) ​
 +  * risolto errore su dettaglio widget galleria fotografica:​ all'​apertura di più dettagli contemporanemante,​ solo il primo viene visualizzato in modo corretto mentre gli altri vanno in errore a causa dell'​id duplicato del pulsante delle info (issue #​1370) ​
 +  * widget html aggiungere supporto ad initialsValuesMap api js openGwClassDetail (issue #1369)
 +  * risolti errori del tipo: GwScopeService Error creating bean with name '​scopedTarget.sessionObject'​ su groovy eseguito da gwTaskScheduler (issue #1368)
 +  * gwClassList con molte azioni in toolbar non visualizzava numero eventuali record filtrati (issue #1365)
 +  * ambienti containerizzati:​ estesa gestione codifica UTF-8 (issue #1364)
 +  * ambienti containerizzati:​ gwAction con caratteri speciali non erano correttamente codificate in UTF-8 (issue #896)
 +  * gwClassDetail risolto problema di charset che si verificava salvando certi char (accentati à, é, ò, ...) su alcuni widget (Normal, TextBox, TextArea) in ambienti containerizzati,​ e che causava la visualizzazione di un ? al loro posto (issue #1363)
 +  * Report generiche venivano visualizzate vuote e senza errori lato server (introdotto con issue #1171 in 4.7.1) (issue #1361)
 +  * gwUserSettings - adesso vengono visualizzate le descrizioni dei gruppi invece che il codice/nome sia nel dialog cambio gruppo che nel tooltip (issue #1360)
 +  * webadmin callEmptyMetadataCache dava errore NoClassDefFoundError StreamConstraintsException,​ risolto aggiornando lib jackson-* a 2.17.2 (problematica introdotta dalla 4.7.1 con introduzione jasperreports 6.21.2) (issue #1359)
 +  * widget action/​mainActionWidget adesso nella gwAction le DACL con filtri CUSTOM che si riferiscono a campi del record sono correttamente valutate (issue #1356)
 +  * gwClassList - columnToggler - nascosti dal menu colonne non visibili de facto (issue #1355)
 +  * link cambio password adesso funziona anche dall' indice dei progetti anche quando userSettings.management.changePassword.url non è popolata (e quindi viene usato il default /​changePassword.html) oppure quando è popolato un url non relativo (issue #1350)
 +  * crypto.randomUUID() ora funziona anche in contesti non HTTPS (issue #1348)
 +  * accessibilità framework - risolto errore introdotto in issue #1331 su pagine scelta gruppo ed indice proegetti, che poteva avvenire in base alle impostazioni di locale del server dojo/​parser::​parse() error Error: string.substitute could not find key "​loadingState"​ in template (issue #1347)
 +  * ImportCSV - risolto problema di lettura del file di importazione che si verificava in caso di file con tanti record (problema introdotto dalla issue #1328 dato che lo stream del file di importazione viene letto due volte: una per elaborare l'​importazione e una per scriverlo nella tabella del db) (issue #1357)
 +  * ImportCSV - la form di caricamento del file di importazione viene ora disabilitata dopo aver iniziato la procedura di importazione (issue #1358)
 +
 +=== NEW FEATURES ===
 +  * spring-security.xml necessario aggiungere nuovo intercept-url permittAll (sotto compressed/​dojox/​**) <code xml><​intercept-url pattern="/​resources/#​{ T(com.geowebframework.metadataservice.registry.GwReleaseInfos).getRevision() }/​build/​**"​ access="​permitAll"​ /> </​code>​
 +    * configuration.properties:​ aggiunto parametro per impostare il tempo di validità dei file scaricati dal browser<​code>​
 + ##################################################################​
 + # B R O W S E R   C A C H E
 + ##################################################################​
 + #cache expressed in days, default 3650, -1 to disable
 + cache.max-age.days=365
 +</​code>​ (issue #1404)
 +  * Aggiunta nuovi API per il download della Report Accessi Geoweb se integrato con keyCloak (issue #1403)
 +  * componenti ad albero - aggiunto parametro autoClickFirstNodeWhenIsFirstMenu (boolean, optional, default false) che, quando il componente è il primo menu  (coordinate 0 0 0), apre in automatico la risorsa dell' elemento first/root. Componenti interessati:​
 +    * leafItemHierarchicalFilterMenu
 +    * gwTaskHierarchicalFilterMenu
 +    * leafItemGwTreeCollectionMenu
 +    * leafItemMCMenu
 +    * leafItemGHFMCMenu (issue #875)
 +  * dbImageComboBox in lista recuperare columnAliasStore direttamente (issue #1398)
 +  * gwClassList rimosso vincolo tale per cui, quando si usa la property listedAttributesNames (api js apertura gwClassList),​ gli attributi specificati dovevano essere sempre aggiunti in lista (issue #1396)
 +  * widget html nuovo parametro onClickGwActionName,​ che esegue al click l'​azione definita nella gwClass (issue #1395)
 +  * Dashboard ToDoList: filtro statico da xml di progetto a groovy (issue #1394)
 +  * Widget Approvazioni - introdotto refresh del tab nel caso di dashboard ToDoList (issue #1393)
 +  * api js openGwClassListTab() aggiunta possibilità di espicitare tabWidgetId (issue #1392)
 +  * Approvazioni:​ uando la dahsboard generica ToDoList è necessario rendere disponibile il meotdo per la gestione del tempo di altenza (issue #1391)
 +  * nuova js api publishGwClassUpdateWhenLinkListNamChanges() che serve per aggiornare liste e dettagli di una classe differente da quelle coinvolte nelle modifiche effettuate da un widget linkListNam (issue #1388)
 +  * gwClassDetail multiple edit permessa presenza dei widget InstructionsAreaWidget e Label (issue #1385)
 +  * GwClassListService aggiunti metodi countClassRecords*(...) nuovi metodi esposti (groovy):
 +    * public Integer countClassRecords(String gwClassName)
 +    * public Integer countClassRecords(String gwClassName,​ List<​Map<​String,​ Object>>​ filters)
 +    * public Integer countClassRecords(String gwClassName,​ List<​Map<​String,​ Object>>​ filters, String projectName)
 +    * public Integer countClassRecords(Class gwClass, List<​Map<​String,​ Object>>​ filters, String projectName)
 +    * altri esposti:
 +      * public Integer countClassRecordsUsingFilterList(String gwClassName)
 +      * public Integer countClassRecordsUsingFilterList(String gwClassName,​ List filterList)
 +      * public Integer countClassRecordsUsingFilterList(String gwClassName,​ List filterList, String projectName)
 +      * public Integer countClassRecordsUsingFilterList(Class gwClass, List filterList, String projectName) (issue #1384)
 +  * Dashboard ToDoList: aggiunta possibilità di mettere icone custom non solo classi fontawesome (issue #1383)
 +  * widget DBImageComboBox aggiunta proprietà cssClassField (con priorità su blobField) che abilita il supporto ad immagini configurate in varie modalità:
 +    * regole css FontAwesome
 +    * regole css Geoweb
 +    * regole css di altre librerie importate
 +    * B64 generabili dal tool del webadmin (comprese icone personalizzate nello stile, stacked, etc..) (issue #1379)
 +  * widget DBImageComboBox aggiunto parametro contentTypeField per supporto a immagini .svg presenti nel database (issue #1378)
 +  * Aggiunta gestione di nuovi filtri statici associati ai ruoli organizzativi;​ sono ora presenti il nuovo servizio GwRoleFilterService e la nuova classe RoleFilter (issue #1366)
 +  * Sicurezza: aggiunto filtro per vulnerabilità DoS (issue #1367)
 +  * configuratyion.properties aggiunto flag report.exportableReports.enabled,​ default false (issue #1362)
 +  * widget linkListNam vengono segnalati a runtime errori dovuti a relazioni costruite su campi non di tipo string/​integer (ma double) (issue #1352)
 +  * gwClassListService aggiunti nuovi metodi per eliminazione multipla reocord invocabili dai groovy. Precedentemente poteva venire invocato impropriamente questo metodo: <​code>​public JsonServerResponse deleteClassRecords(String projectName,​ String gwClassName,​ ArrayList<​String>​ itemIdList, Map<​String,​Object>​ options)</​code>​ che ritorna un JsonServerResponse,​ ha il suo TransactionManager,​ ed era nato per lavorare con la gwClassList,​ e non dovrebbe essere usato nei groovy (metodo che in caso di Exception su una specifica eliminazione,​ esegue anche le altre) Adesso sono disponibili nuovi metodi:
 +    * public boolean deleteClassRecordsWithoutTransaction(String projectName,​ String gwClassName,​ ArrayList<​String>​ itemIdList, Map<​String,​Object>​ options) Da usare nei trigger groovy di classe, quando è auspicabile non creare una ulteriore TransactionManager (per esempio eliminare records di una classe figlia, con java api, da un beforeDelete/​afterDelete del trigger di una classe padre) Questo metodo, in caso di Exception su una specifica eliminazione,​ NON esegue anche le altre, e rilancia subito l'​eccezione
 +    * public boolean deleteClassRecordsFromGroovy(String projectName,​ String gwClassName,​ ArrayList<​String>​ itemIdList, Map<​String,​Object>​ options) Da usare in nei groovy generici, che ha il suo TransactionManager e che ritorna un boolean Questo metodo, in caso di Exception su una specifica eliminazione,​ NON esegue anche le altre, e rilancia subito l'​eccezione (issue #1349)
 +  * Notifiche: aggiunto aggiornamento automatico configurabile nel configuration.properties (issue #1344)
 +  
  
  
Linea 75: Linea 302:
   * nuovo widget switchWidget,​ funzionalmente simile al widget checkBox, ma più vicino alla user experience mobile. Non è previsto il supporto allo stato 'non scelto'​ (supportato dal widget checkBox) (issue #1322)   * nuovo widget switchWidget,​ funzionalmente simile al widget checkBox, ma più vicino alla user experience mobile. Non è previsto il supporto allo stato 'non scelto'​ (supportato dal widget checkBox) (issue #1322)
   * nuovo widget InstructionsArea che permette di inserire nel dettaglio di classe, in un'​area dedicata, standard e riconoscibile che notifichi l'​utente sull'​utilizzo del dettaglio/​porzione di dettaglio (issue #1321)   * nuovo widget InstructionsArea che permette di inserire nel dettaglio di classe, in un'​area dedicata, standard e riconoscibile che notifichi l'​utente sull'​utilizzo del dettaglio/​porzione di dettaglio (issue #1321)
-  * ExportableReport:​ introdotto un nuovo strumento di reportistica (con focus sull'​export:​ no dashboard/​report html), sempre basato su JasperReport,​ con risorse report su persistite su database (invece che sui contenuti statici), e configurabile pienamente dall'​utente SolutionManager. Nuovi tipi di schede (e leafItem) introdotti: +  * ExportableReport:​ introdotto un nuovo strumento di reportistica (con focus sull'​export:​ no dashboard/​report html), sempre basato su JasperReport,​ con risorse report su persistite su database (invece che sui contenuti statici), e configurabile pienamente dall'​utente SolutionManager. Nuovi tipi di schede (e leafItem) introdotti: gwExportableReportgwExportableReportSMNuove api js: openGwExportableReportTab()openGwExportableReportSMTab()openGwExportableReport()Introdotte nuove classi geoweb e relative implementazioni:​ gwr_report, gwr_report_category,​ gwr_model, gwr_param, gwr_r_report_model,​ gwr_r_report_function,​ gwr_r_rep_cat_func,​ gwr_filterable_classes (issue #1171)
-    * gwExportableReport +
-    * gwExportableReportSM +
-  ​Nuove api js: +
-    * openGwExportableReportTab() +
-    * openGwExportableReportSMTab() +
-    * openGwExportableReport() +
-  ​Introdotte nuove classi geoweb e relative implementazioni:​ gwr_report, gwr_report_category,​ gwr_model, gwr_param, gwr_r_report_model,​ gwr_r_report_function,​ gwr_r_rep_cat_func,​ gwr_filterable_classes (issue #1171)+
  
 === DEPRECATED === === DEPRECATED ===
Linea 100: Linea 320:
   * Raggruppati tutti i metodi relativi agli sdf nei controller SdfController (package ​   * Raggruppati tutti i metodi relativi agli sdf nei controller SdfController (package ​
  ​com.geowebframework.webclient.controller.commons.map) ​ e nel service SdfService (package com.geowebframework.dataservice) (issue #1297)  ​com.geowebframework.webclient.controller.commons.map) ​ e nel service SdfService (package com.geowebframework.dataservice) (issue #1297)
 +
 +
 +===== Versione 4.6.18 =====
 +rev fe19229bb33a5e41bfa474216fef1bb502bd485f
 + 
 +date 2024/12/23
 +
 +=== BUGFIX ===
 +  * scheda gwCalendar errore su distruzione contenuto in seguito ad openTab() con stesso id e forceRefreshTab true (issue #1461)
 +  * gwLayout2D - plugin MapEditing - griglia snapping - eliminato check su risoluzione corrente mappa (issue #1460)
 +  * navigazione intra-framework nascoste gwaFunction/​App di documentazione con type 4 (issue #1459)
 +  * scheda gwCalendar ordinati i calendari nello stesso ordine imposto dal parametro calendarCodes (issue #1456)
 +  * gwClassDetail (solo con itemId=='​newItem'​) le azioni di dettaglio erano eseguite troppo presto e non vedevano i valori impostati tramite l'api js initialsValuesMap (issue #1452)
 +  * widget dbComboBox (con field di tipo integer + valueToStore della query integer) su gwClassDetail non viene sempre visualizzato correttamente il valueToShow appena salvato/​creato (issue #1451)
 +  * scheda gwCalendar attenuata opacità colori calendario per evitare label eventi inleggibili in quanto troppo sbiadite (issue #1449)
 +  * gwClassFilter (aperto da dialog lista scelta oggetto in sessione) - risolto spaginamento che si verificava cambiando tab ('​Semplificato'/'​Incrementale'​) issue #1448 
 +  * gestito apice singolo ' in label attributo che causava errori su filtri classi ed altri componenti (issue #1447)
 +  * risolto errore javascript filterContainer.computeIsModified is not a function con useCompressed true (issue #1446)
 +  * widget linkListNam,​ dialog di associazione,​ ora le liste si aggiornano anche agli eventi di eliminazione sulla classe di destinazione (issue #1440)
 +  * componenti lista + alcuni widget (es: htmlTemplate con behaviorType 0) risolti errori su alcuni formatter integrando sempre ctrlParamStoreData con attribute gwid (issue #1439)
 +  * widget classificazione - edit famiglie - risolto errore alla prima apertura (issue #1347)
 +  * widget con valueToStore/​valueToShow implementata api .gwGetValue() che funziona anche con dettaglio readonly (_detailMode=='​visualize'​) (issue #1427)
 +  * gwClassDetail ora i tooltip delle classi relazionate gestiscono i caratteri speciali à,​è,​é,​ò,​ù,​ì (issue #1412)
 +  * apertura gwProject - adesso il codSolution viene prioritariamente recuperato dalla proprietà gw.solution.code del configuration.properties o dalla variabile d'​ambiente rimappata (issue #1425)
 +  * scheda gwMap - tab editing - risolti malfunzionamenti grid snapping (PointGridSnappingControlCommand) (issue #1422)
 +  * scheda gwMap reso fisso il boundary di selezione del click singolo in mappa, per evitare malfunzionamenti che c'​erano a certe scale (issue #1420)
 +  * gwMap risolti errori nelle function showGeometrySelectionOnMap() editGeometryOnMap() in caso di wktGeom troppo grande (issue #1418)
 +  * widget LinkList - onRowClickGwActionName gwClassListSettings xml di progetto adesso il check sull'​azione viene fatto sulla clase target (e non source) (issue #1415)
 +  * navigazione intra-framwork + pagine di accesso problematiche sezione '​stesso gruppo'​ (issue #1411)
 +  * risolto errore su azione importcsv asincrono e aggiunti ulteriori log al servizio importCsv (issue #1409)
 +
 +
 +===== Versione 4.6.17 =====
 +rev db9c40ac6a64c28a630918df6f3954c71a024cbd
 +
 +date 2024/10/10
 +
 +=== BUGFIX ===
 +  * incrementata velocità di apertura gwaFunction/​gwProject (issue #1404)
 +  * Estrattore SQL - salvataggio wizard - migliorato recupero ultimo cod_extraction_model rendendolo indipendente dal codice del dataset (issue #1402)
 +  * Estrattore SQL - salvataggio wizard - aggiunto supporto a oracle e sqlserver (issue #1401)
 +  * widget externalTable error 404 not found su cancellazione record da dialog (issue #1400)
 +  * ReportController - aggiunto parametro di ordinamento quando si va chiamare il metodo selectAllRecordsFromCache;​ come parametro di ordinamento si sceglie la chiave univoca della classe classificata (issue #1325 pt2)
 +  * gwClassDetail multiple dava errore con vari tipi di azione che controllano le DACL (issue #1387)
 +  * gwClassDeatail multiple adesso compare correttamente anche senza esplicatere il terzo parametro queryParameter (issue #1386)
 +  * widget linkList risolto errore gwClassDetail dovuto ad apice singolo ' in label classe target (issue #​1377) ​
 +  * scheda gwMap/​gwLayout2D alla prima apertura dopo f5 non si vedono i tooltip dei MapCommand (issue #1376)
 +  * mainActionWidget cambiato stile su hover: stesso colore testo, stesso colore sfondo, ma attenuato, e comparsa border grigio neutro (issue #1375)
 +  * actionWidget/​mainActionWidget adessso fa il corretto escape dei valori contenuti negli altri campi (passati al momento dell'​azione e che possono contenere codice html) (issue #1374)
 +  * ripristinata l'​azione di importazione di oggetti da BIM tramite query apposite costruite dall'​utente (issue #​1373) ​
 +  * risolto errore su dettaglio widget galleria fotografica:​ all'​apertura di più dettagli contemporanemante,​ solo il primo viene visualizzato in modo corretto mentre gli altri vanno in errore a causa dell'​id duplicato del pulsante delle info (issue #​1370) ​
 +  * widget html aggiungere supporto ad initialsValuesMap api js openGwClassDetail (issue #1369)
 +  * risolti errori del tipo: GwScopeService Error creating bean with name '​scopedTarget.sessionObject'​ su groovy eseguito da gwTaskScheduler (issue #1368)
 +  * gwClassList con molte azioni in toolbar non visualizzava numero eventuali record filtrati (issue #1365)
 +  * ambienti containerizzati:​ estesa gestione codifica UTF-8 (issue #1364)
 +  * ambienti containerizzati:​ gwAction con caratteri speciali non erano correttamente codificate in UTF-8 (issue #896)
 +  * gwClassDetail risolto problema di charset che si verificava salvando certi char (accentati à, é, ò, ...) su alcuni widget (Normal, TextBox, TextArea) in ambienti containerizzati,​ e che causava la visualizzazione di un ? al loro posto (issue #1363)
 +  * gwUserSettings - adesso vengono visualizzate le descrizioni dei gruppi invece che il codice/nome sia nel dialog cambio gruppo che nel tooltip (issue #1360)
 +  * widget action/​mainActionWidget adesso nella gwAction le DACL con filtri CUSTOM che si riferiscono a campi del record sono correttamente valutate (issue #1356)
 +  * gwClassList - columnToggler - nascosti dal menu colonne non visibili de facto (issue #1355)
 +  * Notifiche: corretta visibilità badge notifiche (issue #1351)
 +  * link cambio password adesso funziona anche dall' indice dei progetti anche quando userSettings.management.changePassword.url non è popolata (e quindi viene usato il default /​changePassword.html) oppure quando è popolato un url non relativo (issue #1350)
 +  * ImportCSV - risolto problema di lettura del file di importazione che si verificava in caso di file con tanti record (problema introdotto dalla issue #1328 dato che lo stream del file di importazione viene letto due volte: una per elaborare ​ l'​importazione e una per scriverlo nella tabella del db) (issue #1357)
 +  * ImportCSV - la form di caricamento del file di importazione viene ora disabilitata dopo aver iniziato la procedura di importazione (issue #1358)
 +  * crypto.randomUUID() ora funziona anche in contesti non HTTPS (issue #1348)
 +  * accessibilità framework - risolto errore introdotto in issue #1331 su pagine scelta gruppo ed indice proegetti, che poteva avvenire in base alle impostazioni di locale del server dojo/​parser::​parse() error Error: string.substitute could not find key "​loadingState"​ in template (issue #1347)
 +
 +=== NEW FEATURES ===
 +  * configuration.properties:​ aggiunto parametro per impostare il tempo di validità dei file scaricati dal browser <​code>​
 + ##################################################################​
 + # B R O W S E R   C A C H E
 + ##################################################################​
 + #cache expressed in days, default 3650, -1 to disable
 + cache.max-age.days=365
 +</​code>​(issue #1404)
 +  * Aggiunta nuovi API per il download della Report Accessi Geoweb se integrato con keyCloak (issue #1403)
 +  * widget html nuovo parametro onClickGwActionName,​ che esegue al click l'​azione definita nella gwClass (issue #1395)
 +  * api js openGwClassListTab() aggiunta possibilità di espicitare tabWidgetId (issue #1392)
 +  * Approvazioni:​ uando la dahsboard generica ToDoList è necessario rendere disponibile il meotdo per la gestione del tempo di altenza (issue #1391)
 +  * Approvazioni:​ usando la dahsboard generica ToDoList è necessario rendere disponibile il meotdo per la gestione del tempo di altenza (issue #1391)
 +  * nuova js api publishGwClassUpdateWhenLinkListNamChanges() che serve per aggiornare liste e dettagli di una classe differente da quelle coinvolte nelle modifiche effettuate da un widget linkListNam (issue #1388)
 +  * gwClassDetail multiple edit permessa presenza dei widget InstructionsAreaWidget e Label (issue #1385)
 +  * GwClassListService aggiunti metodi countClassRecords*(...)
 +    * nuovi metodi esposti (groovy):
 +      * public Integer countClassRecords(String gwClassName)
 +      * public Integer countClassRecords(String gwClassName,​ List<​Map<​String,​ Object>>​ filters)
 +      * public Integer countClassRecords(String gwClassName,​ List<​Map<​String,​ Object>>​ filters, String projectName)
 +      * public Integer countClassRecords(Class gwClass, List<​Map<​String,​ Object>>​ filters, String projectName)
 +    * altri esposti:
 +      * public Integer countClassRecordsUsingFilterList(String gwClassName)
 +      * public Integer countClassRecordsUsingFilterList(String gwClassName,​ List filterList)
 +      * public Integer countClassRecordsUsingFilterList(String gwClassName,​ List filterList, String projectName)
 +      * public Integer countClassRecordsUsingFilterList(Class gwClass, List filterList, String projectName) (issue #1384)
 +  * Dashboard ToDoList: aggiunta possibilità di mettere icone custom non solo classi fontawesome (issue #1383)
 +  * widget DBImageComboBox aggiunta proprietà cssClassField (con priorità su blobField) che abilita il supporto ad immagini ​ configurate in varie modalità:
 +    * regole css FontAwesome
 +    * regole css Geoweb
 +    * regole css di altre librerie importate
 +    * B64 generabili dal tool del webadmin (comprese icone personalizzate nello stile, stacked, etc..) (issue #1379)
 +  * widget DBImageComboBox aggiunto parametro contentTypeField per supporto a immagini .svg presenti nel database (issue #1378)
 +  * Aggiunta gestione di nuovi filtri statici associati ai ruoli organizzativi;​ sono ora presenti il nuovo servizio GwRoleFilterService e la nuova classe RoleFilter (issue #1366)
 +  * widget linkListNam vengono segnalati a runtime errori dovuti a relazioni costruite su campi non di tipo string/​integer (ma double) (issue #1352)
 +  * gwClassListService aggiunti nuovi metodi per eliminazione multipla reocord invocabili dai groovy. Precedentemente poteva venire invocato impropriamente questo metodo: <​code>​public JsonServerResponse deleteClassRecords(String projectName,​ String gwClassName,​ ArrayList<​String>​ itemIdList, Map<​String,​Object>​ options)</​code>​ che ritorna un JsonServerResponse,​ ha il suo TransactionManager,​ ed era nato per lavorare con la gwClassList,​ e non dovrebbe essere usato nei groovy (metodo che in caso di Exception su una specifica eliminazione,​ esegue anche le altre) Adesso sono disponibili nuovi metodi:
 +    * public boolean deleteClassRecordsWithoutTransaction(String projectName,​ String gwClassName,​ ArrayList<​String>​ itemIdList, Map<​String,​Object>​ options) Da usare nei trigger groovy di classe, quando è auspicabile non creare una ulteriore TransactionManager (per esempio eliminare records di una classe figlia, con java api, da un beforeDelete/​afterDelete del trigger di una classe padre) Questo metodo, in caso di Exception su una specifica eliminazione,​ NON esegue anche le altre, e rilancia subito l'​eccezione
 +    * public boolean deleteClassRecordsFromGroovy(String projectName,​ String gwClassName,​ ArrayList<​String>​ itemIdList, Map<​String,​Object>​ options) Da usare in nei groovy generici, che ha il suo TransactionManager e che ritorna un boolean Questo metodo, in caso di Exception su una specifica eliminazione,​ NON esegue anche le altre, e rilancia subito l'​eccezione (issue #1349)
  
  
Linea 1340: Linea 1665:
  * class LayoutChangeController => PluginLayoutChangeController  * class LayoutChangeController => PluginLayoutChangeController
  
 +
 +===== Versione 4.5.17 =====
 +
 +=== rev a8ae36082fb2922bcfb2f0d00f09dc4d8bff5721 ===
 +
 +=== date 2025/01/02 ===
 +
 +=== BUGFIX ===
 +  * widget linkListNam,​ dialog di associazione,​ ora le liste si aggiornano anche agli eventi di eliminazione sulla classe di destinazione (issue #1440)
 +  * widget dbComboBox (con field di tipo integer + valueToStore della query integer) su gwClassDetail non viene sempre visualizzato correttamente il valueToShow appena salvato/​creato (issue #1451)
 +  * scheda gwMap - tab editing - risolti malfunzionamenti grid snapping (PointGridSnappingControlCommand) (issue #1422)
 +  * gwMap risolti errori nelle function showGeometrySelectionOnMap() editGeometryOnMap() in caso di wktGeom troppo grande (issue #1418)
 +  * widget LinkList - onRowClickGwActionName gwClassListSettings xml di progetto adesso il check sull'​azione viene fatto sulla clase target (e non source) (issue #1415)
 +  * widget externalTable error 404 not found su cancellazione record da dialog (issue #1400)
 +  * gwClassList sotto mappa 2D: non funzionano conf GwClassSettings dell' xml di progetto (solo 4.5.* 4.4.*) (issue #1390)
 +  * All'​apertura del progetto risolto errore quando activeGroup non è fornito nell'​url e c'è un solo gruppo disponibile per l'​utente (issue #1389)
 +  * gwClassList widget action in lista non funziona e da dialog di errore vuoto (issue #1371)
 +  * widget html aggiungere supporto ad initialsValuesMap api js openGwClassDetail (issue #1369)
 +  * gwClassList con molte azioni in toolbar non visualizzava numero eventuali record filtrati (issue #1365)
 +  * ambienti containerizzati:​ gwAction con caratteri speciali non erano correttamente codificate in UTF-8 (issue #986)
  
 ===== Versione 4.5.16 ===== ===== Versione 4.5.16 =====
Linea 2160: Linea 2505:
  
  
 +
 +===== Versione 4.4.29 =====
 +
 +=== rev a939cb8f9ae907464c6faa34c16c97bfb00dc3f7===
 +
 +=== date 2025/01/01 ===
 +
 +  * widget dbComboBox (con field di tipo integer + valueToStore della query integer) su gwClassDetail non viene sempre visualizzato correttamente il valueToShow appena salvato/​creato (issue #1451)
 +  * widget linkListNam,​ dialog di associazione,​ ora le liste si aggiornano anche agli eventi di eliminazione sulla classe di destinazione (issue #1440)
 +  * scheda gwMap - tab editing - risolti malfunzionamenti grid snapping (PointGridSnappingControlCommand) (issue #1422)
 +  * gwMap risolti errori nelle function showGeometrySelectionOnMap() editGeometryOnMap() in caso di wktGeom troppo grande (issue #1418)
 +  * widget LinkList - onRowClickGwActionName gwClassListSettings xml di progetto adesso il check sull'​azione viene fatto sulla clase target (e non source) (issue #1415)
 +  * widget externalTable error 404 not found su cancellazione record da dialog (issue #1400)
 +  * gwClassList sotto mappa 2D: non funzionano conf GwClassSettings dell' xml di progetto (solo 4.5.* 4.4.*) (issue #1390)
 +  * gwClassList widget action non valuta DACL (issue #1371)
 +  * widget html aggiungere supporto ad initialsValuesMap api js openGwClassDetail (issue #1369)
 +  * gwClassList con molte azioni in toolbar non visualizzava numero eventuali record filtrati (issue #1365)
 +  * ambienti containerizzati:​ gwAction con caratteri speciali non erano correttamente codificate in UTF-8 (issue #986)
  
 ===== Versione 4.4.28 ===== ===== Versione 4.4.28 =====
Linea 3961: Linea 4324:
  
 =====Client Cad===== =====Client Cad=====
 +===== Versione 3.0.3 =====
 +date 2025/02/18
 +
 +=== BUGFIX ===
 +* Modificato il metodo con cui vengono recuperate le strutture di modello
 + * Sistemata l'​esportazione dei colori nell'​estrazione dei simboli dinamici
 + * Aggiunti gruppi PROGRAM_MANAGER,​BIM_DATA alla login
 +
 +===== Versione 3.0.2 =====
 +date 2023/10/24
 +
 +=== NEW FEATURES ===
 +  *  Aggiunta la possibilità di modificare il colore del layer tramite comando GWMERGELAYERS. Il colore dovrà essere nella terza colonna del csv in formato RGB
 +
 +===== Versione 3.0.1 =====
 +date 2023/08/04
 +=== BUGFIX ===
 +* Aggiunto il controllo del SyncMode sulla validazione di blocchi e poligoni
 + * Rimossi i log dalle operazioni background ricorsive
 + * Aggiunto il controllo del SyncMode sulla sincronizzazione di blocchi e poligoni
 + * Disattiva comando Pubblica fino a che non è validata la planimetria su GwSave.
 +
 +=== NEW FEATURES ===
 + * Creato il comando che permette di modificare il restUrl. Se in fase di login il campo 
 + RestUrl del config non è popolato allora la finestra di login si aprirà automaticamente
 + * Ora lo username viene estratto dalla pagina di login e viene salvato all'​interno del LoginService.
 + * In fase di login il gruppo viene scelto automaticamente dalla lista dei gruppi possibili. Se non presente la login fallisce
  
-===== Versione 3.0 =====+===== Versione 3.0.0 =====
 description Compatibile a partire dalla versione 4.6.0 description Compatibile a partire dalla versione 4.6.0
 date 2023/05/04 date 2023/05/04
  • gwplatform/release_notes.1720427215.txt.gz
  • Ultima modifica: 2024/07/08 10:26
  • da giorgio.scali