[Oskari-user] Oskari 2.11.0 released!

Mäkinen Sami sami.makinen at maanmittauslaitos.fi
Thu Jun 15 06:41:59 PDT 2023


Good news everyone,

The latest and greatest version 2.11.0 of Oskari has been released! It is now available on GitHub (https://github.com/oskariorg) and Oskari.org Maven repository. The sample application package has been updated on the download link in Oskari.org (https://oskari.org/download) and http://download.osgeo.org/oskari/. As always you can take a peek at the latest release at https://demo.oskari.org/.

For end-users the biggest change is that styling for vector layers can now be saved. Previously the styles could be changed at runtime, but the styles were not stored. Now they can be used in embedded maps and links etc. For Oskari customization you can now replace the flyout based search with one that is directly on the map (as previously seen on embedded maps). This search is now fully fledged to work as geoportal search as well and since it's the same tool the embedded maps benefit from these improvements as well. We have also taken first steps on making the geoportal UI more mobile friendly. And we have continued working out things under the hood to improve maintainability and developer experience when working with the publisher functionality and map plugins.

Release Notes
Oskari-frontend

For a full list of changes see: https://github.com/oskariorg/oskari-frontend/milestone/42?closed=1

Vector layer styling

End-users can now save styles for vector layers! Defining styles for vector layers was possible before, but they were runtime only and lost on page refresh. Now the styles can be saved which means they are restored when logged in and can be used in embedded maps and links etc. End-users have a new tab on mydata to manage styles like other user generated content. Admins also have an improved UI for configuring styles.

Improved search UI

The SearchPlugin implementation has been improved to support functionalities that have been previously available only on the geoportal search UI. This means you can have the same search UI on geoportal apps and on embedded maps and provide users easier access to search. This also means that the search UI on embedded maps has been improved. The plugin is a bit larger than before to accommodate mobile users when it's showing the search input and minimizes to search icon when the map is used.

The plugin has new configuration options (for database/appsetup) on how to handle search result click and for enabling user to select channels (backend services) which are used for searching:

  *   #2166<https://github.com/oskariorg/oskari-frontend/pull/2166>
  *   #2126<https://github.com/oskariorg/oskari-frontend/pull/2126>

The search results are now shown per channel which enables adding different kinds of channels for the search like searching for map layers, statistical indicators etc as the channel result can be handled differently based on result type. The channel with most results is shown first.

Metadata search has been improved to detect if the search flyout is present. The metadata search will create its own "tile"/menu item on the main menu if the flyout is not available and metadata search can't be injected into it.

Initial mobile support changes for geoportal

The frontend now uses 650px as breaking point on both width and height for transforming to "mobile mode". The element size that is tracked is the root element of Oskari. Previously the measurements were 500px x 400px and the monitored element was the map element.

  *   Added Oskari.util.isSmallScreen() so mobile breakpoint is managed in one place. Oskari.util.isMobile() uses this in addition to determining user device.
  *   Flyouts in mobile mode now cover the screen and are not draggable.
  *   Flyouts in general respect the maximum screen space available and can't be bigger than the available screen space.
  *   Search flyout now closes in mobile mode when search result is clicked so user can see the result on map.
  *   Layer listing has been modified to allow elements of the UI to work with smaller screen.
  *   Legend for statistical data now handles smaller screens by NOT growing out of screen.

Publisher

  *   Map layer related tools and controls have been moved under the map layer accordion panel to make them easier to find.
  *   Tools that are only valid for RPC-based apps are now grouped under a new RPC-tools panel.
  *   The publisher tools that are the under these new panels (RCP-tools and Map layers) have been rewritten as React-implementations.
  *   More tools can now be relocated on the publisher like the tools for statistical data functionalities.
  *   Vector feature hover styles are now disabled when tools are dragged on publisher.
  *   The fiddly left/right hand toggle has been replaced with "switch sides" button that swaps tools from left to right and vice versa.

On the developer side, the publisher tool interface/API has been streamlined and unnecessary functions have been removed. This might affect instances that have added their own application specific publisher tools:

  *   Documentation added: https://oskari.org/documentation/features/publisher/tools
  *   #2164<https://github.com/oskariorg/oskari-frontend/pull/2164>
  *   #2180<https://github.com/oskariorg/oskari-frontend/pull/2180>
  *   publisher tool handlers can now implement onLayersChanged() function to get notified of layer changes: #2191<https://github.com/oskariorg/oskari-frontend/pull/2191>
  *   tool.isDiplayed() now receives the embedded map payload so it can determine if the tool should be shown or not based on the data
  *   New base class for tools: #2218<https://github.com/oskariorg/oskari-frontend/pull/2218>

ShowFilteredLayerListRequest can now be used to open the selected layers tab of the geoportal layer listing UI. This is used by the publisher so we can use the existing UI for all layer related operations.

Other UI related changes

  *   Layer admin UI fixes for capabilities scheduling and handling for invalid scale limits
  *   Layer analytics UI for admins now includes quality of life improvements like searching
  *   User admin (admin-users bundle) has been reimplemented with React.js and includes a small facelift and improves the functionality in instances with a lot of users.
  *   Time series UI has been improved (and we'll continue working on theme support on these)
  *   The layer comparison control (swipe-tool) and the crosshair on map is now shown under the infobox-popup instead of on top of it.
  *   Fixed a bunch of broken tooltips
  *   Disabled statistical data histogram from being edited when classification is disabled.
  *   Statistical regions are now sorted on the user data input form.
  *   Some SVG-icons were not shown properly (mostly on Safari or zoomed in pages) - these have been fixed
  *   Theming:
     *   Badge component supports theming
     *   User style forms like dataset import and adding additional layers for myplaces now uses theme color as default color
     *   Printout sidebar now respects theming colors

Map plugin changes for developers

Plugins no longer need to care if they are in publisher "drag mode". Previously disabling clicks were handled by plugins and the drag handle was added by plugins. Now the publisher handles all of this so creating new plugins is much easier and less error-prone. Overall they work much better out of the box with the publisher functionalities and makes developer experience more enjoyable.

Changes to map plugin interface/API:

  *   Documentation: https://oskari.org/documentation/features/map/mapplugin
  *   Added new functions like:
     *   resetUI() (to clean up any popups/menus for major UI changes)
     *   refresh() called when the UI needs to be updated (replaces changeToolStyle(), redrawUI() and several other similar functions for cleaner developer experience)
     *   More details in #2200<https://github.com/oskariorg/oskari-frontend/pull/2200>
  *   Removed old toolstyle references from plugins and mapmodule (using theme instead)
  *   Removed unused functions from plugins and mapmodule (mostly relating to old "toolstyle"): #2163<https://github.com/oskariorg/oskari-frontend/pull/2163>
  *   Changes to how plugin visibility is handled: #2201<https://github.com/oskariorg/oskari-frontend/pull/2201>

Layer handling changes for developers

The layers loaded for listing purposes no longer includes all the data for the layer. Instead a DescribeLayer call to the server is done to load things like vector layer styles and WMTS tilematrices etc. Layers now have handleDescribeLayer() that can be overridden in layer types to add spcecific handling. Going forward DescribeLayer will be improved to make similar routes (like GetWFSLayerFields for WFS and GetLayerCapabilities for WMTS) unnecessary and this work has already started on this version.

The AbstractLayer baseclass now has more developer friendly functions:

  *   isVisible() returns the status if the layer visibility has been changed by the user
  *   isVisibleOnMap() can be used to detect if the layer is actually shown on the map. This takes into account:
     *   if the user has hidden the layer
     *   if the map is out of the scale range for the layer
     *   if the layers coverage area is not on the map viewport
     *   if the layer can't be shown (due not being supported like 3dtiles on non-3D map)

Other changes for developers

  *   Upgraded dependencies to enable NodeJS 16
     *   node-sass prevents using NodeJS 18 at the moment
  *   Upgraded AntD - this might require changes to app specific code: #2165<https://github.com/oskariorg/oskari-frontend/pull/2165>
  *   Changed moment.js to day.js - this might require changes to app specific code
  *   Upgraded D3 and it is now linked in package.json/used through npm install
  *   The printout code has been cleaned #2144<https://github.com/oskariorg/oskari-frontend/pull/2144>
  *   Table implementations are now more consistent: #2151<https://github.com/oskariorg/oskari-frontend/pull/2151>
  *   Oskari.util.formatDate() is now used for time formatting through out the functionalities
  *   Fixed an error on coordinate tool (sometimes sending coordinates to server with separator , instead of .)
  *   Fixed an issue with markers where trying to hide an already hidden marker resulted in an error where the marker couldn't be restored on screen
  *   Added error handling when a layer can't be shown on the map: #2234<https://github.com/oskariorg/oskari-frontend/pull/2234>
  *   Popups are no longer attached to document body, but under Oskari root element.
  *   Popup (and MovableContainer) now detects size changes and tries to keep the container on screen. So if the content grows beyond screen viewport the container is moved to accommodate content change.
  *   Lots of popups opened by toolbar tools have been migrated from jQuery to React.
  *   Added/improved components:
     *   MovableContainer (oskari-ui/window) acts like popups, but don't have the header part of popups. Can be used to add a draggable object on the screen. Used for example on the legend for statistical data.
     *   Sidebar for publisher, printout etc functionalities
     *   Flyout now has a new option resizable to make it resizable by user and
     *   New (themed) Header component that is used for Popup and Sidebar
     *   IconButton component includes the common icons used on buttons with tooltips, confirmation dialogs etc.
     *   CopyField and CopyButton for system clipboard handling

Oskari-server

For a full list of changes see: https://github.com/oskariorg/oskari-server/milestone/45?closed=1

Vector layer styles

  *   End-users can now store styles for vector layers!
  *   The styles users create are public/anyone can reference them. This makes them work with embedded maps in a way that users expect them to work. This doesn't mean that users styles are listed to other users in the geoportal UI.
  *   New table for storing styles: oskari_maplayer_style
  *   Styles have been migrated from oskari_maplayer.options
  *   Instance default style is also stored in the table: #932<https://github.com/oskariorg/oskari-server/pull/932>
  *   Styles have been removed from layer options from the layer listing functionality. Frontend is expected to fetch them by calling DescribeLayer route.
  *   Printing functionality has been migrated to use styles from the database

User/role management

  *   User listing is now fetched in pages so instances with lots of users can use this without crashing the browser
  *   Users can now be searched as well as listed
  *   Role names can now be edited
  *   Admin user management now uses the same rules to validate users as end-user registration
  *   Additional metadata about roles is sent for admin user interface to make admins life easier (can be used to hide guest role/disable edit and delete for built-in roles etc)
  *   Instance admins can now configure oskari-ext.properties to disable editing user data. This is convenient if the user data in Oskari is updated using some external system. User roles can still be assigned for users (#944<https://github.com/oskariorg/oskari-server/pull/944>):

oskari.user.external=true

Search channel options

Search channels with code based adapters (non-WFS search channels) can now be configured with a localized name and desciption on oskari-ext.properties: #953<https://github.com/oskariorg/oskari-server/pull/953> Localization is not required/these can be configured with or without specific language:

search.channel.OPENSTREETMAP_CHANNEL.label=OpenStreetMap

search.channel.OPENSTREETMAP_CHANNEL.desc.fi=Hae paikkoja ja/tai osoitteita

search.channel.OPENSTREETMAP_CHANNEL.desc.en=Search addresses and/or points of interest

Other changes

  *   DescribeLayer route has been improved so it can function as a source for frontend to get additional metadata for layers that are added on the map. This enables us to remove unnecessary data from the layer listing response. This allows us to remove some of the layer specific routes that have been previously created and now returns:
     *   coverage area for the layer data
     *   styles for vector layers
     *   vector layer properties
     *   tile matrix information for wmts layers
  *   Fixed an issue with email validation. The original change was meant to add support for domains with dashes, but this prevented users from registering if their email did NOT have a dash in the domain.
  *   Fixed an issue with proxying WMTS-layers through GetLayerTile
  *   Fixed an issue where searching for metadata with filters but not giving a free text query resulted in an error
  *   Fixed an issue in capabilities parsing where the service declared scale limit of 0
  *   Capabilities parsing now allows adding layers where the capabilities header and XML content declares conflicting character encoding
  *   Missing page (HTTP 404) is now handled in consistent way (and the page can be overridden in instances)
  *   Dependency updates:
     *   Geotools 27.1 -> 28.2
     *   JTS 1.18.2 -> 1.19.0
     *   FlywayDB 6.5.7 -> 9.12.0 (Note! PostgreSQL 11 is now min supported version)
     *   Spring 5.3.20 -> 5.3.27
     *   Spring security 5.7.0 -> 5.7.8

Cheers and happy updating,
          Sami
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/oskari-user/attachments/20230615/2b6b3048/attachment-0001.htm>


More information about the Oskari-user mailing list