Skip to content

Releases: flarum/framework

v1.2.0

20 Jan 13:19
Compare
Choose a tag to compare

Added

  • View README documentation in extension pages (#3094).
  • Declare & Use CSS Custom Properties (#3146).
  • Lazy draw dropdowns to improve performance (#2925).
  • Default Settings Extender (#3127).
  • Add textarea setting type to admin pages (#3141).
  • Allow registering settings as Less config vars through Settings Extender (#3011).
  • Allow replacing of blade template namespaces via extender (#3167).
  • Update to Webpack 5 (#3135).
  • Introduce Less custom function extender with a is-extension-enabled function (#3190).
  • Support for few in ICU Message syntax (#3122).
  • ES6 local support for number formatting (#3099).
  • Added dedicated endpoint for retrieving single groups (#3084).
  • Callback loadWhere relation eager loading extender (#3116).
  • Extensible document title driver implementation (#3109).
  • Type checks, typescript coverage GH action (#3136).
  • Add color indicator in appearance admin page instead of validating colors (#3140).
  • Add typing files for our translator libraries (#3175).
  • StatusWidget tools extensibility (#3189).
  • Allow switching the ImageManager driver (#3195).
  • Events for notification read/all read actions (#3203).

Changed

  • Testing with php8.1 (#3102).
  • Migrate fully to Yarn (#3155).
  • Handle post rendering errors to avoid crashes (#3061).
  • Added basic filtering, sorting, and pagination to groups endpoint (#3084).
  • Pass IP address to API Client pipeline (#3124).
  • Rename Extension Page "Uninstall" to "Purge" (#3123).
  • [A11Y] Improve accessibility for discussion reply count on post stream (#3090).
  • Improved post loading support (#3100).
  • Rewrite SubtreeRetainer into Typescript (#3137).
  • Rewrite ModalManager and state to Typescript (#3007).
  • Rewrite frontend application files to Typescript (#3006).
  • Allow extensions to modify the minimum search length in the Search component (#3130).
  • Allow use of any tag in listItems helper (#3147).
  • Replace for ... in with Array.reduce (#3149).
  • Page title format is now implemented through translations (#3077, #3228)
  • Add aria-label attribute to the navigation drawer button (#3157).
  • Convert extend util to TypeScript (#2928).
  • Better typings for DiscussionListState (#3132).
  • Rewrite ItemList, update ItemList typings (#3005).
  • Add priority order to discussion page controls (#3165).
  • Use @php in Blade templates (#3172).
  • Convert some common classes/utils to TS (#2929).
  • Convert routes to Typescript (#3177).
  • Move admin colorItems to an ItemList (#3186).
  • Centralize pagination/canonical meta URL generation in Document (#3077).
  • Use revision versioner to allow custom asset versioning (#3183).
  • Split up application error handling (#3184).
  • Make SlugManager available to blade template (#3194).
  • Convert models to TS (#3174).
  • Allow loading relations in other discussion endpoints (#3191).
  • Improve selected text stylization (#2961).
  • Extract notification primaryControl items to an ItemList (#3204).
  • Frontend code housekeeping (#3214, #3213).
  • Only retain scroll position if coming from discussion (#3229).
  • Use aria-live regions to focus screenreader attention on alerts as they appear (#3237).
  • Prevent unwarranted a11y warnings on custom Button subclasses (#3238).

Fixed

  • Missing locale text in the user editing modal (#3093).
  • Dashes in table prefix prevent installation (#3089).
  • Missing autocomplete attributes to input fields (#3088).
  • Missing route parameters throwing an error (#3118).
  • Mail settings select component never used (#3120).
  • White avatar image throws javascript errors on the profile page (#3119).
  • Unformatted avatar upload validation errors (#2946).
  • Webkit input clear button shows up with the custom one (#3128).
  • Media query breakpoints conflict with Windows display scaling (#3139).
  • typeof this not recognized by some IDEs (#3142).
  • Model.save() cannot save null hasOne relationship (#3131).
  • Edit post until reply policy broken on PHP 8 (#3145).
  • Inaccurate Component.component argument typings (#3148).
  • Scrolling notification list infinitely repeats (#3159).
  • Argument for INFO constant was assigned to maxfiles argument incorrectly (bfd81a8).
  • Activated event is sent every time an email is confirmed instead of just once (#3163).
  • [A11Y] Modal close button missing accessible label (#3161).
  • [A11Y] Auth modal inputs missing accessible labels (#3207).
  • [A11Y] Triggering click on drawer button can cause layered backdrops (#3018).
  • [A11Y] Focus can leave open nav drawer on mobile (#3018).
  • [A11Y] Post action items not showing when focus is within the post (#3173).
  • [A11Y] Missing accessible label for alert dismiss button (#3237).
  • Error accessing the forum after saving a setting with more than 65k characters (#3162).
  • Cannot restart queue from within (#3166).
  • Post--by-actor not showing when comparing user instances (#3170).
  • Incorrect typings for Modal hide() method (#3180).
  • Avatar Upload throws errors with correct mimetype and incorrect extension (#3181).
  • Clicking the dropdown button on a post opens all dropdowns in Post-actions (#3185).
  • getPlainContent() causes external content to be fetched (#3193).
  • listItems not accepting all Mithril.Children (#3176).
  • Notifications mark as read option updates all notifications including the read ones (#3202).
  • Post meta permalink not properly generated (#3216).
  • Broken contribution link in README (#3211).
  • WelcomeHero is displayed when content is empty (#3219).
  • last_activity_at, last_seen_at updated on all API requests (#3231).
  • RememberMe access token updated twice in API requests (#3233).
  • Error in funding item in composer.json bricks the frontend (#3239).
  • Escaped quotes in window title (#3264)
  • schedule:list command fails due to missing timezone configuration.

Deprecated

  • Unused evented utility (#3125).

v1.1.1

22 Oct 09:47
Compare
Choose a tag to compare

Fixed

  • Performance issue with very large communities.

v1.1.0

13 Oct 00:53
Compare
Choose a tag to compare

Added

  • Info command now displays MySQL version, queue driver, mail driver (#2991)
  • Use organization Prettier config (#2967)
  • Support for global typings in extensions (#2992)
  • Typings for class component state attribute (#2995)
  • Custom colorising with CSS custom properties (#3001)
  • Theme Extender to allow overriding LESS files (#3008)
  • Update lastSeenAt when authenticating via API (#3058)
  • NoJs Admin View (#3059)
  • Preload FontAwesome, JS and CSS, and add preload extender (#3057)

Changed

  • Move Day.js plugin types import to global typings (#2954)
  • Avoid resolving excluded middleware on each middleware items
  • Allow extra attrs provided to <Select> to be passed through to the DOM element (#2959)
  • Limit height of code blocks (#3012)
  • Update normalize.css from v3.0.2 to v8.0.1 (#3015)
  • Permission Grid: stick the headers to handle a lot of tags (#2887)
  • Use ItemList for DiscussionPage content (#3004)
  • Move email confirmation to POST request (#3038)
  • Minor CSS code cleanup (#3026)
  • Replace username with display name in more places (#3040)
  • Rewrite Button to Typescript (#2984)
  • Rewrite AdminPage abstract component into Typescript (#2996)
  • Allow adding page parameters to PaginatedListState (#2935)
  • Pass filter params to getApiDocument (#3037)
  • Use author filter instead of gambit to get a user's discussions (#3068)
  • [A11Y] Accessibility improvements for the Search component (#3017)
  • Add determinsm to extension order resolution (#3076)
  • Add cache control headers to the admin area (#3097)

Fixed

  • HLJS 11 new styles resulting in double padding (#2909)
  • Internal API client attempting to load an uninstantiated session
  • Empty post footer taking visual space (#2926)
  • Unrecognized component class custom attribute typings (#2962)
  • User edit groups permission not visually depending on view hidden groups permission (#2880)
  • Event post excerpt preview triggers error (#2964)
  • Missing settings defaults for display name driver and User slug driver (#2971)
  • [A11Y] Icons not hidden from screenreaders (#3027)
  • [A11Y] Checkboxes not focusable (#3014)
  • Uploading ICO favicons resulting in server errors (#2949)
  • Missing proper validation for large avatar upload payload (#3042)
  • [A11Y] Missing focus rings in control elements (#3016)
  • Unsanitised integer query parameters (#3064)
Code Contributors

@lhsazevedo, @Ornanovitch, @pierres, @the-turk, @iPurpl3x

Issue Reporters

@uamv, @dannyuk1982, @BurnNoticeSpy, @haarp, @PeopleInside, @matteocontrini

v1.0.4

28 Jun 10:25
Compare
Choose a tag to compare

Fixed

  • Upgrade to v1.0 resets the "view" permission on all tags (#2941)

v1.0.3

22 Jun 21:16
Compare
Choose a tag to compare

Changed

  • Removed [forum] prefix from Request Password and Email Confirmation emails (a4a81c0)
  • Adopt huntr.dev for handling our security vulnerability reports (#2918)
  • Maintenance handler can now be replaced through the service container (ioc) (4acff91)
  • The colors on the auto generated avatars are now based on the Display Name of the user (#2873)

Fixed

  • Avatar in notifications list are incorrectly aligned (#2906)
  • FilesystemManager is not compatible with upstream Laravel implementation (#2936)

v1.0.2

06 Jun 02:26
Compare
Choose a tag to compare

Fixed

v1.0.1

02 Jun 07:09
Compare
Choose a tag to compare

Fixed

  • Installation fails on environments without proc_* functions enabled or mysql client binary (#2890)

v1.0.0

27 May 08:40
Compare
Choose a tag to compare

Added

  • Task scheduling
  • load() method on ApiController extender to allow eager loading of relations (#2724)
  • Installation supports enabling a set of extensions (#2757)
  • RequestUtil helper class added to abstract the logic of the actor, session, locale and route name from the request (#2449)
  • Code scanning action with GitHub CodeQL (#2744)
  • The Formatter extender now has an unparse method to allow extensions to hook into the unparsing of content (#2780)
  • A Filesystem extender allows direct modification and addition of filesystem disks (#2732)
  • A slug driver based on the User ID was introduced (#2787)
  • An extensible users list was added to the admin area (#2626)
  • Headers hardened by adding Referer Policy, Xss Protection and Content type (#2721)
  • Tooltip component (#2843)
  • Moved insertText and styleSelectedText from markdown to core (#2826)
  • A squashed database schema install dump to speed up new installs (#2842)
  • Pagination in the canonical URL for discussion pages (#2853)
  • PaginatedListState for the DiscussionList and to support paginated lists in the frontend (#2781)
  • Introduce the new webpack config and flarum-tsconfig for typehinting (#2856)

Changed

  • Now tracking bundle sizes to keep an eye on web performance (#2695)
  • Eager load relations on ListPostsController to improve performance (#2717)
  • Replace classList with clsx library (#2760)
  • Replaced the javascript based loading spinner with a pure CSS version (#2764)
  • Route names now have to be unique (#2771)
  • ActorReference is now available from the error handler middleware (#2410)
  • The migrations table now has an Auto Increment ID (#2794)
  • Assets and avatars are now managed using Laravel filesystem disks (#2729)
  • Extracted asset publishing (php flarum assets:publish) from migrating (#2731)
  • Assets were compiled in the format <asset>-<revision>.<js|css>, this is now <asset>.<js|css>?v=<revision> (#2805)
  • The powered by header can now be configured in the config under headers (#2777)
  • Switched to the ICU format for translation files (#2759)
  • Allow extend and override to apply to multiple methods in one call
  • Notifications dropdown and list refactored (#2822)
  • Updated validation locale strings based on Laravel 8 changes (#2829)
  • Caching of permissions is now taken care of centrally, reducing code duplication (#2832)
  • Replaced lodash-es by throttle-debounce to reduce bundle size (#2827)
  • Internal API requests are now executed through middleware (#2783)
  • Permission changes: viewDiscussions to viewForum and viewUserList to searchUsers (#2854)

Fixes

  • Javascript is shown when editing the title of a discussion (#2693)
  • Canonical url logic uses request object which causes wrong URL's when a different page is default (#2674)
  • Dropdown toggle has no aria label (#2668)
  • Nav drawer is focusable when off-screen on small viewports (#2666)
  • Search input has no aria-label and no role (#2669)
  • Code duplication exists between SendConfirmationEmailController and AccountActivationMailer (#2493)
  • When setting tags as homepage default, visiting a tag will show all posts (#2754)
  • Locale cache is cleared twice when cache clearing (#2738)
  • When cache clearing fails an exception can be thrown due to a partial flush (#2756)
  • Database migrations rely on MyISAM even though the eventual migrated database does not use it (#2442)
  • Discussion search result is not sorted by relevance by default (#2773)
  • Extensions cannot register custom searcher classes (#2755)
  • Searching discussion titles is not possible (#2698)
  • Boot errors due to failing extenders throw a generic error (#2740)
  • Required argument to Component.$() isn't really required (#2844)
  • Component does not allows use of all mithril lifecycle functionality (#2847)

Removed

  • The make:migration command has been removed (#2686)
  • Background fade on the header has been removed (#2685)
  • Remove vendor prefixes in less (#2766)
  • The session is no longer available from the User class (#2790)
  • The mail key is removed from the laravel related config (#2796)

v0.1.0-beta.16

15 Mar 16:50
Compare
Choose a tag to compare
v0.1.0-beta.16 Pre-release
Pre-release

Added

  • Allow event subscribers (#2535)
  • Allow Settings extender to have a default value (#2495)
  • Allow hooking into the sending of notifications before being send (#2533)
  • PHP 8 support (#2507)
  • Search extender (#2483)
  • User badges to post preview (#2555)
  • Optional extension dependencies allow a booting order (#2579)
  • Auth extender (#2176)
  • X-Powered-By header added to allow indexers easier data aggregation of Flarum adoption (#2618)

Changed

  • Run integration tests in transaction (#2304)
  • Allow policies to return a boolean for simplified allow/deny (#2534)
  • Converted highlight helper to typescript (#2532)
  • Add accessibility attributes to Mark as Read button (#2564)
  • Dismiss errors on change email modal upon a new request (00913d5)
  • Disabled extensions now are marked with a red circle instead of a red dot (#2562)
  • Extension dependency errors now show the extension title instead of the ID (#2563)
  • Change mutate method on ApiSerializer extender to attributes (#2578)
  • Moved locale files to the core from the language pack (#2408)
  • AdminPage extensibility and generic improvements (#2593)
  • Remove entry of authors, link to https://flarum.org/team (#2625)
  • Search and filtering are split (#2454)
  • Move IP identification into a middleware (#2624)
  • Editor Driver abstraction introduced (#2594)
  • Allow overriding routes (#2577)
  • Split user edit permissions into permissions for editing of user credentials, username, groups and suspending (#2620)
  • Reduced number of admin extension categories (#2604)
  • Move search related classes to a dedicated Query namespace (#2645)
  • Rewrite common helpers into typescript (#2541)
  • TextEditor is moved to the common namespace for use in the admin frontend (#2649)
  • Update Laravel/Illuminate components to 8 (#2576)
  • Eager load relations in discussion listing to improve performance (#2639)
  • Adopt flarum/testing package (#2545)
  • Replace user gambit with author gambit (612a57c)
  • Posts page of on user profile loads posts using username instead of id (30017ee)

Fixed

  • Transform css breaks iOS scroll functionality (#2527)
  • Composer header is hidden on mobile devices (#2279)
  • Cannot delete a post or discussion of a deleted user (#2521)
  • DiscussionListPane jumps around not keeping the scroll position (#2402)
  • Infinite scroll on notifications dropdown broken (#2524)
  • The show language selector switch remains toggled on (9347b12)
  • Model Visibility extender throws exception on extensions that aren't installed or enabled (#2580)
  • Extensions are marked as enabled when enabling fails to unmet extension dependencies (#2558)
  • Routes to admin extension pages without a valid ID break the admin page (#2584)
  • Disabled fieldset use an incorrect CSS property disallowed (#2585)
  • Scrolling to a post that is already loaded the Load More button shows and does not trigger (#2388)
  • Opening discussions on some mobile devices require a double tap (#2607)
  • iOS devices show erratic behavior in the post stream while updating (#2548)
  • Small mobile screens partially hides the composer when the keyboard is open (#2631)
  • Clearing cache does not clear the template cache in storage/views (#2648)
  • Boot errors show critical information (#2633)
  • List user endpoint discloses last online even if user choose against it (#2634)
  • Group gambit disclosed hidden groups (#2657)
  • Search results on small windows not fully visible (#2650)
  • Composer goes off screen on Safari when starting to type (#2660)
  • A search that has no results shows the search results dropdown (b88a7cb)
  • The composer modal moves around when typing on Safari (a64c398)

Removed

  • Deprecated CSRF wildcard path match
  • Deprecated policy and visibility scoping events
  • Deprecated post types event
  • Deprecated validation events
  • Deprecated notification events
  • Deprecated floodgate
  • Deprecated user preferences event
  • Deprecated formatting events
  • Deprecated api events
  • Deprecated bootstrap.php support
  • PHP 7.2 support (#2507)
  • Bidi attribute in the rendered HTML (#2602)
  • AccessToken::find, use AccessToken::findValid instead (#2651)

Deprecated

  • GetModelIsPrivate event (#2587)
  • CheckingPassword event (#2176)
  • event() helper (#2608)
  • AccessToken::generate argument $lifetime (#2651)
  • Rememberer::remember argument $token should receive an instance of RememberAccessToken with AccessToken being deprecated (#2651)
  • Rememberer::rememberUser (#2651)
  • SessionAuthenticator::logIn argument $userId, should be replaced with AccessToken (#2651)
  • TextEditor has been moved to common (#2649)
  • UserFilter (91e8b56)

v0.1.0-beta.15

20 Dec 20:42
Compare
Choose a tag to compare
v0.1.0-beta.15 Pre-release
Pre-release

Added

  • Slug drivers support (#2456).
  • Notification type extender (#2424).
  • Validation extender (#2102).
  • Post extender (#2101).
  • Notification channel extender (#2432).
  • Service provider extender (#2437).
  • API serializer extender (#2438).
  • User preferences extender (#2463).
  • Settings extender (#2452).
  • ApiController extender (#2451).
  • Model visibility extender (#2460).
  • Policy extender (#2461).

Changed

  • Time helpers converted to Typescript (#2391).
  • Improved the formatter extender (#2098).
  • Improve wording on installer when facing file permission issues (#2435).
  • Background color of checkbox toggles improved for better usability (#2443).
  • Route resolving refactored (#2425).
  • Administration panel UX refactored (#2409).
  • Floodgate moved to middleware and extender added (#2170).
  • DRY up image uploading logic (#2477).
  • Process isolation on testing (984f751).
  • Forum and admin javascript exports namespaced (#2488).

Fixed

  • Web updater does not take into account subfolder installations (#2426).
  • Callables handling in extenders failed (#2423).
  • Scrolling on mobile from PostSteam changes didn't work correctly (#2385).
  • Side pane covers part of the discussion page due to app.discussions being empty (102e76b).
  • Change email modal keeps showing the previous error message even on success (#2467).
  • Comment count not updated when discussions are deleted (#2472).
  • goToIndex in PostStream does not trigger an xhr to retrieve new data (09e2736).
  • On refresh the post number is reduced by one (#2476).
  • Queue worker would instantiate a new Queue factory, not the bound one (#2481).
  • Header accidentally has a border bottom (#2489).
  • Namespace mentioned in docblock is incorrect (#2494).
  • Scrolling inside longer discussions (especially Firefox) skips posts (210a6b3).
  • Uploading avatars that are jpg/jpeg fails with a validation error (#2497).

Removed

  • MomentJS alias (#2428).
  • Deprecated user events GetDisplayName and PrepareUserGroups (#2428).
  • AssertPermissionTrait (#2428).
  • Path related helpers and methods in Application (#2428).
  • Backward compatibility layers from the frontend rewrite (#2428).

Deprecated