Announcing Mautic 5.2.0: Pleiades Edition
A huge thank you to all the contributors who have submitted PRs for features, enhancements and bug fixes and for the amazing folks who have helped to test, code review and provide feedback. Without your help, this release would not be anywhere near as awesome as it is!
What's Changed
🔧 Refactoring
- Optimizing contacts activity API (refactoring of PR-10237 for Mautic v5) by @Moongazer in #12305
- Refactor DBAL execute method to executeQuery. by @biozshock in #14139
- Using "anonymous: lazy" to make the firewall lazy is deprecated, use "anonymous: true" and "lazy: true" instead. by @biozshock in #14124
- The "security.encoder_factory.generic" service is deprecated, use "scurity.password_hasher_factory" instead. by @biozshock in #14125
- [UI] Refactor hardcoded buttons using Twig template by @andersonjeccel in #14233
- [UX] Updating Blank theme to MJML by @andersonjeccel in #14255
- Referencing controllers with a single colon is deprecated. by @biozshock in #14130
- Update readme and devdocs link by @laurielim in #14207
⬆️ Dependencies
- Bump requirejs from 2.3.6 to 2.3.7 in /app/assets/scaffold/files by @dependabot in #14056
- Bump braces from 3.0.2 to 3.0.3 by @dependabot in #13824
- Bump webpack from 5.88.2 to 5.94.0 in /app/assets/scaffold/files by @dependabot in #14088
- Updating Codeception to the latest version by @escopecz in #14090
- Bump twig/twig from 3.8.0 to 3.14.0 by @dependabot in #14104
- Referencing controllers with a single colon is deprecated. by @biozshock in #14130
- CK Editor upgrade from v41 to v43 by @dependabot in #14154
- Updating to latest Symfony 5.4 by @escopecz in #14262
🤖 Devops
✨ Features and enhancements
🧑🏻💻 Automated tests
- Refactor E2E tests to follow same standards by @PatrickJenkner in #14210
🚀 Campaigns
- DPMMA-2506 Smart Campaign Event Scheduling Based on Contact Behavior by @patrykgruszka in #13569
💌 Emails
- Email Preheader by @escopecz in #13792
- [UX] 13 new core email layout themes by @andersonjeccel in #14155
- Batch email change category by @mchojrin in #14067
- remove Raw block from GrapesJS sidebar for MJML emails by @LordRembo in #13363
- Adding new
{resubscribe_url}
token by @escopecz in #14215 - Email Drafts by @dongilbert in #14028
📋 Forms
- FEAT: Adds parsing of {pagelink=\d} token to form redirect action by @putzwasser in #14099
🍇 GrapesJS Builder
- DPMMA-2894 grapesjs asset manager lazy loading by @patrykgruszka in #14191
🤔 Preference center
- DPMMA-2831 Unsubscribe from all in preferences center by @patrykgruszka in #14114
📊 Reports
- [DPMMA-1443] Email report multiseries piechart by @AlanWierzchonCA in #14073
🌍 Segments
🎨 User experience / user interface
- [UX] Copy code blocks on click by @andersonjeccel in #13897
- [UI] Date picker by @andersonjeccel in #14027
- [UI] Contact statistics by @andersonjeccel in #13919
- [UI] Replace poor icon size solution by classes by @andersonjeccel in #14006
- [UI] Assign links, body and control-label text color to tokens by @andersonjeccel in #13630
- [UX] Improve labels system by @andersonjeccel in #13689
- feat: [DPMMA-796] Add export lead contact info by @tomekkowalczyk in #13981
- [UI] Sidebars by @andersonjeccel in #13754
- [UI] Tooltips by @andersonjeccel in #13846
- [UI] Assign the background color to the token for dark mode support by @andersonjeccel in #13890
- [UI] Styling for HTML keyboard tags by @andersonjeccel in #13896
- [UI] Accordions.less by @andersonjeccel in #13940
- [UX] Quick help by @andersonjeccel in #13908
- [UI] Cycling label colors for different segments in contact details by @andersonjeccel in #13931
- [UX] Humanized time display in Twig extension by @andersonjeccel in #14020
- [UI] Replace instance icon with Campaign icon by @andersonjeccel in #14007
- [UI] Better publish badge by @andersonjeccel in #14009
- [UX] Better description for existing dashboard templates by @andersonjeccel in #14011
- [UX] No data found message for dashboard charts by @andersonjeccel in #14037
- [UI] Define the right cursor for interface elements by @andersonjeccel in #13873
- [UX] Change contact details logic for not defined items by @andersonjeccel in #13929
- [UI] Remove minimize sidebar feature by @andersonjeccel in #14029
- [UX] Quick filters by @andersonjeccel in #13948
- [UX] Improve cache information from chart dropdown on Dashboard page by @andersonjeccel in #13333
- [UX] Add new keyboard shortcuts and remap existing ones by @andersonjeccel in #13912
- [UX] Search commands modal by @andersonjeccel in #13939
- [UI] Accessibility features in user profile by @andersonjeccel in #13887
- [UI/UX] Buttons by @andersonjeccel in #13770
- [UI] Notification panel by @andersonjeccel in #14021
- [UX] Toggles by @andersonjeccel in #14147
- [UX] Tokens help by @andersonjeccel in #13942
- [UX] Dashboard date range quick filters by @andersonjeccel in #14014
- [UX] New default dashboard templates by @andersonjeccel in #14013
- [UI] Interface themes by @andersonjeccel in #13767
- [UX] Clone report rows by @andersonjeccel in #14132
- [UI] Place UTM tags under accordion by @andersonjeccel in #13984
- [UX] ProTip to help marketers become power users by @andersonjeccel in #14035
- [UX] Tip when creating new contact manually by @andersonjeccel in #13927
- [UI] Description component by @andersonjeccel in #14261
- [UI] Interactive filters for tables by @andersonjeccel in #13889
- [UI/UX] Toolbar page actions by @andersonjeccel in #14275
- [UI/UX] Better table header sorting by @andersonjeccel in #14276
- [UI/UX] Campaign builder events by @andersonjeccel in #13771
- [UI] Enhance page body by @andersonjeccel in #13380
- [UI] Token-based approach for interface elements and colors by @andersonjeccel in #13735
[UI] Improving contrast for list groups/tabs by @andersonjeccel in #13736
[UI] Dropdown menus by @andersonjeccel in #13749
[UI] Fields by @andersonjeccel in #13752
[UI] New flexbox utilities by @andersonjeccel in #13772
[UI] Notifications by @andersonjeccel in #13780
[UI] Replace most of FA icons (2) by @andersonjeccel in #13803
[UX] Sending at, Activate at and Available from (statuses) by @andersonjeccel in #13818
[UI] Tiles.less by @andersonjeccel in #13848
[UX] Modify form layout to add help block for Yes/No buttons and selection fields by @andersonjeccel in #13875
[UX] Turn the DSN message into an inline warning alert by @andersonjeccel in #13876
[UI] Improvements for notes by @andersonjeccel in #13930
[UX] "Invite your team" action in account dropdown by @andersonjeccel in #13914
[UI] Simplify user account dropdown toggle by @andersonjeccel in #13913
👤 Users and roles
- feat: [DPMMA-2732] Send notification change password by @tomekkowalczyk in #13925
- Virtual permissions by @fedys in #14016
- Remove html switch from textarea custom field. by @abhisekmazumdar in #13926
🐛 Bugs
💻 API
- Batch changing and pagination for API credentials is not working by @shinde-rahul in #14167
🧑🏻💻 Automated tests
- E2e test fixes by @escopecz in #14157
- Fixing failing test, simplifying, removing debug echo by @escopecz in #14231
🚀 Campaigns
- Campaign exclusion filters aren't working properly by @dadarya0 in #14071
- Fix email validation and exception handling in CampaignConditionSubscriber and EmailValidator (#13728) by @matbcvo in #13976
- decision's negative path actions aren't triggering as expected by @escopecz in #14289
📝 CKEditor
👩👩👧👧 Contacts
- Prevent deadlocks caused by DNC changes by @escopecz in #13994
- Batch DNC fix by @escopecz in #14085
- MailHelper::dispatchSendEvent() made reliable by @fedys in #14051
- Correct event listener for
LEAD_CATEGORY_CHANGE
annotation by @abhisekmazumdar in #14149 - fix migration: Update country names in leads and companies tables by @kuzmany in #14170
- Chaining purify method to ensure safe rendering of translation keys by @shinde-rahul in #14270
☑︎ Custom Fields
- Remove and adding options to select and multiselect fields removes some options from existing saved options by @dadarya0 in #14110
- Fixed Custom field options with quotes issue. by @nileshlohar in #14186
- 14075: Improved error handling logic as per the type properties by @shinde-rahul in #14112
🤖 Devops
- Minify does not notify the minified file is missing. by @biozshock in #14226
- Updating minimum version for new themes by @andersonjeccel in #14302
- Fix DDEV script permissions for Windows users by @andersonjeccel in #13813
🔄 Dynamic Web Content
📋 Forms
- Re-enable rendering of html in form field labels by @PatrickJenkner in #14026
- Form will throw the uncaught errors if form is nor valid. by @shinde-rahul in #12180
- Fix ordering form action 2 by @laurielim in #14213
🍇 GrapesJS Builder
- DPMMA-2881 fix Grapesjs-Mjml self-closing mj-spacer tag issue by @patrykgruszka in #14142
- Fix: Initialize AssetService properly in GrapesJsBuilder by @matbcvo in #14308
👥 Import/Export
- Check for 'select' type fields on import by @aarohiprasad in #14183
📃 Landing Pages
- Fix generatePageTitle to retrieve the correct page header tag. by @abhisekmazumdar in #13921
- Fixing 404 content by @escopecz in #14286
📚Languages
- Syntax fixes and Grammarly recommendations by @joebordes in #14052
🌱 Plugin support
- 13968: Updated logic to get the template name in order to tweets to work by @shinde-rahul in #14058
🎯 Points
- Fix point trigger events clone by @shinde-rahul in #14177
🤔 Preference center
📊 Reports
- fix:[DPMMA-2818] fixes sort reports table by @AlanWierzchonCA in #14096
🏷️ Tags
- DPMMA-2825 Fix creating tag duplicates with encoded special characters by @patrykgruszka in #14046
🔎 Themes
- [UX] Disable "Theme" field and clear selection when "Use theme style" is set to "No" while creating a form by @andersonjeccel in #14003
🎨 User experience / user interface
- UI/UX bug fixes by @andersonjeccel in #14228
- [UI] fix: Add recipient too wide @escopecz by @andersonjeccel in #14005
- [UI] Fix for spinner taking a full line of width by @andersonjeccel in #14024
- [UI] Toolbar fix for mobile by @andersonjeccel in #14008
- [UI] Header alignment by @andersonjeccel in #13988
- [UI] Remove panel class from page lists by @andersonjeccel in #13999
- [UI] fix: Form creation on mobile @RCheesley by @andersonjeccel in #14002
- [UI] Reset company email column style by @andersonjeccel in #14000
- [UX] Disable permission tab when "Has full system access?" is set to Yes by @andersonjeccel in #14004
- [UI] Fix nav tabs wrap by @andersonjeccel in #14001
- [UX] Disable "isUniqueIdentifier" when creating a Custom Field if leadfield_object is company by @laurielim in #14236
- [UI] Add underline to link within the CKEditor by @andersonjeccel in #14297
- [UI] Workaround layering model by @andersonjeccel in #14280
- [UX] Remove preview feature for UI settings by @andersonjeccel in #14291
- [UX] Disable "Visible on quick add" when creating a Custom Field for Company object with data-disable-on by @laurielim in #14221
- Fix the login screen layout by @tomfriedhof in #14131
- Adding missing tokens for emails to the help message by @escopecz in #14257
- [UI] bug: Changing bar color in focus items doesn't work by @andersonjeccel in #14256
- [UX] Filter choices for field order when creating Custom Fields by @laurielim in #14242
- bug: btn-group radios were not updated due to data-toggle value by @andersonjeccel in #14290
👤 Users and roles
- 13730: Fixing "Error when creating a user without password" by @shinde-rahul in #14107
💖 New Contributors
- @vinzent made their first contribution in #14041
- @mchojrin made their first contribution in #14067
- @tomfriedhof made their first contribution in #14131
- @nileshlohar made their first contribution in #14186
- @rfay made their first contribution in #14166
- @laurielim made their first contribution in #14207
🪵 Full Changelog
SHA1(5.2.0.zip)= c05b56c582df83754e14391fafde28b4ce138ae7
SHA1(5.2.0-update.zip)= a173c2243bd4bc49b86dfad42f4bedebb3d178f4