Skip to content

v14.0.0

Compare
Choose a tag to compare
@axelpale axelpale released this 02 Mar 00:06
· 43 commits to master since this release

This is a major update with lots of changes. Especially the site configuration has very different structure. Therefore, reserve enough time for the migration.

Migration steps in a nutshell:

  • stop the server and worker (if applicable)
  • backup database
  • git pull
  • rm -rf node_modules
  • rm package-lock.json
  • npm install
  • mv config config_old
  • cp -R config_sample config
  • go through the new config files and copy values from config_old
  • cp -R config_old/images/* config/images/
  • npm run build
  • reload the server

Breaking changes:

  • UI internationalisation architecture
    • this directory allows site-specific vocabulary to be rendered in UI
    • new directory /locales
      • contains base translation files for different languages and their locales
    • new /config/index.js parameters: defaultLocale, availableLocales
      • defaultLocale: string, for example: 'en' or 'fi'
      • availableLocales: array of strings, for example: ['en', 'fi'] for english and finnish.
  • Localisations for english and finnish.
    • /locales/en.json
    • /locales/fi.json
  • Site-specific localisation
    • new site configuration directory: /config/locales
    • extends the base localisation.
    • adds mullti-language vocabulary for location flags, status and types.
    • example locale file: /config/locales/en.json
  • Cookie architecture
    • 'locale' cookie is set on client-side, containing the locale string
    • 'locale' cookie is set by the server at client app refresh
  • new server-side dependency: i18n
    • i18n is middleware for cookie and url based locale detection and provides translation tool __ in handler res objects
    • our client-side translation tool __ mimics the server-side __ but is a bit limited in comparison but probably much faster.
  • user document has new properties: user.securityCode, user.deleted
  • new config props: roles, defaultRole, capabilities
  • new config prop: loginPageSize
  • new config prop: locationNaming
  • rename config.hostname to config.publicHostname
  • note distinction between publicPort and port
  • rename loc.creator to loc.user for consistency in ownership checking
  • merge user.status into user.role and remove user status features
  • deprecate config.features

New Features:

  • language switcher on login page
  • language switcher on account settings page. Makes the UI reload with a fresh locale cookie from the server.
  • client-side api for dynamic locale retrieval. However, it has no use yet.
  • account settings has new button to email change page
  • email change page asks email address, security code, and password and provides button to send the security code to the new email
  • show username and email on account settings page
  • show how long ago user joined on user profile page
  • user deletion tools
  • list deleted users
  • configurable user roles and capabilities
  • new user roles: frozen, reader, writer, moderator, admin
  • site can be configured for public usage
  • new local_module: georap-able
  • config is divided to multiple files for clarity
  • load more -feature for events listed on location and user profile pages
  • coordinates page provides a link to the current view position
  • soft comment deletion: leave a mark that comment was deleted
  • display site icon in menu button
  • new preconfigured export service: Norgeskart.no
  • invite users with a preset role
  • settings page for public user to pick theme and language
  • add back-to-top button at the end of location page

Security improvements:

  • configured admin user cannot be deactivated or removed
  • authenticate web socket connections
  • capability-based access control
  • move dangerous database init script from config to migration.
  • revoke tokens when user permissions i.e. role changes.

Minor changes:

  • all email messages have better sign-off text
  • show underline on timestamps only on mouse hover
  • to damp community competitiveness a bit, do not list total points on user profile page
  • /local_modules/timestamp internationalisation and localisation to fi and en
  • improved card close button style
  • make area around menu and search bar close cards when clicked
  • improve token error handling
  • cached user data to avoid repeated jwt token parsing
  • more consistent component code styles
  • use reusable components.Remover and .Opener
  • new reusable components.Tabs
  • improved code documentation in many places
  • improved text content and translations in a few places
  • improved error messages and their translations in a few places
  • organise client-side stores into submodules and increase use of request module
  • add filler space at the end of a few pages, e.g. location page
  • improve post and comment button spacing
  • make deletion opener buttons gray cuz no attention needed
  • rename Entry to Post in most instances
  • improve marker symbols: bridge, bridgesmall, underground
  • repair finnish Museovirasto export service link
  • stability improvements in late location view callbacks
  • repair search geocoding error when no results from google api
  • dropped dead code: payments API

Devops:

  • server:watch autorestarter now watches also /locale directory
  • add i18n convention to the example component boilerplate
  • faster webpack build in development