github Leantime/leantime v3.14.0
Leantime v3.14.0

latest release: latest
one hour ago

Version: 3.14.0

Highlights

Granular permission checks across the app

Projects, Timesheets, Users, API keys, to-dos, milestones, sprints, the dashboard, and menu items now check specific permissions rather than relying on role rank, giving administrators finer control over what each user can access (#3985, #3988, #3992).

New Features

  • Calendar plugin extensibility - Calendar events and filters are now class-based, so calendar plugins can hook in reliably. Moving or resizing an event in the calendar now also notifies plugins (#4017)
  • CalDAV Calendar Sync plugin - New on the marketplace and requires this release: two-way sync with Nextcloud, ownCloud, Baikal or Radicale, and Leantime as a calendar account in Apple Calendar, Thunderbird or DAVx⁵
  • Domain-driven client events - Timesheets and Projects client events are now derived from domain events (#3995)
  • Board column header component - Board column titles are now available via elements.board-column-header for customization (#4002)
  • Toggle checkboxes - On/off checkboxes now render as toggles (#3999)
  • Collapsible content-box sidebars - Content-box sidebars can now collapse, with Docs built on layout.content-box (#3991)

Bug Fixes

  • Updates install to the correct folder - Plugin updates now install into the existing installed folder instead of one named after the download's casing (#4001)
  • Subtask list stays in sync - A parent's subtask list is now notified when a child is edited or moved (#3990)
  • Queued HTMX headers delivered - Queued headers are now sent on responses that actions build themselves (#3989)
  • Fresh path caches after upgrades - View and composer path caches are rebuilt after a Leantime version change (#3998)

Improvements

  • Component cleanup - Removed the old x-global::accordion and jQuery tagsInput, and marked CustomFields versions below 1.6.0 as incompatible (#3997)

Upgrade Notes

  • No database changes in this release.
  • Custom Fields: versions below 1.6.0 no longer load on 3.14. Update Custom Fields to 1.6.0 or newer from My Apps.
  • For plugin developers: the calendar string hooks are gone.
    • afterCalendarSave and afterCalendarDelete are replaced by the event classes CalendarEventCreated, CalendarEventUpdated and CalendarEventDeleted.
    • The connectOptions.providers, calendarSettings.sections and externalCalendars filters are replaced by CalendarProvidersFilter, CalendarSettingsSectionsFilter and ExternalCalendarsFilter.
    • All of these live in Leantime\Domain\Calendar\Events. Subscribe with EventDispatcher::add_event_listener(Class::class, ...).
  • For plugin developers: x-global::accordion and the jQuery tagsInput plugin were removed. Use x-global::elements.accordion and x-global::forms.tags.

What's Changed

Other Changes

  • feat(roles): Projects, Timesheets, Users and API keys check permissions, not role rank by @marcelfolaron in #3985
  • feat(roles): menu items follow the permission of the page they open by @marcelfolaron in #3988
  • feat(components): collapsible content-box sidebars; Docs on layout.content-box by @marcelfolaron in #3991
  • fix(plugins): rebuild the view/composer path caches after a Leantime version change by @marcelfolaron in #3998
  • chore(components): remove the old x-global::accordion and jQuery tagsInput; mark CustomFields <1.6.0 incompatible by @marcelfolaron in #3997
  • feat(components): on/off checkboxes become toggles by @marcelfolaron in #3999
  • feat(roles): to-dos, milestones, sprints and the dashboard check permissions by @marcelfolaron in #3992
  • fix(htmx): send queued headers on responses that actions build themselves by @marcelfolaron in #3989
  • fix(tickets): tell the parent's subtask list when a child is edited or moved by @marcelfolaron in #3990
  • feat(components): board column titles on elements.board-column-header by @marcelfolaron in #4002
  • fix(plugins): an update installs into the installed folder, not the download name's casing by @marcelfolaron in #4001
  • chore(plugins): bump app/Plugins to plugins main by @marcelfolaron in #4000
  • feat(events): Timesheets and Projects client events come from domain events by @marcelfolaron in #3995
  • feat(calendar): class-based calendar events and filters for calendar plugins by @marcelfolaron in #4017
  • chore(plugins): bump app/Plugins for the CalDAV + Google Calendar event classes by @marcelfolaron in #4023
  • fix(plugins): restore the app/Plugins submodule by @marcelfolaron in #4025
  • Release v3.14.0 by @marcelfolaron in #4024

Full Changelog: v3.13.2...v3.14.0

Don't miss a new leantime release

NewReleases is sending notifications on new releases.