Release Notes
Short URL: Release notes between version 5.4.4.1 and 5.5.1.0
Improvements
Multi-File Upload Fields
File upload fields on Custom Forms now have the option to allow more than one file to be uploaded.
On the Details screen of the field, there is now a drop-down option that allows you to specify how many files a user can upload against that field.
Once set, the field will have "plus" and "minus" buttons to let the user add multiple files when submitting the form.
New Schemas Screen
A brand new Schemas screen has been added to most asset types which combines the process of setting a Workflow Schema and a Metadata Schema for an asset.
This new screen replaces the previous Metadata Schemas screen. The Workflow Schemas section has also now moved from the Workflow screen to this new Schemas screen.
This improvement aims to make it easier for you to manage all schema-type configuration of an asset on a single screen. It also simplifies the Workflow screen so that you just focus on actually managing the workflow state of an asset on that screen.
Thumbnail and Description Fields for Content Templates
Content Templates now have the ability to store a Description and Thumbnail against them.
This improvement is the first step towards making the template selection process on Content Containers more user friendly as work towards showing these values in the template drop-down list when editing content. The description field also helps you store a short explanation about what the template is for and how it works.
Description Fields for Regular Expression Assets
New Description fields have been added to Regular Expression assets.
A short description can now be entered on the Details screen against the asset as a whole, but also each regex itself can also have a short note added next to it to help explain what each replacement is doing. The UX of the regex table has also been improved to make it easier to create and re-order your regex replacements.
Form Question Assets Renamed to Form Fields
Form Question assets that are found under Custom Forms, have had their asset type name changed to "Form Fields".
These are the fields that you can create on Custom Form assets, which have always been referred to as "Questions" in the past.
We have now changed the name of these asset types, and the references to them within the Admin interface, to "Form Fields", in order to better reflect their actual asset type.
Furthermore, the Tickbox List and Tickbox Table fields have been renamed to "Checkbox List" and "Checkbox Table" respectively.
Call REST Resource Form Step Action
Custom Form Step Actions now have the ability to make REST web service calls.
Previously, only the Make SOAP Call action was available.
This is useful for when you want to call an external (or internal) API call when a user moves through the different steps of a form. You can also use custom validation rules on the REST response and present any validation errors on the frontend and prevent the user from going to the next step if required.
Other Improvements
- #382 - Simplify our htmlspecialchars usage
- #414 - Add client-side validation to all Tools screens
- #423 - Make the "name" field on the create asset screen required
- #424 - Refactor Form/Form Section Actions UI
- #441 - Don't show empty asset picker field for multi-asset pickers
- #443 - Apply the new 3-col layout to the Cache Manager's Type Code and Root Node Specific screens
- #488 - Add asset type icon to Metadata and Workflow Schema section headings on Schemas screen
- #492 - Improve the way polyfills are loaded
- #532 - Add [+] button and drag/drop icon for Metadata Multi Asset Picker in Edit+
Bug Fixes
- #131 - Remove unnecessary hidden input fields for asset pickers
- #292 - Infinite re-direct loop on SAML Account manager for users who "don't have access"
- #325 - Change note for "Reset the root folder" to "Restore root node"
- #380 - Instance_end_date keyword evaluates to incorrect date when minutes is set to 24
- #415 - Scroll to field screen links shows the success modal when it shouldn't
- #419 - Remove atoi function
- #432 - Remove "required" attribute from hidden field in Multiple Asset Picker
- #434 - IE11 getting NaN for some numbers in Edit+
- #436 - Importing a non CSV file into Import CSV File on Import Bulkmail Users Tools Screen throws error
- #437 - Error trying to escape conditions array on bodycopy divs
- #442 - The asset picker drag-and-drop drag area needs to be restricted to the asset picker itself
- #456 - Fix Multi related asset metadata field limit in Edit+ and remove draggable icon when in non-default mode
- #457 - Purging assets using Trash throws Matrix Error
- #462 - Remove remaining lang_strings.xml files
- #481 - Folder asset type is not being found via asset map create menu filter tool
- #482 - Localised times are getting unexpected offsets under PHP 5.4
- #484 - File paths in the file repo not updated when morphing Design assets
- #485 - Remap manager filtering times out on systems with large amount of remaps
- #486 - Pagination links on tables when clicked don't work and throw JS errors
- #487 - Fix weird characters in html_form.js code
- #496 - Upgrading to 5.5.x.x clears URLs on converted Web Folders
- #502 - Remove limbo.css from simple edit
- #503 - Fix unexpected HTML end tags in admin interface
- #512 - Automatic screen locks refreshing fails in simple edit
- #513 - Changing screen using the screen switcher in IE11 throws JS error and fails
- #530 - Fix the future date set in the couple of tests
- #533 - Fatal error in Save As XML form action in PHP7
- #550 - Fix accidental shift() calls
- #551 - tool_export_form_submission_logs.php script broken
Improvements
- #105 - Screen short-cuts with auto scroll to a field or section on a page
- #133 - Auto-height textarea fields in Admin
- #307 - Add client side validation to Search And Replace tool
Bug Fixes
- #96 - Bringing an asset out of safe-edit with old metadata
- #170 - Trying to clone an asset underneath itself using the Asset Map throws error
- #189 - If the ViperTableEditor-toolbar is too close to the top / bottom of table, it stops the Insert line tool
- #203 - Remove old bodycopy asset table PHP files
- #233 - Moving the Page Contents asset under its dependent parent throws Asset Map error
- #248 - Asset map root node selector should open the root node relative to the domain you enter /_admin on
- #269 - Observable Event JS error in WYSIWYG insert link popup
- #278 - Change the remaining old warning styles to the new ones
- #279 - Section keywords in Simple Edit Keyword popup tool are uppercase
- #280 - Steal locks popup content is too wide for the window
- #302 - Recurring Calendar Event Asset shows instance keywords when on the details screen when you don't have the locks in Admin
- #313 - Acquire/Release locks button acting bit janky when running HIPO in web mode
- #314 - Error when handling Observable Events in popup window
- #322 - Backend UI logout button not working if current URL has some URL queries
- #328 - Undefined constant in Internal_Message class.
- #342 - SOAP Data Source asset is broken
- #349 - Swap Persona with Variation Checkbox throws error
- #352 - Approve and Make Live shouldn't be an option for a user without Admin Access
- #360 - expandOptionList() function in edit.js adds new fields but up/down & delete buttons don't function properly
- #369 - Can not steal locks in 5-5
If you are upgrading to version 5.5+ of Squiz Matrix from version 5.4 or below, it is strongly recommended that you review the Important Changes section of these release notes.
New Features & Major Enhancements
Admin UI & UX Improvements
The main changes in this version surround the UI and UX of the Admin interface.
We've spent a lot of time improving several areas of the interface and how you interact with various screens and components of those screens.
In this section, we'll explore some of the most notable changes.
Top Toolbar
The top toolbar has been simplified and made more intuitive with access to various system configuration screens and tools through the use of drop down menu options.
The grouping of the items found under these top level categories has also been updated more logical to simplify the process of going to these various screens. For example, the HIPO Herder and Asset Types screen links have now been moved under the Maintenance drop-down menu item.
Editing Screen Toolbar
The top area of the main editing screen has been simplified with various items re-positioned and re-sized.
It will also become fixed to the top of the editing area as you scroll down, so that you can always have quick access to things like the Acquire Locks button, the current asset tag, and the new Filter visible fields tool.
Filter Visible Fields
Inside the editing screen toolbar, a new tool has been added that lets you filter the visible fields and sections on the current screen. This is useful for when you are working on a screen with a lot of fields on it and you just want to focus on a particular area of the screen.
Simply start typing to find a field or a section to display (other fields that don't match this filter will get hidden).
AJAX Saving
Saving a screen you are editing is now done via AJAX. This means that after the save has completed, you will be kept at the scrolled-to position of the screen you were at once the save process has finished.
This will make editing in Admin mode a lot faster as you will not have to manually scroll down to the same position you were at before you hit the save button.
Future Status Field
The Future Status field that is found on most asset types has been improved. The tool is now hidden by default, and to interact with it, you simply click on the "Add future status" button to expose the interface for adding a new scheduled status change.
The list of scheduled status changes have been cleaned up a bit and now also shows the user that the status change will run as.
If there is an incorrect sequence of scheduled status changes, or if the user that is set to run the change job doesn't have access anymore, the interface will now alert you to that being a problem.
Insert Keywords & Snippets Smart Select Fields
The Select2 JS plugin has been applied to the Insert Keyword and Insert Snippet drop down fields on Content Containers.
This makes it a lot easier to find and insert the right keyword you want on both Raw HTML, Markdown, and WYSIWYG based Content Containers.
Improved Asset Pickers
Asset pickers, which are found on most screens in the Admin interface, have had improvements to both the look & feel and the way that you interact with them.
They now have a much simpler layout and automatically load information about the asset as soon as you select it. When picking multiple assets, you can also easily re-order the assets in the list via drag-and-drop.
Improved Trigger Condition and Action Selection
You can now select multiple Conditions and Actions to create at once when editing a Trigger.
These fields have also had the Select2 JS plugin applied to them so that you can quickly find the right condition or action you want to add to your Trigger.
This allows for much faster Trigger creation and configuration.
That covers some of the main changes of the overall Admin interface UI & UX changes. There are lots of more global design improvements and enhancements that are part of this release, so for a complete log of changes refer to the list below:
- #10494 - Make screen saves in Admin AJAX based and keep scroll position on screen reload
- #10676 - Hide sections and fields on certain screens if they are not applicable due to other field settings
- #11000 - Implement SweetAlert2 Library
- #11418 - Make 'Asset Statuses To List' multi-select boxes full height
- #11425 - Replace modals with SweetAlert2
- #11427 - Improved metadata schemas and section details screens
- #11439 - Add select2 functionality to trigger condition and action select lists
- #11452 - Use ajax for handling system messages and quick search in Admin mode
- #11605 - Improve keyword selection UX for content containers
- #11658 - Improve UX and UI of top header toolbar
- #11614 - Fixed scroll position for locks button and filter fields tool
- #11622 - Change screen selector drop down list to a modern drop down selection
- #11625 - System Configuration and Tools buttons in top header should be drop down list options
- #11652 - Add loading state animation whenever you select a screen to load from the asset map menu
- #11669 - Improve functionality of future status functionality in admin mode
- #11756 - Improve UX around tool tip popups
- #11830 - Change header bar in Admin mode from an iframe to be part of the main document
- #11832 - Improve UI & UX of asset pickers
- #11839 - Change Yes/No select fields and checkboxes to toggles
- #11856 - Update UI of checkboxes in admin mode to make it more clear when they are checked and unchecked in read-only mode
- #11900 - Admin Mode UI design update for 5.5
- #11936 - All Tools should have action buttons rather than a Save button
- #12047 - Simplify thumbnail section and merge current and set thumbnail fields
Asset Map Improvements
The Asset Map has had several improvements and new features added to it. The look & feel has been updated and made a lot simpler with better utilisation of the space in the left-column area of the main interface.
Asset Map Root Nodes
One of the main new features of the improved asset map is the ability to have customised Asset Map Root Nodes. The previous vertical tabs have been removed in favour of this new preference feature, which allows you to create custom shortcuts in the Asset Map to various areas of your system.
You can set custom root nodes as either Global, User Group, or personal User Preferences.
Once set, a drop-down field will appear above the Asset Map that will list all of the customised root node shortcuts that have been set as your preference.
Updated Create Asset Menu
The Asset Map creation menu has had its categories of assets updated to be simplified and more logical from previous versions.
Then you click the Create button, or when you right-click on an asset and choose New Child, you will now see a much smaller list of categories and re-organised asset lists.
Menu separators have also been added to group the assets within categories more neatly.
Furthermore, a new filter tool has been added to the top of this menu where you can start typing the name of any asset type and filter the list of matched options in order to more quickly find the asset type you are wanting to create.
New Create Menu Asset Types
#10362, #10678, #10842, #10987, #11679
More asset types have been added to the Create menu. For example, you can now right-click on a Metadata Section asset to quickly create a new Metadata Field.
The complete list of new asset types that can now be created via the Asset Map includes:
- Poll Questions
- Custom Form Sections & Fields
- Metadata Sections & Fields
- Decision Tree Questions
- Design Customisations
Screen Locks Handling Improvements
Locks handling of a screen has been significantly improved in this release.
The way that locks are refreshed for you when editing a screen has been refactored to use AJAX. This means that there is less of a chance of you accidentally loosing your locks, for example, if you leave your screen unattended for an extended period of time and then return.
If you do lose your locks however, the screen will alert you to that fact and will give you a chance to re-acquire them.
This will only be possible as long as no one else now has the locks on that screen and if the asset hasn't been updated since the time that you loaded the screen.
A new setting called "Lock Inactivity Expiry" has also been introduced on the System Configuration screen under the Screen Locks section. This field lets you control how long a user's locks should be kept on a screen they are on before they are automatically released due to inactivity.
Purge Trash Tool Improvements
The Purge Trash screen on the Trash asset received a few usability improvements.
First of all, the Purge Trash Scheduling has been split out into its own separate screen to clearly separate out the two actions you want to do on the Trash.
On the Purge Trash screen, the action to start the purge process is initiated by pressing a new "Purge Trash" button.
Once clicked, a popup modal will appear with a summary of the assets you have chosen to purge and the number of children each selected asset has.
User Preferences
A brand new screen has been added to all Matrix user types (excluding LDAP users) called "Preferences". This screen can be accessed from the drop-down seen when clicking on your name in the top toolbar.
On this screen, users can now set personal preferences that relate to various UI elements in the Admin interface such as the Asset Map, Messaging System, and more.
By default, each preference setting will be based on the user's User Group or the system's Global Preferences until you choose to customise them with your own personal configuration.
New Preference Settings
As part of the new User Preferences feature, we have added new preference options that are available both as personal user settings as well as User Group and Global Preferences which include:
- Show Status in Asset Map - Whether to show the status colour of each asset in the Asset Map by default when you log in to the admin interface.
- Asset Map Font Size - The font size to render the Asset Map in. The options include Small (default), Medium, and Large.
- Assets in Navigation History - The number of assets to show in the Navigation History bar. You can choose between 0 (hide the history bar) and 10, with 5 being the default.
- Asset Map Root Nodes - This preference lets you set shortcuts to appear in the Asset Map to various areas in the system. Each root node added here will appear as a drop down list selection option when the Asset Map is loaded. When choosing one of the options in the list, the Asset Map will only show that root node in the tree and nothing else, allowing you to focus on a specific area of your system.
Metadata Screen Improvements
The design and UX of the Metadata screen on all assets has been improved.
The layout has been tweaked to be more readable and clean so that you can scan the information much easier and quicker.
In addition to the friendly name, each metadata field now also shows the field name and asset ID so that you can quickly reference them when templating using keywords. Clicking on the field name will also find and highlight the field in the Asset Map so that you can quickly navigate to it to edit the field's settings.
Better error handling has also been when fields that share the same name as other fields are present and for when fields that might be linked into multiple Sections or Schemas that are both applied to the same asset.
Permissions Screen Improvements
The Permissions screen has been improved with several UX and UI enhancements.
The layout has been cleaned up and simplified with a lot of replicated and redundant text removed. The process of changing multiple permissions settings at once is now also faster as you can configure multiple settings before saving your changes.
You can now also quickly Grant or Deny public user access with the click of a button.
Changing Status Without Locks
Previously, you needed to have the locks on an asset in order to change its Status. In version 5.5, this can now be done without having the locks.
When the Details screen is loaded, the system will check if no other user has locks on any other screen that is affected by status changes, such as the Metadata screen. If someone else does have the locks, the option to change status will not be available until those locks are released.
Matrix User Session Cookie Name Control
You can now change the name of the Matrix session cookie that is used by the system by default.
This has been added to help make session cookies more secure, but also to improve the support for running multiple Matrix systems on the same domain (especially during the UAT process when doing Matrix version upgrades).
Note that this setting can only be changed by editing the main.inc
file on the server and can't be updated via the Admin interface.
PHP 7.1 Support
Matrix now supports running on a server with PHP version 7.1.
Previously, only version 5.4 and 5.6 were supported.
PHP 7.1 adds several performance improvements to any PHP process initiated by Matrix and has meant we've refactored and re-written a lot of code in the backend to use more modern and best practice PHP coding standards.
We are also already planning to add support for version 7.2 for Matrix 5.5 later this year.
Matrix Accelerator Cache Support
Version 5.5 of Matrix adds support for the new Matrix Accelerator Cache (MAC) extension that is available to all Squiz clients.
MAC is a new web page accelerator built specifically for Squiz Matrix. It's a caching layer that sits between the Squiz Matrix application and a user's browsers and is designed to render and serve pages extremely fast to the end user.
MAC is built on the Ledge framework, the same caching technology that Squiz Edge uses, and therefore has similar functionality and feature set.
In the simplest terms, MAC works like this:
In the above diagram, the MAC extension sits on the same server as the Matrix application and is responsible for serving web pages to users.
When a page request for a web page comes in, Matrix generates the HTML for the page as usual, then sends it to the MAC, which in turn then serves the page really quickly to the user's browser.
This new caching layer adds a lot of benefits and functionality that you currently can't get with other cache tools such as Squid and Matrix's internal application cache, such as:
- Extremely fast rendering of dynamic web pages
- ESI support
- Accelerator cache alternative for clients who are self-hosted
- Caching of user authenticated websites such as member portals and intranets
- Caching of multiple variations of a single web page for different users based on things like group membership or access permissions
- Simplified caching configuration and development
To find out more about what benefits MAC can have for you and how to get it installed, please contact your Squiz account manager.
Minor Enhancements
- #5758 - Improve Matrix Markdown Support
- #9128 - Properly localise dates and times within the Matrix interfaces
- #10274 - Handle localised number and ordinal formatting in Admin Mode
- #10503 - Refactor keyword modifier system to make sure they work globally
- #10870 - Create a global wrapper processing function for the asset picker
- #11073 - Use an autoloader
- #11074 - Restrictions on Workflow Schemas should cascade past non-restricted asset types
- #11191 - Using native SimpleSAMLphp function for the SAML 2 Single Log Out
- #11209 - Refactoring the SAML Single Sign On process source code
- #11215 - Remove the get parameter logout after SAML SLO Redirect
- #11221 - Memcache Matrix cache storage refactoring
- #11297 - Delete unused code in file_versioning.inc
- #11451 - PHP 5 Strict standards and Deprecated functionality
- #11591 - Manage Matrix PEAR dependencies with composer
- #11680 - Install SimpleSAML via composer
- #11695 - Run prepareLink in asset create to better handle initial status of created dependant assets
- #11733 - PostgreSQL 10.1 support
- #11793 - Expose the permission IDs for all assets used to render a page for Trinity permission headers
- #11831 - Acquire/Release Locks shouldn't be a form submission event
- #11843 - Authentication type drop down on rest interfaces should toggle options with JS
- #11917 - Allow Cascading on metadata fields should default to No
- #11972 - Improve loading experience for Ace Editor elements
- #12012 - Improve the UI of the clear Matrix Cache tool
- #12014 - Update DB queries to skip Oracle check
- #12018 - User Preferences Screen UI
- #12034 - Update UI on Asset Listing details screen
- #12077 - Manage the scssphp library via composer
- #12080 - Skip confirmation on move asset HIPO jobs
- #12092 - globals_user_is_logged_in keyword should not trigger permission check on the current user
- #12095 - Update Edit+ PL translations for 5.5.0.0
- #12112 - Clean up references to magic quotes
- #12128 - Automatically cache backend resources by version
- #12130 - Upgrade SimpleSAMLphp to 1.15.4
- #12135 - Script to clean up ffv data on selected file assets
- #12162 - Delete unrunnable code for 5.5.0.0
Important Changes
In version 5.5, we've made some changes that might impact you when you upgrade your Squiz Matrix instance.
Whilst we take every possible measure to insure that these impacts are minimal and don't affect functionality when you upgrade, we unfortunately can't cater for every possible implementation scenario that might be in use.
However, the changes in the Automatic Upgrade Script in combination with the new Deprecation Script have been developed to help with these upgrades as much as possible.
Please read on to see what important and notable changes have been made in this version that you should be aware of before starting an upgrade.
Updated Versions of JS Libraries
The version of the various JS libraries have been updated to more modern and supported versions. These include:
Library | Matrix 5.4 Version | Matrix 5.5 Version |
---|---|---|
jQuery | 1.11 | 3.3.1 |
jQuery UI | 1.10.4 | 1.12.1 |
mustache.js | 0.8.1 | 2.3.0 |
Multiple Text Metadata Field Merged With Text Field
The Multiple Text metadata field has been deprecated and its functionality merged in with the Text metadata field.
The basic metadata Text field now has a new setting for controlling what type of field it is.
If you want to use a the multi-text functionality, simply change the Field Type setting to Multiple text fields and save the screen. The new Deprecation Script will also automatically convert any existing Multiple Text fields to the Text field asset when your system is upgraded using the Automatic Upgrade Script.
Asset Name Changes
Several assets have had their names changed in order to be more user friendly and easier to find in the asset creation menu. The list of name changes include:
Matrix 5.4 Name | Matirx 5.5 Name |
---|---|
Bodycopy Div | Content Container |
Content Container Template | Content Template |
Single Calendar Event | Calendar Event |
REST Resource JavaScript | REST Resource |
REST Resource OAuth 2 Legged | OAuth 1.0 Token - Two-Legged |
REST Resource OAuth Session | OAuth 1.0 Token |
Oauth2 2-legged Token | OAuth 2.0 Token - Two Legged |
Oauth2 Token | OAuth 2.0 Token |
Only the friendly asset name has changed. The asset type code name has been left unchanged.
Rollback Data Purge
When you upgrade to version 5.5 using the automatic upgrade process, all Rollback data will be purged and removed from your system. The tool will also be disabled after the upgrade has completed, and not enabled again as per previous upgrades.
This is due to this feature being officially deprecated as of version 5.5 of Matrix.
If you need to keep a copy of previous rollback data, then you will need to get a backup copy of your existing Matrix install before proceeding with the upgrade.
Users who wish to continue to use the Rollback feature in 5.5, can still do so, but note that the feature is officially unsupported and may contain bugs. The feature will eventually be completely removed in version 6 of Squiz Matrix.
Deprecations
Version 5.5 features the deprecation of various asset types and features within the product. We've done these deprecations in order to reduce complexity, improve maintainability, and simplify the overall feature set within Squiz Matrix.
There are 3 types of deprecations:
- Asset type merges - This is where an asset type has been merged into another type due to them having almost identical feature sets. For example, Thumbnail assets have been merged with Image assets and Related Asset Listings with Asset Listings.
- Asset type removal - This is where assets of a particular type will be removed because they no longer function properly or they rely on an external dependency that has been deprecated. For example, the uTransact Payment Gateway asset will simply be removed as the actual uTransact product doesn’t exist anymore.
- Feature removal - This is where a feature will be removed, which could be a system wide config, a script, or a feature on a particular screen. For example, the Antiword External Tool will be removed as it has been superseded by the Apache Tika Tool for search indexing of file assets.
As part of the upgrade process to 5.5, you will need to ensure that the Matrix system has effectively been prepped as much as possible for these types of deprecations.
This is where the new Deprecation Script comes in.
It has been designed to be able to run as a stand-alone process, but also as a joint process with the Automatic Upgrades Script. It can automatically take care of a lot of the deprecated assets and convert them to their new asset types.
For other problems it can't fix via the scripted process, it can produce warnings and reports on all issues you might need to fix manually. For example, if you have an Asset Builder that is set to build Thumbnail assets, you will probably want to change it so that it builds Image assets instead.
Then there are other asset type specific implementations it won’t be able to report on, for example if you are checking if the Standard Page keyword matches “Thumbnail” inside a block of Server Side JavaScript. These are unfortunately extremely hard to report on and will need to be reviewed during the standard UAT process of the upgrade.
The Deprecation Script is available as a Matrix Extension for all Squiz clients. Please liaise with your account manager during the upgrade planning on how to use this script to help prepare for the upgrade.
Below is a list of all deprecations that have been done for this release. For a complete list of all deprecations that have been done, and ones that are planned for future version releases, visit the Deprecations page on the manuals.
Stage 1 Deprecations
These are asset types and features that are still available in the system, but have been marked as deprecated and unsupported and will be removed in a future version.
- #11587 - Deprecate Rollback - Stage 1
- #11579 - Deprecate Workspace Folder - Stage 1
- #11743 - Deprecate Unnecessary Calendar Listings - Stage 1
- #11874 - Deprecate Force Secure Feature - Stage 1
Stage 2 Deprecations (Removals)
These are asset types and features that have been completely removed from the code base.
- #11964 - Stage 2 removals for 5.5
- #6129 - Remove the Apache Configuration feature
- #11258 - Remove DataCash Payment Gateway asset - Stage 2
- #11295 - Remove Thumbnail asset
- #11296 - Remove Login, EES Login, and Password Change Designs - Stage 2
- #11440 - Remove "Languages" attribute on the Settings screen of assets
- #11556 - Remove Media, Designs, and Web Services Folders - Stage 2
- #11603 - Remove Oracle database support
- #11862 - Remove Image, Code, Structure Tree Content Types - Stage 2
- #11865 - Remove Related Asset Listing Page - Stage 2
- #11867 - Remove Hit Count Listing Page - Stage 2
- #11870 - Remove Funnelback REST Search Page and REST Resource Page - Stage 2
- #11893 - Remove unnecessary global and user preferences and system configs
- #11927 - Remove XSL File - Stage 2
- #11928 - Remove Data Source Graph - Stage 2
- #11965 - Remove Site Network - Stage 2
- #11966 - Remove JS API Standard Mode - Stage 2
- #11971 - Remove Bodycopy Table - Stage 2
- #11998 - Remove scripts/migrate_metadata_text_to_multiple_text.php script
Bug Fixes
- #73 - Manually adding ./?a= remaps into the remap manager throws Matrix Warning saying URL is not valid
- #79 - In Page remote content validating the response url with white list url should handle both with and without protocol.
- #82 - menu_normal design area appends an extra mysource_divider when asset excluded/included asset types is used
- #83 - Clicking into a related asset metadata field doesn't uncheck the "Use default" checkbox when used in Content Templates
- #85 - Receipt Recipient Question on Email Options screen on Custom Forms needs better validation and support
- #86 - Morphing of an asset should be restricted when it's in Safe Edit or in a Workflow Process
- #87 - Settings can't be changed on an asset with Workflow unless you put it into Safe Edit first
- #108 - %asset_sibling_next/prev_type_2% throws PHP Notice errors and produce incorrect results
- #112 - Asset Updated trigger event evaluate asset_url keyword incorrectly when status status is changed
- #134 - Performance issue in expanding LDAP user group in LDAP_Bridge::getParents()
- #136 - Keywords used in container will try and get replaced even if Disable Keywords is enabled
- #143 - The Request Body field on a REST asset interface should use Ace Code editor in read only mode as well
- #186 - Custom form emails screen fields doesn't handle diacritics well
- #252 - has_children design menu setting on Designs only works for 1 level down
- #254 - Bulk file upload elements in Edit+ are cut off on smaller screens
- #273 - Custom Form File Question field file renaming option fails if the web path already exists
- #286 - LDAP backend user cannot use "morph asset" option in the settings screen
- #291 - Unable to upload .twbx files to Matrix
- #293 - Cancelling safe edit on paint layout makes changes public
- #296 - Keyword modifiers and conditional keywords don't evaluate correctly for image varieties
- #302 - Recurring Calendar Event Asset shows instance keywords when on the details screen when you don't have the locks in Admin
- #323 - KML file assets mime type mismatch
- #330 - Bodycopy's Up For Review -> Safe Edit transition not creating all system version files
Minor Enhancements
- #12083 - Increase the width of name and short name text fields
- #12143 - Move Squiz Server Config to HIPO Config screen
- #12166 - Handle HTTP range request on File asset with invalid ranges
Bug Fixes
- #11933 - Review errors and warnings appearing when doing export/import XML jobs
- #12029 - Create Image Variety trigger action throws fatal error for failed image variety creation
- #12062 - Specific recurring calendar instance dates do not appear in calendar search page results
- #12064 - Export to Import XML doesn't apply web paths to imported assets if web path already exists
- #12072 - Issue with metadata sections linked between multiple schemas and search indexing
- #12086 - Manually incrementing major version number does not increment it
- #12107 - Tree location trigger condition throws error for a shadow asset
- #12125 - NOTICE link relationship on content containers is lost when child link asset is trashed
- #12137 - Fix bad spelling and grammar in some strings
- #12144 - When pointed to non-existent Squiz Server, HIPOs throw fatal error
- #12148 - Warnings when upgrading password hash
- #12151 - Changing status through the workflow screen in Edit+ throws JS error when interface is in Polish
- #12159 - For an Unrestricted Access asset with a /__data URL, the absence of public read is not considered denied public read, and asset stays public with /__data URL
- #12165 - Triggers always evaluate asset_url keyword before asset status changed
- #12172 - Classic WYSIWG edit button inserts blank HTMLAreas
New Features & Enhancements
Deletion of Content Containers in Safe Edit
#7425 - idea by Cardiff University (Squiz client)
A new enhancement has been added to Content Containers that lets you delete them when going through a Safe Edit change process.
Previously, if you had a Workflow applied to an asset, there was no way to delete existing Content Containers on an asset when going through a Workflow process and editing the asset in Safe Edit.
The delete action on Content Containers now gets changed to a "Mark for deletion" toggle when the asset is in Safe Edit.
When this is enabled on a container, it's not deleted straight away, but instead it will get deleted once the Safe Edit changes are published.
The content of the container that is marked for deletion will also not show up when previewing the edited asset on the frontend, but will of course show up for users who are looking at the Live version.
You can also toggle the view of the Marked for deletion container to see exactly what is about to get deleted.
Note that containers that have been added in Safe Edit mode can be deleted straight away.
Preview Live Version of Asset in Safe Edit Mode
On the Preview screen in Admin mode there is now a new option for previewing the Live version of an asset while it's in Safe Edit mode.
Previously, this was not possible if you had Write access to the asset, other than logging out first.
This is done by simply adding the new SQ_ACTION=view_live
query parameter to the preview URL, for example:
https://www.example.com/page?SQ_ACTION=view_live
Customisable ID Attribute on Content Containers
#12024 - idea by Aaron Maskell (Squiz client)
The ID that gets automatically generated for Content Containers can now be customised.
By default, this is generated based on the container's asset name and asset ID, for example:
<div id="introduction_13759"> ...content... </div>
Sometimes you might want to customise this ID to make it easier to target for things like anchor links.
This can now be done by toggling the "Customise ID" option on the Properties pop-up on the Content Container.
When enabled, it lets you input your own custom ID attribute, similar to the CSS Class setting.
Note that this will only get added to the container on the frontend if the Presentation setting is not set to Raw.
Upgrade Script
To aid with users upgrading to this version of Matrix, a script has been added under the /scripts/upgrade/
directory called upgrade_content_container_customid.php
that lets you update existing Content Containers to use either a customised or automatic ID.
You can run the script after your system has been upgraded to:
- Make all containers use a custom ID
- Make all containers use an automatic ID
- Only make containers with a customised name use a custom ID
You can also run this script against a specific root node if you don't want to process all containers within the whole system at once.
Note that this is an optional script that is not run automatically during the upgrade process and needs to be run manually with the desired options if so required.
Toggle Logging of IP Address on Form Submissions
A new option for Custom Forms has been added for controlling whether or not the IP address of a user is logged in Form Submissions.
This option can be found on the Form Contents screen of the Form Contents asset that sits under a Custom Form and is enabled by default.
This enhancement was added to aid with GDPR compliance requirements for capturing and storing user data in the CMS.
Other Features & Enhancements
- #12003 - Show note on Asset Grouping screen of Listing assets if Custom Grouping setting is not enabled
- #12059 - Allow folders to be created under Design assets
Bug Fixes
- #10834 - Rollback + Roles queries are slow regardless of Roles config
- #11784 - Dynamic workflow streams are not taken into account when a page is Live
- #11962 - Consider more robust handling of SugarCRM errors when a refresh token is invalidated
- #11981 - Write access users can't set status to Live from Up For Review in Edit+
- #11982 - Users with Write Access can't set Future Statuses on an asset whilst it's in Up For Review
- #11983 - Write access users can't change the status to Safe Edit from Up For Review
- #11991 - Conditional keywords don't work in the Page Contents of a Paint Layout
- #12010 - Simple Validation rule on a form question throws error when value of form question field is array.
- #12050 - On-Off schedule job is not saving on Refresh Cache Screen under cache manager.
- #12053 - Global keywords with shadow asset id don't get remapped on export/import to XML if shadow asset id contains characters expect letter, number and underscore.
- #12061 - Login design not showing log in section anymore for /_login URL.
- #12067 - WYSIWYG image upload bypasses the validation for Alt text field
- #12071 - REST Resource OAuth 2 Legged and the REST Resource OAuth Session assets incorrectly marked for deprecation
Bug Fixes
- #12058 - Cloning a non-contextualised asset with some non-default metadata values failing
New Features & Enhancements
Editable Required Field Note on Custom Forms in Edit+
#11913 - idea by Damian Dąbrowa
The Required Field Mark and Required Field Note settings on a Custom Form asset are now editable in Edit+. Previously you were only able to edit these values in Admin Mode.
Customisable File Name for Export Assets to XML Files
The Export Assets to XML tool now lets you customise the filename of the resulting .tgz
file that gets generated from the export process. Previously this file was always being named export-1234.tgz
, where 1234
was the asset ID of the export root node. This often made it hard to differentiate multiple export files if you didn't manually rename the files after download.
There is now a Export File Name text field on this screen that lets you customise the filename of the export file and it also supports the use of asset keywords.
The default value will use the first export root node asset's name and ID as the filename. The name will also automatically become filename friendly, meaning things like spaces will be replaced with dashes.
Code Editor for Markdown Content Containers
Markdown Content Containers will now use the Ace Code Editor for editing the content within them.
Previously these were simply using a standard <textarea>
field which made it quite hard to edit.
In read-only mode, you can also switch between code and preview view to see what HTML the markdown code has generated.
Simpler Backend Locale Support for Edit+
Switching to a different backend locale for Edit+ is now a bit easier. When you switch the Default Backend Locale setting on the System Configuration screen to another supported and translated language, Edit+ will automatically include the additional required JS translation file when using the Edit+ Design Area in the Design file.
As per idea #12021 , the <html>
tag produced in both Admin Mode and Edit+ interfaces will also include the relevant lang=""
attribute to help tell your browser that the content is rendered for a specific language. For example, when switching to Polish, this attribute will be set to <html lang="pl-PL">
.
Other Features & Enhancements
- #11919 - Configure an EditorConfig file
- #11940 - Update Viper to the latest version for 5.4.5.2
- #11992 - Increase default value for redis reconnect interval
- #11997 - Replace our custom port of the PHP css minifier script with an official packaged version
- #12021 - Insert lang attribute in html tag when using a different backend language
Bug Fixes
- #11367 - Corrupted HIPO jobs result in a blank header frame in _admin
- #11885 - Creating asset in non-default context confusingly bounces the user back to asset create screen
- #11915 - Constrain asset map to be smaller than window size
- #11935 - Prevent root folder from being linked under anything
- #11942 - Custom form question keywords with modifiers don't get remapped on XML import/export
- #11951 - Page scrolls to the top when hitting cmd+c / ctrl+c (Copy tex) on a WYSIWYG container in Admin
- #11952 - Assign User to Groups trigger action sets user_is_root/user_is_sys_admin session flags incorrectly
- #11955 - Undefined index sort_order when using asset_sibling_ keywords on Site Index page
- #11968 - Make "Image is decorative" option turned on by default for insert image tool in the WYSIWYG
- #11970 - Matrix warning message is thrown when trying to create a standard page under site asset on different context when conditions are used
- #11979 - Editing the AM/PM time part of an event in Edit+ doesn't always update the event date and time details properly
- #11990 - %workflow_user% & %log_message% showing wrong content when Approve and Make Live selected from Workflow Screen
- #11994 - CSS File Folder minifier removes required space in @media queries
- #12002 - Problem in changing multiple status when processing status change in web mode with Hipo.
- #12009 - Cloning an asset that has been contextualised, doesn't indicate contextualised state
- #12011 - Trying to delete a context that has a ' in the name throws JS error
- #12013 - Permission issue when changing the status of a page to Safe Edit with workflow schema applied on the Page.
- #12016 - Export and Import XML of a design doesn't properly generate menu design areas
- #12023 - The Online quiz (interactive mode) keywords and submissions have issues when deja vu is enabled
- #12033 - Typo in Asset Builder's permission error message
Bug Fixes
- #10776 - <MySource_LOGOUT_SECTION> sections don't work on Login Designs
- #11901 - Hyperlink Safety in Live Assets should allow linking to all Live status assets
- #11905 - Exporting and importing a SCSS design asset with linked .scss css files under it throws ASSERT EXCEPTION
- #11907 - Metadata field allignment in Admin mode
- #11914 - Refresh interval setting in config screen uses Max Login variable
Deprecations
- #11298 - Deprecate Funnelback REST Search Page and REST Resource Page - Stage 1
- #11422 - Deprecate MP3 File - Stage 1
- #11745 - Deprecate Hit Count Listing Page - Stage 1
- #11746 - Deprecate What's New Page - Stage 1
- #11749 - Deprecate Related Asset Listing Page - Stage 1
- #11750 - Deprecate Google Maps Package - Stage 1
- #11751 - Deprecate Image Content Type - Stage 1
- #11863 - Deprecate DataCash Payment Gateway - Stage 1
Please see the Deprecations page for a full list of past and future scheduled deprecations and removals.
New Features & Enhancements
Asset Sorting Trigger Action & JS API Function
New sorting features have been added that lets you automatically and dynamically sort an asset's children. You can do this using either the new Sort Asset Children Trigger Action or the new sortAssetChildren JS API function.
Sort Asset Children Trigger Action
This new Trigger Action lets you automatically sort asset children when a certain event has occurred in the system. For example, you can set up a trigger that sorts the children of an asset whenever a new asset is created under it, or when one of it's metadata fields have been updated.
You can also control the sorting order and type, which is based on the PHP sort() function. Using Keyword Value as the Sort By option lets you pass static and dynamic keyword values to sort the assets by.
sortAssetChildren() JS API Function
The JS API function works in a similar way. Simply pass the various sort options as parameters. The returned data will contain an array of the assets that have been sorted and in the resulting sort order.
<script> js_api.sortAssetChildren({ parent_id: "1234", sort_by: "", sort_direction: "desc", sort_type: 0, //optional dataCallback: function(data){ console.log('Assets sorted in this order:' + data); } }); </script>
Use Current Date Setting for Custom Form Date Fields
#5997 - Idea by Anthony Ponomarenko
Date Fields on Custom Forms now have an option to use the current date as the value for the Minimum, Maximum, and Default date configuration options.
When this option is enabled for any of these fields, the date that the user loads the form on the frontend will be used as the value.
REST Resource UI Improvements
As part of this release, the Funnelback REST Search Page and the standard REST Resource Page have been marked as deprecated and can no longer be created in the Admin interface. In the upcoming 5.5 release, these assets will be merged into the more popular REST Resource JavaScript asset instead.
As part and in preparation of this functionality merge, the REST Resource JavaScript asset has had its name changed to just REST Resource and has had a UI tweak. The UI change was made to accommodate the functionality of the other REST asset types, but also to group the fields a bit better within the screen itself.
The Details screen is now split up into 3 main sections:
- HTTP Request - Where you configure the REST request (pretty much the same as before).
- JavaScript Processing - Where you do all JavaScript processing (if you need to). If you only want to do a basic REST request and you don't need to process the data through JS, you can simply leave the Process Response Through JavaScript as "No" as it will then be slightly faster to process (it will then basically act as the old standard REST Resource Page asset.
- Output Options - Where you configure how the data from the request and JS processing will be outputted.
Before Asset Attributes Updated Trigger Event
#7207 - Idea by Nathan Callahan
A new Trigger Event has been added that will fire a Trigger before an asset's attributes are updated. This is basically the "before" version of the existing After Asset Attributes Updated event.
Audio File Asset
A new asset type has been added to allow the storage and uploading of any web friendly audio file.
The new asset type is called Audio File and works pretty much the same as the old MP3 File asset, except that it supports a range of different audio file types including .mp3, .mka, .m4a, .aac, .ogg, .webm, .wav and .flac.
This new asset type has been created as part of the deprecation of the existing MP3 File, which can no longer be created in Admin Mode or in Edit+. Eventually when you upgrade to the upcoming 5.5 version, all existing MP3 File assets will also be converted to this new Audio File asset.
Other Features & Enhancements
- #11684 - Change Thesaurus Hierarchy_Mode Default
- #11815 - Make warning about missing required metadata fields more obvious
- #11894 - Update Polish translations for Edit+
Bug Fixes
- #11477 - User with write access only doesn't see required metadata note in Admin Mode
- #11538 - Unchecking 'Automatically add remaps' doesn't affect remap generation for children assets
- #11765 - Appending "_nocache" without the forward slash should serve a 404 page
- #11845 - Cloning a JS file under a JS File Folder, gets the wrong file name
- #11850 - After Cloning an image in Edit+, Edit link doesn't function
- #11853 - GIT Clone URL doesn't accept SSH URLs on a non-standard port
- #11859 - Some metadata fields when setup in a certain way, trigger change updates every time metadata screen is saved, without any changes actually being made
- #11875 - Newlines in custom metadata field output prints <php> tags
- #11876 - Hitting backspace or delete within a raw HTML container in Edit+ doesn't active the Save button
- #11881 - Cannot acquire locks on Data Source Record Set shadow assets
- #11884 - Problems with asset metadata "from the DB" when using custom meta tag format
- #11886 - Cannot pass shadow asset IDs as dynamic root nodes in Listing assets
- #11889 - Typo on Details screen of SugarCRM Token asset
- #11897 - Setting metadata using JS API fails on asset in safe edit status.
- #11898 - Typo on Git Bridge details screen for the Remote Git URL field
Bug Fixes
- #11725 - Can't add design to User Group Manager Page
- #11740 - Can not configure Dynamic Parameters on Trigger Action Set Attribute Value unless a static Value is provided
- #11794 - Unable to Contextualise Default Metadata Value in Matrix
- #11822 - Ace Editor search tool has incorrectly wrapping search field elements
- #11841 - Password reset page is wrapping the page name in incorrect characters
- #11847 - "Now" button in date fields in setting screen's Date section does not work.
- #11849 - Status section on Image details screen in Edit+ disappears after a save
- #11854 - Some boolean keywords evaluate incorrectly in conditional keyword statements
- #11855 - globals_user_member_groups keyword returns different format array if groups are nested
- #11880 - Permission denied issue when try to cancel the Safe Edit Status
Minor Enhancements
- #9401 - Make Git File Bridge follow HTTP proxy settings
- #11708 - New standard for password fields in Admin interface
- #11721 - Secure flag for Session Cookies should be set to Yes by default
- #11782 - Add hash symbol back into the asset tag
- #11789 - Show warnings for use of HTTPS checkout on Git Bridge details screen
Bug Fixes
- #11619 - date_format keyword modifier should only treat values as UNIX Timestamp if they are at least 9 integer characters long
- #11636 - Cloning a Search Folder asset attempts to clone results, fails
- #11659 - Adding, updating, and deleting content containers on Standard Pages trigger asset updated event inconsistently
- #11722 - In admin(_admin), the Edit+ WYSIWYG Editor Preferences under global preferences are not followed when editing a metadata wysiwyg field.
- #11734 - Setting Default on Metadata fields does not evaluate Metadata Field Updated or Metadata Value on trigger conditions
- #11739 - Title on Active Locks screen incorrectly says "Global Preferences"
- #11755 - Asset map name search functionality doesn't search for lower case
- #11759 - Rename file name on custom form file upload field doesn't work on files with uppercase extensions
- #11766 - Using $1 in ^replace modifier can cause PHP syntax errors
- #11768 - Only some of the password rules config screen can be edited by a system admin
- #11771 - Clean up Google Analytics screens when there is no initial data yet fetched
- #11772 - Creating a trigger with a category or sub-category name with integer only throws the fatal error.
- #11787 - Fatal db error thrown if Internal Message field "subject" exceeds 255 characters limit
- #11791 - Backend users should be able to view assets in the Trash
- #11796 - Cannot Reenable Customised Bodycopy of Custom Form Section
- #11797 - "If the asset is the first/last on the page" Keyword Selector in Asset Listing generates wrong keyword
- #11799 - Cancelling Safe Edit on a Standard Page that has a changed nested content container makes the content not render
- #11805 - Fix the individual goals listing on the Goals screen of Edit+ Analytics
- #11804 - Type checking missing on Nest Content Arbitrary Paint Layout chooser
- #11810 - Typo in PayWay payment gateway available keywords dropdown
Other features & improvements
Deprecations & removals
Bug fixes
Generating release notes...