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 | ||
|
gwplatform:release_notes [2025/08/01 17:11] francesco.peverini |
gwplatform:release_notes [2026/04/03 17:09] (versione attuale) giorgio.scali [Versione 4.8.2] |
||
|---|---|---|---|
| Linea 24: | Linea 24: | ||
| ^ versione Geoweb ^ versione MapGuide ^ ecc. | ^ versione Geoweb ^ versione MapGuide ^ ecc. | ||
| + | | 4.8.x | 3.1.1.9378 | ... | | ||
| | 4.7.x | 3.1.1.9378 | ... | | | 4.7.x | 3.1.1.9378 | ... | | ||
| | 4.6.x | 3.1.1.9378 | ... | | | 4.6.x | 3.1.1.9378 | ... | | ||
| Linea 33: | Linea 34: | ||
| | 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 ===== | ||
| + | rev 3c061df4340a788140b6d837fd5df6f4287c820c | ||
| + | |||
| + | date 2025/10/17 | ||
| + | |||
| + | === BUGFIX === | ||
| + | * widget con isDefaultOrderBy false non ordinabili in lista di classe (issue #1633) | ||
| + | |||
| + | === NEW FEATURES === | ||
| + | * widget codeEditor nuovo parametro beautify che indenta automaticamente file json,html,js (issue #1635) | ||
| + | * widget aggiunta proprietà isOrderable in xml di widget. Se assente viene valutato isDefaultOrderBy (issue #1633) | ||
| + | * PropertySetWidget aggiunto nuovo parametro checkRequiredServerSide, boolean, default true. Aggiunge validazione lato server per le json key required (issue #1649) | ||
| + | * aggiunta possibilità di impostare in avvio le variabili d'ambiente contenute in system-variables.properties (issue #1646) | ||
| + | * gw-bim-visualizer - Il plugin sostituisce il vecchio plugin gw-3d-visualizer, e permette di visualizzare i modelli BIM in formato IFC, GLTF e GLB. Il plugin è stato aggiornato per supportare le ultime versioni delle librerie Three.js e per migliorare le prestazioni e la compatibilità con i modelli BIM più recenti. (issue #1570) | ||
| + | * gw-mongo-collection - Il plugin permette di gestire le collezioni MongoDB all'interno del framework Geoweb. Fornisce un'interfaccia per la lettura di documenti nelle collezioni MongoDB come lista Geoweb. (issue #1574) | ||
| + | |||
| + | === NEW COMPONENTS === | ||
| + | * Il plugin gw-bim-visualizer è stato introdotto come plugin unico per la gestione dei modelli 3D e nuvole di punti | ||
| + | |||
| + | === DEPRECATED === | ||
| + | * Il plugin gw-3d-visualizer è stato deprecato e sostituito da gw-bim-visualizer | ||
| + | * Il plugin gw-lite-visualizer è stato deprecato e sostituito da gw-bim-visualizer | ||
| + | |||
| + | ===== Versione 4.7.10 ===== | ||
| + | rev de79e2255e30f41dbee2618b630652ecfde725f5 | ||
| + | |||
| + | date 2025/10/07 | ||
| + | |||
| + | === BUGFIX === | ||
| + | * Estrattore SQL - fix preview rotta (da 4.7.4) (issue #1644) | ||
| + | * OracleJSONTypeHandler errore setNonNullParameter() con CLOB in Oracle (issue #1643) | ||
| + | * GwNotificationSettings aggiunto nullcheck su String getParameterByName(String parameterName) (issue #1642) | ||
| + | * widget externatable risolti malfunzionamenti hideNewIgnorePermissions hideDeleteIgnorePermissions (issue #1639) | ||
| + | * widget dbComboBox errore quando non ha valore impostato (solo con datatype INTEGER/NUMBER) (issue #1637) | ||
| + | * NullPointerException com.geowebframework.dataservice.QueryBuilderService.integratePopulateQueryTableMap (issue #1634) | ||
| + | * export di file con attributi JSON risolto bug per cui metteva troppe colonne nel file esportato (xlsx,csv,shp) anche quelle delle key derivanti da record esterni al filtro (issue 1632) | ||
| + | * widget dbImageBombobox escape char accentati ùéàò.. (issue #1628) | ||
| + | * widget attachments/scheda gwAttachmentsSheet risolto errore nella presentazione dei record quando sono più di 20 (issue #1626) | ||
| + | * widget contentHandlerRest DOC fix errori post issue #1548 (issue #1624) | ||
| + | * gw-upload-manager: Modificato il metodo che recupera le entità nelle funzioni di sincronizzazione da clientcad (issue #1623) | ||
| + | * openGwClassFilterFloatingPane() errore javascript (issue #1622) | ||
| + | * queryBuilder risolto errore ORACLE ORA-22901: impossibile confrontare gli attributi VARRAY o LOB di un tipo oggetto (issue #1621) | ||
| + | |||
| + | === NEW FEATURES === | ||
| + | * CMS: Nuove funzionalità di backend per consultare file e immagini senza attributi valutando permessi su classe e progetto (issue #1638) | ||
| + | * configuration.properties aggiunto nuovo parametro gwa.role.disabled, default false (issue #1641) | ||
| + | * Nuova funzione di backend per recuperare le informazioni utili alla rappresentaizone della toolbat in contesti no gw-metadata (issue #1636) | ||
| + | * Estrattore SQL adeguamento logiche parzializzazione risorse di prodotto/predefinite e custom/utente (issue #1625) | ||
| + | * DACL introdotto supporto in filtri custom a variabili di ambiente GWENV_* e codModule del configuration.properties (issue #1616) | ||
| + | |||
| + | |||
| + | ===== Versione 4.7.9 ===== | ||
| + | rev ef65c5f4fb0f7ab2dc2e353ad5d916e82d8c8014 | ||
| + | |||
| + | date 2025/09/11 | ||
| + | |||
| + | === BUGFIX === | ||
| + | * Aggiustata visualizzazione dei layer con sfondo planimetrico (issue #1314) | ||
| + | * widget gwGallery - report pdf - fix ordinamento (issue #1607) | ||
| + | * Download report dossier pdf: aggiunto check mimeType contenuto e allegati e inserito check null su valori selezionati su azione gwPdfDossierDownload() (issue #1606) | ||
| + | * gwClassFilter propertySetWidget adesso popola le property al cambiamento di valore del detentore del codice della famiglia solo quando anche il relativo operator è '=' oppure 'in' (issue #1619) | ||
| + | * scheda layout2D messa a tutto schermo fa vedere menu navigazione funzioni intra framework (issue #1620) | ||
| + | * gwClassFilter windowChoice quando operatore è 'IS NULL' o 'IS NOT NULL' non disabilitava il button che apre la window (issue #1618) | ||
| + | * gwClassFilter con propertySetWidget cambiava ordine relativo anche degli altri widget (issue #1617) | ||
| + | * widget codeEditor non salva il value quando da valorizzato si passa a stringa vuota (issue #1614) | ||
| + | * export xlsx per consultazione: adesso viene sempre la jsonKey come intestazione di colonna per gli attributi variabili (issue #1613) | ||
| + | |||
| + | === NEW FEATURES === | ||
| + | * Nuova api js gwPdfDossierDownload() che esegue download in formato pdf dei documenti che sono associati al fabbricato e di cui si va stampare il dossier unico. Vengono inseriti anche eventuali allegati se presenti. (issue #1556) | ||
| + | * widget gwGallery nuovo button che lancia procedura di creazione PDF a partire da una galleria di immagini (issue #1550) | ||
| + | |||
| + | |||
| + | ===== Versione 4.7.8 ===== | ||
| + | rev 4ce335defdefd75b49956f2482a6713194e634d1 | ||
| + | |||
| + | date 2025/09/01 | ||
| + | |||
| + | === NEW FEATURES === | ||
| + | * deploy automatico da database delle risorse MapGuide personalizzate per cliente (serve nuova tabella gwd_gw_custom_package) (issue #1598) | ||
| + | |||
| + | |||
| + | ===== Versione 4.7.7 ===== | ||
| + | rev 1bbf64a091b4ef5eeb38018e826e76069b175c9a | ||
| + | |||
| + | date 2025/08/22 | ||
| + | |||
| + | === BUGFIX === | ||
| + | * scheda Layout2D - layer dinamici - adesso la folder del gruppo è sensibile a flag expandInLegend di MapGuide Maestro (issue #1612) | ||
| + | * evitati errori in avvio quando cms.api.enabled=false o mancante (issue #1611) | ||
| + | * creato servizio estensibile (GwPlatformsService) per disaccoppiare alcuni utilizzatori (come gw-dossier-content-navigation-dashboard) del servizio GwKeycloackPlatformsService da Keycloak (issue #1610) | ||
| + | * gwClassFilter risolto ERRORE: la funzione lower(timestamp without time zone) non esiste (issue #1604) | ||
| + | * api js openGwClassDetailDialog() non viene applicata initialsValuesMap (issue #1603) | ||
| ===== Versione 4.7.6 ===== | ===== Versione 4.7.6 ===== | ||