Reports
Our new Workflows report displays a list of in-progress and/or completed workflows within sites that you can access.
The report defaults to displaying all In Progress workflows, but you can use the quick filter tabs at the top to display Overdue workflows as well.
Additional filtering options are available under Filter Results:
Learn more about the Workflows report in the Cascade CMS knowledge base.
UI
We've made some improvements to the look and feel of Workflows that we hope you'll enjoy.
And finally, the Workflow screen itself has been redesigned with the timeline in mind to make the current step, history, and comments easier to locate.
Learn more about Workflow in the Cascade CMS knowledge base.
UI
Cascade Cloud customers can now edit content in multiple browser tabs simultaneously!
So feel free to...
...all without needing to close previous Edit screens first. Learn more about creating content in the Cascade CMS knowledge base .
For on-premise Cascade CMS customers: this feature will be available soon! Keep an eye on our Release Notes for further updates.
Development
We've added several new class type utility methods to check whether an Object is a given type:
isString
isList
isMap
isArray
isSet
isIterable
Example:
$_PropertyTool.isIterable($category.selectedFieldItems)
## Expected output: true
A new List Tool method allows you to randomize the order of a List. Example:
$_ListTool.shuffle(["A","B","C"])
## Example output: [B, A, C]
A new Number Tool method allows you to test if an Object is a number. Example:
$_NumberTool.isNumeric("3")
## Expected output: true
A new Serializer Tool method allows you to convert a Map to a JSON String. Example:
#set ($a = {"test": "testing", "array": [1, 2, 3]})
$_SerializerTool.toJson($a)
## Expected output:
{"test":"testing","array":[1,2,3]}
For more information about tools and methods available in Velocity, see our Velocity Tools page.
UI
We're excited to introduce a new editing experience to you - while editing a page, click Show Edit Preview to see a preview of your changes as you make them!
With each change you make, the edit preview will refresh to show you what your content will look like.
Publishing
You can now schedule assets to publish or unpublish at a chosen date and time with a new Optionally Publish/Unpublish Later field on the (un)publish menu. While an asset is scheduled to be published, it won't be included in other publish jobs.
New content can still be scheduled to publish by specifying a Start Date, but the Optionally Publish Later option is great for existing content that still needs to be indexed by other content before the scheduled publish date.
UI
Create your own shortcuts to assets in Cascade CMS by starring them. Try it out by right-clicking an asset or previewing it and clicking the star (⭐) icon.
Your starred assets can be found in My Content, with your recent history in the Search box, and inside asset choosers.
Publishing
To help prevent leaving empty folders on your web server, when unpublishing assets Cascade CMS will now check if the assets' parent folder on the web server is empty and if so will attempt to delete it (with the exception of the site's base folder).
Development
We've introduced new link rewriting options that can be configured under Site Settings. Choose whether internal links within the same site are written as absolute, relative, or site relative links by default.
These settings can be overridden at the asset level which replaces the "Maintain site-relative links in content" option.
Development
New user API keys provide a secure way to call Web Services/REST API operations from external scripts and applications. Your API key is unique to your user account and can be used to authenticate with Web Services scripts and applications in place of a traditional username and password.
Once generated, you can regenerate or revoke your API key at any time. Read more about API keys in our knowledgebase: User and Account Settings
Accessibility
We believe content creation should be accessible to all and keep that goal in mind for everything we design. As part of our ongoing efforts we've made a number of accessibility-focused improvements to Cascade CMS such as:
Development
Image file dimensions are now available via Cascade API and Index Blocks. If applicable, an image file's height
and width
will be included in Index Block XML or can be accessed with a new dimensions
property when working with an API object.
Having image dimensions available dynamically can be useful when creating responsive images with a srcset
attribute.
For more information, check out our API changelog.
Administration
We have some exciting improvements to system-wide announcements (formerly broadcast messages) to share with you:
We also want to introduce you to a new type of announcement: the Sticky announcement. Sticky announcements appear on all user Dashboards and persist until the announcement is removed.
Read more about announcements in our knowledge base and visit Administration > Tools > Announcements to try them out!
Development
A new Regex Tool allows you to compile regular expressions for comparison and matching use. Example:
$_RegexTool.compile("^[a-zA-Z0-9]*$")
#set ($text = "A string to search for links containing the pattern https:// .")
#set ($patternString = ".*https://.*")
#set ($pattern = $_RegexTool.compile($patternString))
#set ($matcher = $pattern.matcher($text))
#set ($matches = $matcher.matches())
## Expected output: true
If you need to create unique IDs for elements such as element id
attributes, you can now generate universally unique identifiers with the .generateUUID()
method. Example:
$_StringTool.generateUUID()
## Sample output: 29ecf0f3-7db4-41b5-94a2-3e170338c3b5
We've also added a new method to build Strings. Example:
#set ($stringBuilder = $_StringTool.getStringBuilder())
#set ($_void = $stringBuilder.append("foo"))
#set ($_void = $stringBuilder.append("+"))
#set ($_void = $stringBuilder.append("bar"))
$stringBuilder
## Sample output: foo+bar
We've added several new methods to unescape HTML, JavaScript, and XML markup. Examples:
$_EscapeTool.unescapeHtml('Here is a String with an escaped ampersand (&).')
## Expected output: Here is a String with an escaped ampersand (&).
$_EscapeTool.unescapeJavaScript('if (i === \"foo\")')
## Expected output: if (i === "foo").
$_EscapeTool.unescapeHtml('<foo>bar</foo>')
## Expected output: <foo>bar</foo>
For more information about tools and methods available in Velocity, see our Velocity Tools page.
Publishing
When contributors move, rename, or delete content without unpublishing it first, it can result in outdated content being left on your web server. This content is no longer maintained by the CMS, but can still be picked up by search engines. We're helping you prevent that by unpublishing content from all Destinations during any move, rename, or delete action by default.
The Unpublish option enabled by default individual user preference has been removed, since we're now unpublishing by default for all move, rename, and delete actions.
If you're not using workflow, a new Advanced Unpublish Settings area is available when moving, renaming, or deleting content to allow you to select Destinations or Outputs NOT to unpublish if needed.