Skip to content

5.3.0

Compare
Choose a tag to compare
@Schlaefer Schlaefer released this 17 Oct 16:56
· 155 commits to master since this release

Noteworthy Changes

From the Changelog

  • + Send posting before moving on from posting form #338
  • + Save drafts while composing a new posting
  • + Browser warns the user before navigating away from a posting form with input
  • + Favicon-indicator shows number of unread postings on background tabs with autoreload #95
  • + New setting answeringAutoSelectCategory to control category-selection in posting-form
  • − Removes support for embedding new Flash videos (<object>...) #326
  • ✓ Uploading PNG images allows double-uploads #343
  • ✓ Fixes several bugs causing Internal Error issues
  • ✓ Don't autolink file:// URIs #341
  • ✓ Internal posting-hashtag in parenthesis isn't linked #337
  • Δ Changes the default DB engine for the entries table from MyISAM to InnoDB #322
  • Δ Keeping track of online users is more accurate while requiring less resources
  • Δ Font files for default theme are served locally instead from Google (everything is served locally now)
  • Δ Disables Security component on login #339
  • Δ PHP code maintenance
    • Δ Improves code quality so it passes phpstan static code analysis on level 3 (was 1)
    • Δ Declares all src/ and plugins/ PHP files as strict
    • Δ Refactors handling of current user's state
  • Δ Core library updates (CakePHP 3.8, TypeScript 3)

Never Lose A Posting Again

5.3.0 refactors and improves a lot of code including keeping track of the current user and posting a new entry. Both touches important functionality and our oldest code paths (reaching back even before the git init of this repository). They accumulated a lot of cruft over the years.

This was also the occasion to introduce exciting new features:

In the past sending the posting-form was mainly a simple HTTP POST request. If something went wrong the content was gone. The browser's back button wasn't much of a help. From now on a posting is sent in the background before leaving the posting-form. If there's a server error or a connection problem the user is notified and won't lose the posting staring at a blank page.

While composing a new posting the content is continuously saved as a draft in the background. On the chance that something is going wrong while composing a posting the draft is restored when the user opens the posting form again.

Update Notes

New Setting answeringAutoSelectCategory

There's a new setting answeringAutoSelectCategory in config/saito_config.php. It allows to select a default category for new postings.

If true the first available category (by category-order and accessibility according to user rights) is preselected as default category in the posting form. If false the user is forced to select a category.

Default: false (same behavior as in previous versions).

Changing Entries Table from MyISAM to InnoDB #332

This update changes the last and biggest table - containing all postings - from MyISAM to the modern InnoDB database-engine. According to my benchmarks this switch shouldn't impose a major performance impact anymore.

The updater is going to convert the table automatically, but be aware that your PHP-script runtime is limited on a shared-hoster. The conversion may take several minutes depending on the number of postings and exceed that period. So you might end up sitting in front of a blank page wondering what happened. If your forum contains more than 100.000 postings I recommend converting the table manually before starting the updater. Execute e.g. in phpMyAdmin:

ALTER TABLE entries ENGINE=InnoDB;

As always: Backup your database before performing an update.

Full change-log