Skip to content

Hajk 3.14.0

Latest
Compare
Choose a tag to compare
@jacobwod jacobwod released this 16 Sep 10:47
· 2 commits to master since this release
1c13ba7

315 commits and changes across 931 files since the most recent stable release, 3.12.1 – here's Hajk 3.14.0! This packaged release was brought to you by @Hallbergs and @jacobwod, with contributions from multiple coders. Please see the list of commits for all contributors.

This release marks the final build of the 3.x branch. Enjoy! (For an overview of planned development, refer to the project's roadmap.)

Additionally, this release represents a significant milestone for Hajk, as it includes the removal of the legacy V1 API (/api/v1/* endpoints in the backends). Both backends shipped with this release are now API V2-compatible. This introduces some adjustments that you, as an administrator, need to consider when migrating – see Breaking changes below.

Hajk 3.14 is packed with new features, bug fixes, and security improvements. 🔒

Scroll down to find a comprehensive list of changes! 🚀

Breaking changes

  • This release marks the removal of the legacy V1 API (/api/v1) in both the NodeJS backend and the old .NET 4.5 backend. Client UI is now V2-compatible only, requiring the consolidated loading method. Please review and update your configuration, both for Client and Admin. For details, refer to docs/migrate-to-v2-api.md.
  • This release marks the deprecation of certain plugins that have either been replaced by new solutions or transformed into community plugins. For more information, refer to docs/deprecated-plugins.md.
  • Although not a breaking change per se, it fits well here: the repository has been restructured. All applications (Client, Admin, and Backend) can now be found in the apps/ directory. The new- prefix has been removed from app names. Some shell scripts now live in scripts/, and the majority of Docker-related files, except for the official Dockerfile, have been moved into the Docker/ directory. PR: #1488.
  • Upcoming breaking change: this is the last release with official support for multiple backends (NodeJS and .NET). Hajk's upcoming 4.x-series will focus on the NodeJS backend, dropping official support for the .NET backend.

Changelog

In this release, we have aggregated the changes that occurred between the v3.13.3 and v3.13.25 tags, as well as the changes introduced in this v3.14.0 tag. If you want to know exactly when each change was introduced, you can refer to the Changelog.

For a comprehensive list of commits, please visit this link.

Added

  • Admin: It is now possible to easily duplicate map configurations using the UI. #1502.
  • Admin: Support for the EPSG:5847 in Admin UI. Keep in mind that you still need to add appropriate projection definitions to each map config.
  • Backend (.NET): The new .NET 6 backend. Issue: #1210. PR: #1395.
  • Backend (NodeJS): Added /fir endpoints. This functionality requires the myCarta FR Direkt service. #1416
  • Backend (NodeJS): Added possibility to use Authorization token in FME Server proxy. #1530.
  • Backend (NodeJS): Another method of gaining AD groups has been added. It's possible to circumvent the current solution (where Backend talks to the LDAP server) if one's setup allows for getting the AD groups elsewhere (i.e. from a proxy if setup on IIS). #1439
  • Backend (NodeJS): More logging options in .env. Also, we now save 14 old log files by default (was 1 before). #1421
  • Backend (NodeJS): Respect nested visibleForGroups within tool options. #1438
  • Backend (NodeJS): Show 403 Forbidden rather than 500 if access was not allowed. 90b1725
  • Client Core, Admin: Added support for stand-alone GeoWebCache WMS Server. Issue: #1469, PR: #1493.
  • Client Core: A new error page is displayed if Hajk fails on the initial load. The new page also shows a Reset button, which may fix common loading errors by cleaning up the client's state. Commit
  • Client Core: Added a confirmation dialog that shows on window close. It informs the user about unsaved changes (in e.g. Measurer or Sketch) that will be lost. #1403
  • Client Core: Allow to specify map config by using m query parameter, even when no backend is active. commit
  • Client Core: CSS classes added for certain elements, allows for more granular custom styling. See also this discussion. PR: #1497.
  • Client, Admin: it's now possible to configure the Search tool so that it starts with the search field in focus. #1424
  • Client: It is now possible for admins to make the side drawer permanent (i.e. not hidable by user). #1316, #1367.
  • Client: LayerSwitcher now indicates which groups have enabled layers by styling those groups with a bold font. #1257
  • CookieNotice: It's now possible to revisit the cookie notice and change your preference #1125
  • CookieNotice: The cookie notice dialog now appears at the top of other dialogs and pop up windows. PR: #1521.
  • Coordinates: in addition to changing the icon's name (URL), it is now also possible to set icon's scale and anchor values. PR: #1499.
  • Coordinates: It's now possible to copy and paste coordinates from/to both coordinate inputs (N & E, longitude & latitude). PR: #1506.
  • Deployment: Added Dockerfile making it possible to deploy "Hajk-simple" on OpenShift using S2I. PR: #1487.
  • DocumentHandler - possible to save documents inside subfolders. #1402
  • Edit: Allow setting a geometryField for edit layers with no features. #1447
  • Edit: the Simple Edit Workflow, as described in #1377
  • FIR: Allow comma-separated search and multiline search. #1461
  • Infoclick: Highlight in collection view. #1472
  • Infoclick: New filters. #1443
  • Infoclick:Added the possibility to change icon background in feature list, #1385
  • Infoclick:The HTML target attribute is now accepted and rendered correctly if specified, #1389
  • LayerSwitcher: It is now possible to auto-rotate the Map to a admin-specified value. Useful for layers with photos taken in different directions. #1451
  • LayerSwitcher: It is now possible to disable unused tabs in LayerSwitcher, e.g. only show the Background layers tab. #1431
  • LayerSwitcher: Some text field inputs for layer groups now allows HTML code. #1518.
  • LayerSwitcher(Client)/Groups(Admin): It's now possible to add and show information about a layer group. #400.
  • LayerSwitcher/Admin: Administrators can configure a link for each layer. The link will be visible in LayerSwitcher's metadata part. #1387
  • Measurer: It is now possible to perform perpendicular measurements by using a modifier key (Ctrl or Cmd, depending on the OS) #1361
  • Print/Anchor: It's now possible to generate QR codes in Share and Print. #1482
  • Project: Added CHANGELOG.md to the project
  • PropertyChecker: Expanded the plugin to also utilize Digital Plans by adding a second tab with an own list as well as another report.
  • PropertyChecker: New plugin - this release marks the first Public Beta of PropertyChecker. See #1360. There's also a README included in the plugin's directory, make sure to read it in order to successfully setup this plugin.
  • Sketch: Allow changing point size. #1373
  • Sketch: It is now possible to buffer from the Sketch plugin. #1310
  • Sketch: It's now possible to disable stroke for polygons and circles #1177
  • Sketch: Rotate drawn objects. #1455
  • Sketch: The user now has the option to reset to default styling and choose from a wider range of colors in the color picker; additionally, black and white options have been added. #1372
  • TimeSlider: It's now possible to print images of the content generated in the TimeSlider plugin. PR: #1492.

Fixed

  • Admin: Admin UI is now compatible with the correct HTTP verbs (DELETE and PUT). #1501
  • Admin: Correct attribute is used when configuring Edit, #1317
  • Admin: The tools list in Admin is now refreshed. Only current tools are available, sorting is alphabetical.
  • Backend (NodeJS): Restore cross-platform build for NodeJS backend. #1484
  • Backend (NodeJS): The /ad/findCommonADGroupsForUsers endpoint works again. #1415
  • Backend (NodeJS): Solved an issue that could stop certain maps from loading if a tool's option's property value was null. Introduced in #1438, fixed in 77503ee.
  • Bookmark: Fixed removal issue. 0f1172f
  • Client Core: Add conditional rendering for Control button. Commit.
  • Client Core: avoid long floating values for the z parameter in URL hash. #1422
  • Client Core: Drawer Toggle Button could sometimes disappear in certain map configurations. Fixed in #1414. #1414
  • Client Core: Fix layout issue with hidden DrawerToggleButtons #1436
  • Client Core: Fixes to erroneous warning messages about missing plugins in current configuration. See #1390 and #1391.
  • Client Core: Restored the missing .material-icons class in our CSS. This disappeared in a recent MUI bump and has now to be added manually for font icons.
  • Client Core: Upgraded deps, among those react-markdown, which required some work. See #1425.
  • Client/Backend: Support for relative URLs #1399
  • CookieNotice: Cookie Notice updated after browser refresh. Fix to PR: #1509
  • DocumentHandler: Fixed Blockquote and Accordion issues in dark mode. #1457
  • DocumentHandler: Minor bug in DocumentHandler #1404
  • Edit: Bug fix for the Simple Edit Workflow added in 3.13.8
  • FIR: Pagination now remembers page after delete. #1514
  • Infoclick: Bug fix associated to #1468. #1485
  • Infoclick: Fix collapsed InfoClick in Iframe #1508
  • Infoclick: It's now possible to have other target than _blank for links in infoclick. #1388
  • Infoclick: Removed the 360px width limit in MapClickViewer lists. #1411
  • Infoclick: Resize breaks scroll. #1428
  • KIR: Now checks if export is allowed. #1441
  • LayerSwitcher: Fix for incorrect font size in LayerSwitcher's metadata link. Commit
  • Location: Prevent multiple animations in Location plugin #1525
  • Print: Print tool does not print WMS layers that requires credentials#1442
  • PropertyChecker: Better sorting and layer loading failed indicator in layers list. 8df1b92
  • PropertyChecker: Don't allow clicking on points that'd result in response from multiple properties. User is informed when such a click occurs and told to click further away from the property border.
  • Sketch: Solved save error with arrow object. #1450

Security

  • Backend: Tightened security: if AD_LOOKUP_ACTIVE is 'false' but RESTRICT_ADMIN_ACCESS_TO_AD_GROUPS has a value, access to admin-only endpoints will be restricted (to everyone).
  • Backend: Upgraded dependencies.
  • Client Core: A number of Client's dependencies have been upgraded.
  • Deployment: The official Dockerfile build on an image based on current Node LTS (v20).

Changed

  • Backend (NodeJS): show 403 Forbidden rather than 500 if access was not allowed. 98b9280
  • Backend (NodeJS): Swagger UI API Explorer now defaults to the V2 path
  • Client Core: Added missing dependencies in Client's package.json
  • Client Core: Layout fixes to the Error page added in 3.13.6
  • Client Core: Made some appConfig.json keys optional by not expecting any values for them in index.js
  • Client Core: The consolidated loading approach, first added in #682 is now the only way of loading Client UI. This fact allows for a lot of cleanups in the start-up code.
  • Client/Backend: Imports are now made using relative paths. Commit
  • Infoclick: Enhance roundToDecimals filter. #1445
  • LayerSwitcher: Fix to list sorting when toggling layers in a group layer (#1362)

Removed

  • The legacy .NET 4.5 backend. For reference, check out the legacy-dotnet-4.5-backend branch.
  • V1 API from NodeJS Backend.
  • BREAKING: Client UI does not support V1 API anymore. The only supported way of loading the application is the new approach, introduced in #682.
  • Since the change above, there is no more use for experimentalNewApi in appConfig.json. It has now been removed.
  • Removed all references to the unused shortcodes feature in FeatureInfo. Also, removed unused dependencies from Client's package.json. Commit
  • Legacy plugins removed in this release are:
    • Draw (use Sketch instead)
    • Measure (use Measurer instead)
  • Also VTSearch was removed as it is to be transformed into a community plugin (i.e. not included in the main build)

Downloads

There are multiple ways to get the latest Hajk up and running, including Docker container.

Pre-compiled releases

As usual, we have prepared three different versions of the pre-compiled solution (scroll down for download links):

  1. Hajk 3.14 NodeJS edition
  2. Hajk 3.14 Simple edition
  3. Hajk 3.14 .NET edition

Docker container

The container is available on Docker Hub: https://hub.docker.com/r/hallbergs/hajk

Installation

Refer to our installation guide.

Full Changelog: v3.12.1...v3.14.0