12 Changelog
In the following paragraphs we've listed an aggregated result of changes specific to this version of Oskari. Following the links below you can access full notes of different components.
12.1 Frontend release notes
For a full list of changes see: https://github.com/oskariorg/oskari-frontend/milestone/58?closed=1
12.1.1 Feature tools
Layers can now include "feature tools". This means that additional functionalities can be injected to the user-interface that allow the user to pass a reference of a feature to another functionality without hard-coding connections between functionalities.
AbstractLayer in oskari-frontend now includes functions: addFeatureTool(tool), setFeatureTools(toolsList), getFeatureTool(toolName) , getFeatureTools().
The feature tools use the same Oskari.mapframework.domain.Tool class as layer tools for providing a name, icon and a callback for the tool.
The tools (when available) are currently listed for each feature of a layer on the:
- infobox shown by GetInfoPlugin (triggered by clicking the feature on map)
- on the feature data table.
The functionality is flexible so the tools could also be shown in other places that list features from layers. The callback receives both the layer id and the feature id of the clicked feature.
This allows for example the myfeatures functionality to show an edit button on the users own features when they are clicked on the map.
The same could be done for myplaces or opening the content-editor on a feature from map clicks, but those have not been implemented at this point.
12.1.2 MyFeatures functionality
Users can now add, remove and edit features, including geometry, on the myfeatures layers.
Adding a new layer and defining properties the features on the layer should have is now possible. A default field name is added automatically with localizations for languages en, fi and sv to new myfeatures layers to streamline the process of adding layers and make it more user-friendly. Localizations for other languages can be easily added for the default field when needed. Note that users can delete the automatically added field, but automatically adding a field simplifies the onboarding of the new functionality, bringing it a bit closer to the preset fields that myplaces functionality had for new layers.
The user can now also:
- localize the labels shown for end-users for the properties
- select how to format the feature property values (show URL as an image etc)
- select which properties are shown (importing a dataset might bring in properties that the user doesn't care about)
These layer property selections are now done with the same component that admins can use for vector layers. However we are looking at improving these functionalities to make them more user-friendly for myfeatures and possibly for admins as well in the future. We are removing some features from users that admins can still use so the user-interface won't be exactly the same in both like they are now on Oskari 3.3.0.
Note that the functionality currently re-uses icons from myplaces/userlayer and has a "(beta)" in the tab-title on mydata so it's not ready to be used on production yet, but the updated version is available for testing like it was on the 3.2 version by enabling the myfeatures bundle on your application.
12.1.3 Other changes
- Touch-based devices are now easier to use for selecting / clicking a vector feature on the map.
- Allow applications using oskari-frontend as dependency to use the Jest-config located under oskari-frontend.
- Fixed an issue with timeseries slider when there are no times in the series.
- Fixed an issue where, after deleting the last custom style of a layer, left the name of the deleted style showing on the "current style".
- Fixed an issue with layer administration and search on the dataprovider selection.
- Fixed an issue when creating new users (https://github.com/oskariorg/oskari-documentation/issues/138)
12.1.4 oskari-ui components
There is a new component FeatureEditor in oskari-ui that is based on the feature editing tool from the content-editor bundle. This editor is used when editing features on myfeatures layers, but the end-goal is that both content-editor and myfeatures could use the same component for feature editing (and possibly other functionalities requiring feature editing as well).
Due to AntD deprecations we have removed the <Option> component (used with <Select>) from oskari-ui. Instead of using:
import { Select, Option } from 'oskari-ui';
...
return <Select><Option/></Select>Use this instead:
import { Select} from 'oskari-ui';
...
const options = [{
'value': 'actual value',
'label': 'label to show for users',
}];
return <Select options={ options } />The options will also have a data-value attribute attached to make it easier to detect correct elements for automated testing.
See https://github.com/oskariorg/oskari-frontend/pull/2925 for details.
12.1.5 Library updates
- babel-core and related libs 7.28.4 -> 7.29.x
- antd 5.27.5 -> 5.29.3
- ol 10.6.1 -> 10.8.0
- ol-mapbox-style 13.1.0 -> 13.4.0
- cesium 1.135.0 -> 1.39.1
- core-js 3.46.0 -> 3.49.0
- testing-library 16.3.0 -> 16.3.2
- dompurify 3.3.0 -> 3.3.3
- eslint 3.37.0 -> 3.39.4
- fs-extra 10.0.1 -> 11.3.4
- jest 30.2.0 -> 30.3.0
- sass 1.77.8 -> 1.98.0
- styled-components 5.3.3 -> 5.3.11
- webpack 5.102.1 -> 5.105.4
- numerous other plugins related to build tools (compare package.json for details)
Removed libraries from oskari-frontend/libraries. If you need these, use them from npm directly or you can add them to your own application repository for local references. They are no longer used by oskari-frontend and as such the fiels have been removed from the directory. Note that the libraries themselves are used, but they are fetched from npm and referenced in package.json:
- jsts
- jsonpatch
12.2 Server release notes
For a full list of changes see: https://github.com/oskariorg/oskari-server/milestone/57?closed=1
12.2.1 Admin functionalities
- Improvements to Capabilities parsing for (WMS) service scale denominator handling and metadata id detection.
- Service coverage bounding box for layers is now updated from metadata service (when available and linked) when a map layer is saved by admin. Previously coverage bbox was only updated as a nightly scheduled task that was problematic with faulty coverage bbox.
- User administration: improved search functionality.
12.2.2 Bug fixes
- Fixed an issue that prevented paginated results from being read/used from OGC API Features APIs.
- Content-editor/WFS-T: fixed an issue with JSONObject.getString() API change that blocked for example numeric values from being processed correctly and added handling for null values.
12.2.3 New functionality
- Import dataset/userlayer: added support for GeoJSON format. It's now possible to export myplaces as GeoJSON and import them as userlayers and/or myfeatures.
12.2.4 Myfeatures functionality
Lots of tuning and tweaking on the server side. The initial functionality is close to being finalized from server perspective.
- Dropped special fid handling for myfeatures
- Removal of dates when loading features (used as metadata on database)
- Fixes, cleanup and improvements for feature editing server side functionality
- Improvements for style handling
- Added export functionality (features as GeoJSON)
- Added import for GeoJSON
Upcoming changes will be including migration of data from myplaces and userlayers into myfeatures that will be done as separate Flyway-migration modules so they can be used as is or tweaked per service/application needs. The migration will also migrate references to the layers on embedded maps. It's likely that the next Oskari version (3.4) will switch from myplaces and userlayers to myfeatures. While myplaces/userlayers will work with the next version, any new development will be done for the myfeatures functionality. It's likely that myplaces and userlayers would be removed from the codebase in the next version after 3.4 so they can be considered deprecated and on their way out.
12.2.5 Library updates:
- Spring framework 6.2.11 -> 6.2.17
- Spring security 6.5.5 -> 6.5.9
- Spring session 3.5.2 -> 3.5.5
- GeoTools 33.2 -> 34.2
- FlywayDB 11.12.0 -> 11.20.3
- Log4J 2.25.1 -> 2.25.3
- Resilience4j 2.3.0 -> 2.4.0
- Jackson 2.20.0 -> 2.21.1
- commons-io 2.20.0 -> 2.21.0
- JSoup 1.21.2 -> 1.22.1
- Tomcat 10.1.47 -> 10.1.52
- Postgres JDBC 42.7.7 -> 42.7.10
- JUnit 5.13.4 -> 5.14.3
- XmlUnit 2.10.4 -> 2.11.0
- commons-fileupload2-jakarta-servlet6 2.0.0-M4 -> 2.0.0-M5
- h2 2.3.232 -> 2.4.240
- h2gis 2.3.232 -> 2.2.5
- pdfbox 3.0.3 -> 3.0.7
- poi-ooxml 5.4.1 -> 5.5.1