Move to Trash Asset Map Option


A new option has been added to the context menu for assets in the Asset Map called Move to Trash. Right clicking on an asset in the Asset Map and selecting this option will simply move that link of the asset to the Trash.

This is effectively the same thing as dragging & dropping the asset into the Trash or selecting the asset and hitting the delete key on your keyboard.

Safer Cascading of Live Status to Child Safe Edit Assets

#6187 - Idea by Dave Letorey

Previously, when you cascaded a status of Live to all child assets, a warning would appear notifying you that this action may cause unintended canceling of assets in Safe Edit. This warning was easily overlooked, especially when you would set a cascading Future Status of Live because you would have no way of making sure that when the future status job would run, that not child assets would be in Safe Edit.

To make this process safer, we have made the cascading of the Live status safer by not making it affect any assets that are in a Safe Edit type status. This includes assets that are in Safe Edit Pending Approval and Safe Edit Approved To Go Live.

This means you can safely cascade a Live status, even set a Live Future Status, without having to worry about unintentionally canceling anybody's Safe Edit changes.

Likewise, if you cascade a Cancel Safe Edit change on an asset (making it Live), the Live status will only be applied to child assets that are also in a Safe Edit status.

Asset Map Improvements

#6318, #6796, #7666, #10451

Several improvements have been made to the Asset Map.

Most notable of these changes is the smooth scroll when you click on the Binoculars icon to find an asset in the Asset Map. This makes it much clearer of where the asset is in context to the current positioning of the Asset Map. The scroll will also make the highlighted asset positioned in the center of the Asset Map rather than the bottom or top.

We've also improved the layout of the context menus in the Asset Map if you are working on a smaller screen resolution, for example when using a laptop. The context menu will now break out into a 2-column layout if there isn't enough screen height to fit the whole menu in.

Improved Ace Editor Code Search


The search for the Ace Editor in Admin Mode has been improved with two enhancements.

The search is now fixed to the header of the code editor so that as you scroll down the page of a large code block, you can always see the search tool.

Secondly, if you want to use the browser's search tool instead, it will now pick up code that is separated by spaces or other various characters. Previously this wouldn't be found by the native browser search due to a missing configuration in the Ace Editor implementation in Admin Mode.

Edit+ WYSIWYG Editor Improvements

#9729#10430, #10465, #10478

Some usability and functional improvements have been made to the Edit+ WYSIWYG editor which include:

  1. When no content has been entered into the WYSIWYG and the screen is saved, the empty default <p></p> tag will no longer be saved against the contents or the metadata.
  2. The placeholder container that showed the text "This area contains no content yet. Click here to start editing." has completely been removed. This was causing more problems than benefits and was originally only implemented for cross browser issues with IE8 and IE9 which are no longer supported browsers.
  3. The WYSIWYG toolbar now becomes completely hidden when you are not focused in on a WYSIWYG editing container. This improves the screen real estate and also makes the Ace Editor search tool work better when there are both WYSIWYG and Raw HTML content containers on the screen.
  4. The minimum height of the WYSIWYG editor has been increased to stop the "jumping" of the editing area when you click in and out of a WYSIWYG field when there is little or no content in it.

Always Send cache-control Header


Previously, when the Send Cacheable Header setting was turned off in the Cache Manager, Matrix would not send a cache-control header at all.

This means that the resulting cache-control header that reached the user's browser was inconsistent and would vary depending on your accelerator cache settings and the session.cache_limiter setting in your server's PHP configuration.

