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 [2025/10/17 14:19]
francesco.peverini
gwplatform:release_notes [2026/04/03 17:09] (versione attuale)
giorgio.scali [Versione 4.8.2]
Linea 33: Linea 33:
 | 4.1 | 2.1 |  ... | | 4.1 | 2.1 |  ... |
 | 4.0 | 2.1 |  ... | | 4.0 | 2.1 |  ... |
 +
 +
 +===== Versione 4.8.2 =====
 +rev a092e24a33d417e8ce7d24f7f9be8e0f83764a7c
 +
 +date 2026/04/01
 +
 +=== BUGFIX ===
 +  * Generazione Report - risolto errore: Error creating bean with name '​scopedTarget.sessionObject':​ Scope '​session'​ is not active for the current thread (issue #1779)
 +  * ContentHanlderWidget valutazioni ACL/DACL errate. Problemi individuati:​
 +    * non veniva controllato userHasPermissionToRead per contentClass
 +    * venivano ciclati tutti i valori d'​ambito contentClass anche se è sufficiente avere i permessi su almeno uno degli ambiti attivi per il progetto (anche qui manca userHasPermissionToRead)
 +    * nel check DACL contentClass c'era impropriamente il check su userHasPermissionToInsert
 +    * nel check DACL contentClass mancava il check su userHasPermissionToRead
 +    * i controlli sui valori d'​ambito di contentTypeClass erano difatti inutili: venivano eseguiti inutilmente senza sovrascrivere mai i vari flag
 +    * nel check DACL contentTypeClass veniva usata impropriamente contentClass
 +    * nel check DACL contentTypeClass c'era impropriamente il check su userHasPermissionToInsert
 +   (issue #1771)
 +  * ContentHanlderWidget mitigata lentezza che ritardava il caricamento del dettaglio di classe (evitata selezione record multipla) (issue #1772)
 +  * Exportable Report - risolto errore NullPointerException su download template risorse che si verifica SOLO in ambiente containerizzato (issue #1777)
 +  * PropertySet e JSON in gwFilter risolte problematiche con key non full lowercase (issue #1770)
 +  * Fix azione download massivo fascicolo che sovrascriveva il nome dei file con il titolo del contenuto (issue #1693)
 +  * Trigger applicativi di classe: clientMessage non valutato su beforeDelete() afterDelete() (issue #1768)
 +  * PropertySet export risolto errore assenza label su header colonna export (.xlsx, .csv) con attributo del propertySetCodeField popolato da vista (issue #1767)
 +  * Extrattore SQL prevenzione errore uk cod_extraction_model duplicati (adesso viene usata seq_fb) (issue #1766)
 +  * Gestiti gli errori su riapertura stesso progetto, dopo cambio utente, per progetti che nel loro xml hanno espressioni #​{gw_activeUser} and ${gw_activeUser} (issue #1765)
 +  * neutralizzata spring circular dependency fra GwClassListService fra GwGroovyScriptEngineService (issue #1763)
 +  * scheda layout2D risolto errore su azione '​applica filtri lista in mappa..'​ quando in lista c'è un almeno filtro con operator 'is null' o 'is not null' (issue #1762)
 +  * PropertySetWidget errore su import csv update quando ci sono dati parziali (issue #1759)
 +  * gwWidget errore .gwGetValue() detailContainer._detailMode='​visualize'​ concheckRequiredServerSide true (issue #1758)
 +  * gwWidget risolti errori widget .gwGetValue() con valuetostore con char ' in dettaglio visualizzazione (checkbox, combobox, dbComboBox, dbimageComboBox,​ dbSuggestBox,​ dbWindoList,​ ExternalTable) (issue #1758)
 +  * Documentale:​ errore nel conteggio delle cartelle figlie su Documentale tale per cui la cartella risulta sempre non vuota (issue #1756)
 +  * aggiustati tooltip dojo su button toolbar dettalio e liste (issue #1754)
 +  * PropertySet export xlsx per consultazione adesso mette la label della Property come header (e non jsonKey) (issue #1752)
 +  * Content Handler Rest: gestione visualizzazione e salvataggio nome utente Geoweb che modifica o carica il file e data; (issue #1744)
 +  * QueryBuilder propertySet con oracle errore Caused by: oracle.jdbc.OracleDatabaseException:​ ORA-01722: numero non valido (issue #1751)
 +  * gwClassDetail multiple widget date e widget time risolti errori con valore number in ms (issue #1749)
 +  * gwClassDetail multiple tutti i widget non visualizzavano il valore comune (issue #1748)
 +  * gwClassDetail multiple widget checkbox non visualizza same value true e non risponde ai comandi multiple (issue #1747)
 +  * importCsv con importType2 e json PropertySetWidget non aggiornava in caso di property_code camelCase (issue #1746)
 +  * propertySet widget aggiunta normalizzazione valori date in ingresso (da stringa vuota ""​ a null) su database oracle. riscritto querybuilder oracle per ignorare date malformate (issue #1743)
 +  * Aggiunta autenticazione NTLM per Sharepoint e miglioramenti alla classe GwSharepointSession per gestire bene la chiusura degli oggetti response (issue #1742)
 +  * widget dbWindowList errore order by in base alla query base (issue #1741)
 +  * widget linkListNam aggiunto alias a1 su query clause tabella associazione per risolvere errore campo ambiguo in base ad implementazione (issue #1736)
 +  * widget attachmentRest / widget attachments errore gestione path nullo (issue #1735)
 +  * GwClassFilter con attributi JSON su ORACLE 19 evitato errore ORA-40561: percorso non valido nella clausola di percorso nidificato di JSON_TABLE (issue #1733)
 +  * widget restDocument in gwClassList evitate voci di menu ripetute su click ravvicinati (issue #1732)
 +  * GeowUsersTrigger username aggiunti nullcheck e toLowerCase() (Keycloak compatibility) (issue #1731)
 +  * gw-pec postgres/​mssqlserver Error attempting to get column '​pec_attachs_blob'​ from result set. Allineati anche implmentazioni oracle e mssqlserver dei metodi sended() error() che impostano pec_stato e pec_esito (issue #1727)
 +  * scheda gwDynamicTimeline evitate ripetizioni informazioni nei tooltip con certe configurazioni (issue 1720)
 +  * gwClassList - parametri filters/​staticFilters:​ conversione automatica da elementi singoli ad array (issue #1719)
 +  * gw-bim-visualizer errori creating beans mapper (sqlServer invece che sqlserver) (issue #1714)
 +  * scheda gwOrgChart export pdf non funziona (solo con compressed true) (issue #1713)
 +  * scheda gwOrgChart risolto errore export png (issue #1712)
 +  * import csv doc risolto errore su apertura documentazione:​ JRFontNotFoundException:​ Font "​DejaVu Sans" is not available to the JVM (issue #1711)
 +  * GwClassListService.updateTransactionHandling() NullPointerException (issue #1709)
 +  * vecchia classificazione risoltin errori POST not allowed su chiamate POST (issue #1708)
 +  * leafItemHierarchicalFilterMenu con filteringCriteria ComboBox non visualizza le label (issue #1706)
 + 
 +=== NEW FEATURES ===
 +  * Nuova GwAction 'Posta in sostituzione del bottone Nuovo (in Lista) (DACL CHECK)'​ componenti che la valutano:
 +    * gwClassList
 +    * widget LinkList
 +    * widget ChildList
 +    * widget ExternalTable
 +    * dialog con lista generica ExternalTable
 +    * albero gw-tree-collection (issue #1778)
 +  * DACL adesso risolvono con  null (SQL/SpEl exp friendly) tutte le espressioni irrisolte #{} ${} per campi locali e variabili in sessione (in aggiunta alle variabili d'​ambiente) (issue #1776)
 +  * leafItemListFilters nuovo parametro attributeToOrderBy,​ String, optional, default null. Name dell'​attributo da usare per filtrare. In sua assenza continua ad essere usato attributeToFilter (issue #1775)
 +  * leafItemListFilters nuovo parametro onRootClickGwActionName. String, optional. Name della gwAction, presente nella Class con nome className, che verrà eseguita al click sul nodo root al posto dell'​apertura di lista standard (non parzializzata). (Permessi statici valutati) (issue #1774)
 +  * leafItemListFilters nuovo parametro onClickGwActionName. String, optional. Name della gwAction, presente nella Class con nome className, che verrà eseguita al click sui nodi  parzializzati al posto dell'​apertura della lista prefiltrata standard. (Permessi statici valutati) ​ (issue #1773)
 +  * aggiunto valutatore SpEL – Spring Expression Language in formatHashGraphsExpression(..) usato in:
 +    * projet xml
 +    * dashboard set xml
 +    * DACL
 +    * activeMap delle gwMap
 +    * defaultvalue widget
 +    * queryClause LinkList/​LinkListNam
 +    (issue #1769)
 +  * Nuove funzionalità configurabili per azione download massivo fascicolo: l'​azione JS accetta ora i parametri ​
 +    * actionParams (che a loro volta contengono:<​code>​
 +         boolean autoFileName = true;
 +     boolean includeXls = true;
 +     boolean includeAttachments = true;
 + boolean useBuildingLevel = true;
 + boolean useArchiveLevel = true;
 + boolean useCategoryLevel = true;
 + boolean useSubcategoryLevel = true;
 + boolean useCodContentLevel = true;
 + int codContentLevelLabelType = 1; //1--> file_name, 2--> cod_content,​ 3 --> name_content,​ 4---> computed_name ​          
 + int fileNameLabelType = 1; //1--> file_name, 2--> cod_content,​ 3 --> name_content,​ 4---> computed_name)</​code>​
 +    * oldBehaviour (default true) (issue #1693)
 +  * Sviluppate api di publish eventi intra modulo (con RabbitMQ) (issue #1602)
 +  * Nuova azione selezionati in lista (posto nella toolbar) check selection, che si abilita/​disabilita automaticamente in base alla selezione (issue #1755)
 +  * PropertySetWidget server side validation - aggiunta validazione tipo di dato date e migliorata quella per il tipo string (issue #1739)
 +  * gwAttribute aggiunta proprietà isHiddenInList per gestire facilmente la visibilità in gwClassList (issue #​1734) ​
 +  * gwClassList widget Image performance client side: abilitare cache del browser (issue #1730)
 +  * gwClassList widget Image performance server side: evitato calcolo thumbnail al fine di limitare l'​eccesivo uso di risorse (issue #1729)
 +  * configuration.properties nuova key workflow.databaseSchemaUpdate per disabilitare creazione tabelle act_ in avvio (issue #1724)
 +  * Autenticazione mista: fase 1 inserito un nuovo campo del modello dati degli utenti "​Credenziali SSO" per gestire l'​autenticazione mista.
 +    * se "​Credenziali SSO" non ha la spunta (is_external_sso = 0) --> comportamento di default. L'​utente è gestito da Geoweb (che lo inserisce in keyCloak)
 +    * se "​Credenziali SSO" ha la spunta (is_external_sso = 1) --> l'​utenza è gestita da un sso esterno --> Geoweb non lo inserisce in keyCloak (issue #1722)
 +  * nuovo modulo gw-pec (stesso versionamento framework)<​code>​
 + <​dependency>​
 + <​groupId>​com.geowebframework</​groupId>​
 + <​artifactId>​gw-pec</​artifactId>​
 + <​version>​${com.geowebframework.version}</​version>​
 + </​dependency></​code>​ (issue #1710)
 +  * menu Dashboardset adesso è possibile configurarlo in tutte le posizioni (issue #1705)
 +  * widget linkListNam aggiunto parametro hideNewIgnorePermissions per classe target (issue #1703)
 +  * api js gwChangeElementsInSessionWthExternalTable() aggiungere parametro applyOnRowClick per scelta ambito con solo un click sulla riga (issue #1689)
 +  * gwClassList button tre puntini '​...'​ (moreActions)
 +    * colonna spostata in fondo a tutte
 +    * i puntini diventano verticali e viene rimossa la freccia dropDown (issue #1684)
 +
 +=== NEW COMPONENTS ===
 +  * Nuovo widget Image Rest (issue #​1480)   ​
 +    ​
 +
 +
 +
 +===== Versione 4.8.1 =====
 +rev 741507515193f42e361a71540c05813fc185d8c1
 +
 +date 2025/12/01
 +
 +=== BUGFIX ===
 + * importCSV() non notificava errori bloccanti sul formato del file csv (issue #1656)
 +
 +=== NEW FEATURES ===
 + * widget AttachmentRest aggiunto parametro countField che, se presente, è usato per aggiornare il numero di allegati string (issue #1692)
 + * widget AttachmentRestWidget/​Attachments aggiunti nuovi parametri (boolean, default false) per nascondere (a prescindere dai permessi): hideCreateFolder,​ hideSearch, hideCopyTo, hideMoveTo, hideRenameFolder (issue #1668)
 + * widget contentHandlerRest e DocumentRest nuovo parametro allowUpdateWithNewName,​ boolean default true. Quando a false nega l'​update con nuovo nome. Check clientside e serverside. (issue #1667)
 + * widget PropertySet property '​string'​ nuovi parametri maxLength (check client+server side) e regex (check clientside) (issue #1657)
 + * widget PropertySet nuovi parametri:
 + * checkUnknownPropertiesServerSide boolean, optional, default true. 
 +   Quando posto a true abilita il controllo quando si utilizzano i metodi insertClassRecord()/​updateClassRecord() sulla coerenza delle key con la definizione del PropertySet,​ e lancia eccezione in caso di discrepanze (vedi anche avoidExceptionOnFailedPropertyCheckServerSide sotto). Non viene fatto un check sulla coerenza del tipo di valore
 + * avoidExceptionOnUnknownPropertiesServerSide boolean, optional, default true. 
 +   Valutato solo quando checkUnknownPropertiesServerSide è true. Quando posto a true, nell'​utilizzo dei metodi insertClassRecord()/​updateClassRecord(),​ evita di sollevare una eccezione in caso di mancata aderenza alla definizione del PropertySet,​ ma si limita a rimuovere le key non riconosciute (issue #​1658) ​
 +
 +=== NEW COMPONENTS ===
 + * widget Content Hydra - nuovo widget di gestione documentale che gestisce più copie per uno stesso contenuto e permette di interfacciarsi con servizi documentali esterni (ad esempio servizi di firma o di editing online).   ​
 +
 +=== DEPRECATED ===
 +
 +=== REFACTORS ===
  
 ===== Versione 4.8.0 ===== ===== Versione 4.8.0 =====
  • gwplatform/release_notes.1760703569.txt.gz
  • Ultima modifica: 2025/10/17 14:19
  • da francesco.peverini