framework/CHANGELOG.md
Toby Zerner 287ce2fddd Fix crash when loading notifications in some instances
Specifically, the crash would occur when the first notification had a subject without a discussion relationship (e.g. the Subscriptions extension's newPost notification, where the subject itself was a discussion). Instead of simply eager loading the nested subject.discussion relationship, we load discussions manually instead.
2015-12-03 15:10:05 +10:30

6.4 KiB

Change Log

All notable changes to Flarum and its bundled extensions will be documented in this file.
This project adheres to Semantic Versioning.

Unreleased

Added

  • Allow social auth extensions to upload an avatar via URL for new users
  • Improve security by using HTTP-only cookie + CSRF token for API authentication
  • Require user to re-enter password after 30 mins when performing sensitive/destructive actions
  • Add onhide hook to Modal component
  • i18n: Extract some leftover hardcoded strings

Changed

  • i18n: Rename core.lib.deleted_user_text to core.lib.username.deleted_text

Fixed

  • Fix error when sorting discussions by "oldest" (#627)
  • Fix composer preview button on mobile (#196)
  • Enable "Start a Discussion" button if global permissions are restricted but tag-specific permissions are granted (#640)
  • Fix crash when loading notifications in some instances
  • Improve composer appearance/usability on mobile
  • Show "reply" action in discussion menu on mobile
  • Fix some issues with dropdown positioning
  • Various user interface tweaks

0.1.0-beta.4 - 2015-11-05

Added

  • Add an icon/label to the back button to indicate where it leads
  • Add "Loading..." text while the JavaScript payload is loading

Fixed

  • Fix some admin actions resulting in "You do not have permission to do that"
  • Fix translation keys persisting after enabling an initial language pack
  • Fix translation => references not being parsed in some cases

0.1.0-beta.3 - 2015-11-03

Architecture improvements

  • Composer-driven extension architecture. All extensions are Composer packages installable via Packagist.
  • Backend codebase & API refactoring. Classes, namespaces, and events systematically tidied up.

Improved internationalization

A huge thanks to @dcsjapan for the countless hours he put in to make this stuff happen. You're amazing!

  • New systematic translation key naming scheme.
  • Make many hardcoded strings translatable, including administration UI and validation messages.
  • More powerful pluralization via use of Symfony's Translation component instead of a proprietary one.

New moderation tools

  • Hide/restore discussions. Discussions can be soft-deleted by moderators or by the OP if no one has replied.
  • Flags. New bundled extension that allows posts to be flagged for moderator review.
  • Approval. New bundled extension that hides/flags new posts to be approved by the moderation team.
  • Akismet. New bundled extension that checks new posts for spam with Akismet.
  • IP address logging. IP addresses are stored with posts for use by extensions (e.g. Akismet).
  • Flood control. Users must wait at least ten seconds between consecutive posts.

Other features

  • Social login. New bundled extensions that allow users to log in with Facebook, Twitter, and GitHub.
  • More compact post layout. All controls are grouped over to the right.
  • Improved permissions. The admin Permissions page has been improved with icons and other tweaks.
  • Improved extension management. The admin Extensions page has a new look and is easier to use.
  • Easier debugging. The "oops" error message has a Debug button to inspect a failed AJAX request.
  • Improved JavaScript minification. Minification is done by ClosureCompiler only when debug mode is off, resulting in easier debugging and smaller production assets.

Added

  • Allow HTML tag syntax in translations (#574)
  • Add gzip/caching directives to webserver configuration (#514)
  • API to set the asset compiler's filename
  • Migration generator, available via generate:migration console command
  • Tags: Ability to set the tags page as the home page
  • bidi attribute for Mithril elements as a shortcut to set up bidirectional bindings
  • route attribute for Mithril elements as a shortcut to link to a route
  • Abstract SettingsModal component for quickly building admin config modals
  • Model::afterSave() API to run callback after a model instance is saved
  • Sticky: Allow permission to be configured
  • Lock: Allow permission to be configured
  • Add a third state to header icons (#500)
  • Allow faking of PATCH/DELETE methods (#502)
  • More reliable form validation and error handling

Changed

  • Rename notification_read_time column in discussions table to notifications_read_time.
  • Update to FontAwesome 4.4.0.

Fixed

  • Output forum description in meta description tag (#506)
  • Allow users to edit their last post in a discussion even if it's hidden
  • Allow users to rename their discussion even if their first post is hidden
  • API links correctly include the /api path (#579)
  • Tags: Fix sub-tag ordering algorithm in Chrome (#325)
  • Fix several design bugs

0.1.0-beta.2 - 2015-09-15

Added

  • Check prerequisites (PHP version, extensions, etc.) before installation (#364)
  • Enforce maximum title and post length through validation (#53, #338)
  • Ctrl+Enter submits posts (#276)
  • Syntax highlighting for code blocks (#248)
  • All links open in new window, receive rel=nofollow attribute (#247)
  • Default build script for extensions (#438)
  • Input validation in installer

Changed

  • Ask for admin password confirmation in installer (#405)
  • Increased some text contrasts for accessibility (#390)

Fixed

  • Discussion list did not work with non-empty database prefix (#269, #380)
  • Non-admins could not reset their password (#229)
  • Requests ending with a slash resulted in a 404 (#334)
  • In rare cases, posts did not load correctly (#295)
  • Avatars did not show up when installed in a subfolder (#291)
  • Installer crashed when views directory was not writable (#376)
  • Table prefix could not be set in web installer (#269)
  • Enabling an extension disabled all other extensions (#402)
  • Invalid custom CSS could crash the application (#400)
  • First posts could not be restored or deleted
  • Several design bugs
  • Set cookies to be HTTP-only
  • Tags: Sometimes, tags could not be dragged for reordering in the admin panel (#341)
  • Suspend: Use correct column name in when migrating database
  • Lock: Check for correct permission when displaying lock control
  • Likes: Allow liking permissions to be configured

0.1.0-beta - 2015-08-27

First Version