Now, when Send Cacheable Header is disabled (when you don't want a page to be cached at all), Matrix will always send the following cache-control header:

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 

This is to ensure the page is never cached in any accelerator or browser cache.

New Persona Evaluation Keyword


A new keyword has been added that lets you evaluate the server-side conditions of a Persona from anywhere.

Personas can be set up with a range of keyword conditions which makes the Persona evaluate as either true or false.

You can now use the %globals_persona_active:<persona_asset_id>% keyword to evaluate the conditions of a Persona in things like Trigger Conditions or conditional keyword blocks. They keyword will either return 1 if the Persona evaluation is true, or 0 if it's false.

For example:

   //print content here if the persona asset #1234 is evaluated server side as true
   //prints content here if it is evaluated as false

This means you can store complex and multi-operator keyword comparison logic in a single and global space and easily use that condition check with a simple keyword.

New Keyword For Printing Current Linking Info


A new %asset_linking_info_current% keyword has been added which lets you print linking info of an asset based on its current context.

This is similar to the %asset_linking_info% keyword that was added in version, which gives you all linking information about an asset in a JSON array.

However, this new linking keyword only prints the linking info of a single asset link location based on its current lineage of where the keyword is used.

The following is an example output of the %asset_linking_info_current% keyword:


You can also use the ^index keyword modifier to print a specific value. For example, you can conditionally print content based on the asset's link type:

   // This asset link is hidden from the menu

Other Enhancements

  • #8769 - Purge Squid Cache to log output of squid client
  • #9386 - Enable Replace Accented Characters in Web Paths option in system config by default
  • #9405 - globals_asset_array keywords should return array objects rather than strings, just like their asset_array counterparts do
  • #10287 - Edit+ Unnecessary cache busting
  • #10345 - Clear Cron Deadlock script uses --reset instead of --clear
  • #10351 - Remove dependence on I18N_UnicodeNormalizer
  • #10427 - Asset finder still unnecessarily refreshes sometimes
  • #10431 - Bundle the Asset lock forcibly acquired emails
  • #10434 - Support prevention of Live status on Standard Pages if content containers have missing required metadata
  • #10457 - Change "Settings" section name to be called "Variation Settings" and restrict the Add Persona button
  • #10485 - Update default content container formats for all Asset Builder type assets
  • #10486 - Snippet keywords should create NOTICE links
  • #10549 - Enforce mime type checking when creating a file asset in Matrix backend
  • #10585 - Allow Data Record assets to be created under more asset types
  • #10587 - CSS and JS File Folder Auto Regenerate File setting should be set to Yes by default

Bug Fixes

Set Status Trigger Action Causes Incorrect Status for Dependent Children


This bug was occurring when you used the Set Status Trigger Action to make Standard Page assets Live as soon as their workflow process was finished and the asset was in a status of Safe Edit Approved To Go Live.

Often a trigger like this was required to set up so that assets that were approved to go live after a workflow process, were made Live instantly instead of having to manually set the status to Live.

Because of this bug, the trigger needed to be configured to set a Future Status of Live instead, due to the Trigger firing the Live status on all dependent assets before they could go into a status of Safe Edit Approved To Go Live first.

With this fix, you can now successfully set up an automatic workflow go-live trigger using the following settings:

  • Trigger Event: Status Changed
  • Trigger Condition: Asset Status - Asset has a current status of Safe Edit Approved To Go Live or Approved To Go Live
    (probably also want other conditions in here, such as asset is of type Page)
  • Trigger Event: Set Status - Set status to Live

Other Bug Fixes

  • #8345 - Update 'filter' field in getGoogleAnalyticsStatistics to follow Google Analytics API standard
  • #8578 - link_target_* keyword returns site asset when it shouldn't
  • #8579 - replace_keywords fails when subsequent modifier contains spaces
  • #8670 - Remove content template selection option on type format of Paint layouts as it's not supported yet
  • #8839 - Decision Tree without URL can't progress past first question
  • #9032 - Images that are pasted/dragged in and have the low res preview, should not have re-size drag handles available
  • #9082 - Invalid characters in raw HTML can break content when switched to a WYSIWYG editor
  • #9130 - On the Edit+ Workflow screen, in the Workflow Summary section, the Group Logic td of each Step needs to be wider.
  • #9174 - globals_site_assetid returns incorrect value when trigger activated by Edit+
  • #9180 - Asset listing "Customise No Results Bodycopy" Dissapearing
  • #9251 - Keyword not being added in Raw HTML Div when not focused
  • #9293 - When in Rollback Mode, can we disable the functions in the asset map contextual menu that cannot be used.
  • #9302 - "Use the link value" when creating a link is limited to 20 characters, but not limited after commit
  • #9316 - Using "asset_contents" keyword in the metadata for Redirect Page will break the asset's metadata screen
  • #9387 - When committing Settings screen of asset with no created_userid, current user is set as created_userid
  • #9519 - Snippet dropdown broken in IE in Edit+
  • #9673 - Design areas with cache="yes" render different whitespace with _nocache
  • #9702 - Cloning SAML Account Manager is incomplete
  • #9712 - Bug downloading csv file on Edit+
  • #9769 - Unsaved changes warning doesn't trigger after WYSIWYG edit
  • #9896 - Content Container with Template applied is editable when locks aren't held
  • #9929 - Export/Import XML doesn't handle paint layout conditional keyword ids
  • #9935 - TRIG0006 errors with valid triggers cloning assets
  • #10010 - Setting a Dynamic Create Location in an Asset Builder, without setting the Root Node with throw php error when previewing asset
  • #10023 - Append Query String option on REST assets with multiple URLs only uses first URL
  • #10027 - CSV Data Source missing Web Paths screen
  • #10032 - File folders should only compile sub file assets that are matching it's safe edit status state
  • #10048 - .m4v video files are displayed as text in Chrome and Safari - no mime type defined
  • #10087 - Using an invalid keyword as the Set Value for the Replacement Root Node in listings will show Fatal errors on the front end
  • #10116 - Global and asset keywords don't get evaluated within the Page Contents container of Paint Layouts
  • #10245 - Update note in Additional Conditional Delivery Fee section of the Checkout page Asset
  • #10263 - Creating triggers outside the Trigger Manager results in Matrix Warnings
  • #10329 - "Insert keyword" select field is no stacked above textarea in classic raw html editor
  • #10339 - Send Email Form Submission Action throws many alerts if Classic Editor is enabled in Admin
  • #10371 - Minimum/Maximum Depth/Height values on Asset Listing Page asset can be null, and won't save as zero
  • #10375 - Deleting Multiple assets from the Asset Tree that exist in trash already with throw HIPO errors
  • #10390 - When Previewing an asset in Admin, changing either the Preview URL or the Context in the Preview options causes the Preview to open in a new window.
  • #10401 - When Submitting an Online Poll Question when you are in a non Default context in Admin, Php Errors are shown and Poll option labels are deleted
  • #10402 - Asset with nested Remote Content display incorrect with %begin_asset_contents^keyword_modifier%
  • #10414 - Using mysource_files/ when referencing git files in css and scss assets removes the path
  • #10425 - Setting future status in Edit+ throws JS error
  • #10438 - Multiple HIPO confirmation screens do not wrap text for asset names.
  • #10442 - Remove OEM FB checks from system_check.php
  • #10445 - Keyword "event_duration_ical" should not use months or years in its result
  • #10452 - Asset map loses its target indicator in certain situations
  • #10453 - Multiline headings in WYSIWYGs overlap
  • #10454 - When previewing pages that have a URL on another domain it should open with _nocache
  • #10462 - Update Twitter Status trigger action fails to authenticate
  • #10463 - Trigger action "Redirect to URL" exiting the process if the redirect URL set is empty
  • #10469 - Send X-Matrix-Read Permission Header fails to send header if user is a "restricted" public user
  • #10483 - Problem with required attribute on Asset Builder
  • #10484 - setContentOfEditableFileAsset JS API function always returns error
  • #10490 - User restrictions bug with Type 2 links
  • #10505 - Simple Edit conditional Metadata field not being updated/rewritten on export/import
  • #10507 - %asset_variations_content% printed Standard Page causes infinite loop
  • #10516 - Squiz Suite Manager if moved from the Web Services Folder it can not be moved back in.
  • #10519 - Ranged responses on files are returning the wrong Content-Length (when requesting past end of file)
  • #10525 - Server-side JavaScript output is misplaced on using src attribute if src ends in a comment
  • #10539 - Fix odd dates in Google Analytics Connector's Select View list
  • #10551 - Grammatical error on Workflow screen in admin mode ('.Add New Workflow Stream)
  • #10554 - Selecting an image in a WYSIWYG requests the image multiple times
  • #10562 - Custom form with file upload question type will not be submitted if file name contains special characters.
  • #10563 - Matrix Metadata SOAP Service function GetMetadataFieldsDetailOfSchema() not working
  • #10570 - Remove Template on content container should remove the metadata schemas on containers too
  • #10591 - If Commit button text is empty, show default value instead
  • #10599 - Previewing using In New Window/In Edit Mode with an Asset linked in multiple locations will always display the asset in its first link location
  • #10600 - Matrix script matrixsqlclient.php not working
  • #10603 - X-Matrix-Read-Permissions headers should not override existing X-Matrix-Read-Permissions headers set by trigger
  • #10601 - Safe editing a file folder and editing a safe edited file under it causes it to lose it's __data URL
  • #10626 - System Configuration - Active Locks - For Form Contents Asset, Matrix is showing the Asset type as 'Form Email
  • #10628 - Asset tag line is missing for form questions