Skip to content

Releases: axelpale/georap

v14.1.0

13 Apr 16:50
9461383
Compare
Choose a tag to compare

Changes:

  • New optional config property markerTemplateSizes enables marker size customisation. See /config-sample/locations.js for details.
  • Add site description to the client html title element.

Bugfix:

  • Location export did not open for anonymous users even when allowed. Now it opens.

v14.0.0

02 Mar 00:06
Compare
Choose a tag to compare

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

v13.0.0

18 Nov 19:29
3094b1b
Compare
Choose a tag to compare

Breaking changes:

  • Drop Node v10 support due to updated dependencies.
  • New required config property hostname. See config-sample.js for an example.
  • Previously optional config properties icons, appleTouchIcons, loginColor, and enableSupportPage are now required.
  • Client-side storage key names changed from tresdb- to georap-. Therefore users are forced to log in and their viewport location resets.
  • A bug in v12 caused the user property of any new attachment become "foobar". Migration tool repairs the consequences of this bug.
  • After a successful location creation, open the location page automatically.

New features:

  • Uploads can now be cancelled with Cancel Upload button.

Minor improvements:

  • In code, all tresdb strings are now converted to georap.
  • Lots of security improvements due to updated dependencies.
  • Attachment upload is now secured with JWT.
  • Bug fix: new attachments are marked with the correct username.
  • Throttled Latest tabs: a double click loads the tab only once.

v12.2.0

27 Oct 00:23
127b36b
Compare
Choose a tag to compare

New features:

  • coordinate parser component
  • coordinate parser api
  • increased post and comment text area
  • gray delete dialog buttons. Red is too scary when you arrive to the view.

Developmental:

  • new global alias: window.georap = window.tresdb
  • improve code docs

v12.1.1

16 Jul 14:05
Compare
Choose a tag to compare

New features:

  • new configuration properties that are optional but will become mandatory in v13: icons, appleTouchIcons, loginColor
  • new marker symbols: beach, bird, small bridge, canoe, info, parking, private

Improvements:

  • improved marker symbols: scientific, bridge, underground, watermanagement
  • more logical order for default configuration code

Bug fixes:

  • a bug that prevented comment removal is now repaired

v12.0.4

28 Jun 10:28
Compare
Choose a tag to compare

Contains increments 12.0.2 to 12.0.4

Bug fixes

  • correct login error messages
  • remove bottom padding from login screen

New features

  • provide current zoom and location name to URL templates of external map services
  • consistent zoom level when navigating to external map services
  • New preconfigured external map service for Finland: Museovirasto

v12.0.1 Hotfix

13 May 13:03
Compare
Choose a tag to compare

Location creation failed to add createAt property to the new location at v12.0.0. The property is required to display latest locations in correct order. This hotfix repairs the problem.

Update instructions:
- git pull
- restart the server
- rebuild client
- run hotfix script (see below)

Any new location created since v12.0.0 misses the property. Add the properties to these locations by running the following at the project root:

$ cd georap
$ NODE_ENV=production node v12.0.1-hotfix.js
Valid configuration loaded from config/index.js.
6. Add createdAt prop to each location...
  5916 locations processed successfully.
  9 locations updated, 5907 did not need an update
Bug successfully repaired
$

New locations might also have a deprecated visits property. Removal of this property is not necessary but in case you want to remove it, you can do it via mongo shell:

> db.locations.find({ visits: { $exists: true }}).count()
> db.locations.updateMany({ visits: { $exists: true }}, { $unset: { visits: 1 }})

v12.0.0

04 May 13:21
Compare
Choose a tag to compare

Huge update! First of all, the project name was changed from a bit cryptic TresDB to the more appropriate Georap. There are lots of features to list here so let us get to it.

Update instructions

  • Backup everything, and especially the database (see readme for backup instructions)
  • Shut down the server
  • Shut down the worker
  • Fetch the v12 code (git pull)
  • Update your config/index.js (see through config-sample/index.js)
  • Copy new symbols from config-sample/images/markers
  • Remove your package-lock.json and node_modules
  • Install new deps with npm install
  • Migrate database with npm run migrate
  • Run worker once npm run worker
  • Build client npm run build
  • Start up the worker
  • Start up the server

New configuration parameters

  • rewards to configure the number of points users receive from activity
  • entryFlags to configure how users can flag posts. A visit is an example of a flag.
  • entries to configure how many entries should be listed initially and how many to fetch per load.
  • comments.secondsEditable to configure how long comments stay editable for the author.

New features

  • Multi-attachment posts. Now you can add multiple file attachments to posts and order them.
  • Comment attachment. Comments can contain one file attachment.
  • Drag-n-drop upload. Attachments can be uploaded by dragging files or selecting files as traditionally.
  • Photo attachment rotation. Photo attachment rotation can be corrected if they somehow upload sideways.
  • Upload progress bar. Now you can see the file upload progress.
  • Pinpointer tool. Pinpointer provides a crosshair to inspect map and view any position on external services.
  • New statistics. Now you can quickly see number of posts, attachments, and comments hosted on the site.
  • Location thumbnails. You can set a thumbnail images for locations. These thumbnails show up in multiple places.
  • Latest activity with thumbnails. Latest activity list items now show location thumbnails.
  • Latest locations tab. In addition to latest general activity, you can list the latest added locations.
  • Latest posts tab. In addition to latest general activity, you can view the latest posts and comments from various locations on a single list.
  • New default marker symbols: mansion, building, movietheatre, workshop, firestation, watchtower, restaurant, roadhouse
  • Search results include one or few geographical places, such as cities and streets, in addition to the created locations.
  • Post move feature. You can move posts between locations for example to merge locations together.
  • Load more latest activity. Now you can browse the latest activity farther by pressing Load More button.
  • Ranking of most active users during the last 365 days
  • Format -specific thumbnail images for file attachments such as .xls and .pdf
  • New default external map services, mostly beneficial for users in Finland

Improved features

  • Site statistics are now visible to all members, not just admins.
  • My geolocation -feature is now able to start up the GPS.
  • Post and comment drafts persists over page refresh (sessionStorage) and include also attachment and flag (e.g. is visit) data.
  • Most views are now loaded dynamically and only when needed. This makes the initial page load a bit quicker.
  • Closable error messages. Not yet used thoroughly but still a good start.
  • Improved and consistent content deletion component.
  • Improved responsive button groups.
  • Improved some dark theme details: borders, link color
  • Proper focus and cursor position on post and comment text fields
  • User reward computation now handles changes and deletions better
  • A bit transparent menu background
  • Reverse geocoding is now able to name natural features such as seas
  • Reverse geocoding bugfix: worker should not retry locations that have received empty geocode results already
  • Improved timestamp tooltip visibility in tight layouts
  • Show syntax help link in comment creation and edit forms
  • Sanitize markdown content server-side before insert instead of client-side before render

Removed features

  • Post preview was replaced by the location thumbnail selector. The preview acted as a good table of contents for the posts. It might come back at some point when more time can be put to balance it well with the thumbnail selector that looks a bit same.

Improved developer features

  • Separate attachments collection from entries collection
  • A boilerplate component to document the default view component code structure
  • Initial JSON schema definitions for data structures
  • Improved and stricter JSON schema for site configuration
  • More functional client-side design: handle plain objects instead of Model classes.
  • More consistent socket event handling on client-side: hook to georap-bus.
  • Server code updated to ES6 style (mainly const, let, and arrow functions)
  • Multiple lengthy handler and dal files split into submodules
  • Handy new local modules: georap-components, georap-middleware, georap-models, georap-key
  • Handy helper methods to destruct components: ui.offAll .unbindAll
  • Upgraded deps: sharp, marked, eslint, jquery
  • Relaxed eslint conf: disable no-magic-numbers
  • Client watchbuild renamed to build:watch
  • Client build:watch now builds also stylesheets. Before, a server restart was required to update the css.
  • Record attachment file sizes
  • Geometry API to get coordinates in alternative coordinate systems when needed

v11.2.2

02 May 23:10
Compare
Choose a tag to compare

Includes version increments after v11.0.4 up to v11.2.2

New features:

  • save comment and post drafts locally until submit
  • break long links and words to multiple lines in posts and comments
  • show three latest images as thumbnails at the beginning of the location page
  • dark theme and theme switcher
  • dedicated user account page
  • emphasize markers on map when hovered on the latest list
  • list only n latest entries and show Load More -button
  • more mobile-friendly search bar and location page

Security improvements:

  • sanitise markdown content on server side

Performance improvements:

  • lightweight initial app load: load further modules when needed

v11.0.4

24 Jan 17:52
Compare
Choose a tag to compare

Usability improvements:

  • remember scroll position on 'Latest activity' page
  • prevent long urls and words overflowing outside entry and comment containers

Bug fix:

  • repair event cache issues by removing event cache feature completely