You can now have access to the event’s details when selecting a calendar event and be redirected to the already existing details page of that particular event. It is also possible to map a Calendar Event’s specific URL, along with some other fields, in order to use it in emails so the recipient can click on it and be redirected to the Event’s details.
Release Notes
We're introducing advanced script loading options for JavaScript Client Extensions in Liferay, providing developers more control over how JavaScript is applied to pages. This update allows the specification of async and defer attributes directly in the extension's configuration, optimizing the loading process and improving page performance.
Benefits for users:
- Improved Page Load Performance: by setting
asyncordeferattributes, scripts can be loaded non-blocking, enhancing page responsiveness. - Enhanced Control: developers can pre-set these attributes in the YAML configuration or through the UI, ensuring scripts behave consistently across all pages without further adjustment.
- Streamlined Configuration: once set, these attributes are locked at the extension level, eliminating discrepancies and simplifying script management.
Allow developers to specify additional attributes to the <script> tag when deploying in with the JS Client Extension.
Example usage in client-extension.yaml: liferay-portal/workspaces/liferay-sample-workspace/client-extensions/liferay-sample-global-js-2/client-extension.yaml at master · liferay/liferay-portal
scriptElementAttributes:
async: true
data-attribute: "value"
data-senna-track: "permanent"
fetchpriority: "low"
Or, developers can configure the attributes via the create Client Extension UI too:
When configuring a JS CX on a page and async/defer Boolean attributes are present in the CX (set in the yaml / defined through the UI), the following behaviors apply in regards to the Load type options:
- The attribute set in the CX will be used and the ability to change it when applying it on a page will be disabled.
- When both attributes are set in the CX,
asyncwill be applied. - When
asyncordeferis set to false in the CS, the related option will be removed from the Load selector. (e.g. ifdefer: falsethe load options available for the user will bedefaultandasync).
This feature introduces the capability to connect Liferay Objects with SugarCRM Objects, empowering users to synchronize and store their data efficiently between the two platforms. By bridging these systems, users can streamline their workflows, enhance data consistency, and leverage the robust features of both Liferay and SugarCRM.
Users can now, with low effort, connect their Liferay and SugarCRM environments, eliminating the need for manual data transfers and reducing the risk of errors. This enhancement not only simplifies data management but also enhances the overall user experience by providing a cohesive and integrated ecosystem for managing customer data.
We have improved the behaviour of an existing configuration to be able to properly publish a child page in a Staging process to Live site without its parent(s). This also improves the performance of publishing changes.
It is now possible to select Date Times as a product option type, configuring purchase options for products based on date, times, time zones, and durations, allowing for the sale of time slots.
Manage contacts directly related to accounts like phone numbers, emails, websites, addresses.
A new Contact Tab in Account details page with 2 internals tabs was created:
- Addresses
- Contact Information
Users with “Accounts > Account Entry: Manage Addresses” permission should be able to manage their contacts with all these actions:
- Add
- Edit
- Remove
- Mark as primary
Example of managing a phone number:
Users without “Accounts > Account Entry: Manage Addresses” permission should be able to only view the existing phone number entries.
The Server Administration interface provides powerful tools for controlling the server. As an added layer of security, CAPTCHA is now required for actions in Server Administration pages and the Gogo Shell page. Due to the sensitive nature of these controls, the system will still enforce CAPTCHA on these pages, even if the “Maximum Challenges” configuration is set to a negative number.
We are constantly working on improving performance of Publications. We have implemented improvement for Timeline and Conflict checking icons.
If a conflict appears between the scheduled publication and Production before or during publishing stage, we have added a functionality to provide more information inside Liferay notifications when this situation occurs.
This features creates a reviewer role that has read-only (and no update) permissions. It grants permission to review the draft of a content page, or the pages that are submitted through a workflow and are still pending approval and publication.
Page Creator now can efficiently manage permissions for their website, distinguishing between public and restricted pages. Key functionalities, such as unique designs and restricted access, are incorporated seamlessly.
Requirements include easy identification of page visibility, bulk permission management, and configuration options for both individual pages and entire branches.
Provide the option at Instance and Site settings to the XML sitemap to allow customers to customize the inclusion or exclusion of content according to the SEO technical requirements.
When the User reaches Control Panel → Instance Settings, a new menu item (SEO), under Platform, will be shown. By accessing this menu, the user will be able to include/exclude different content.
When the user has Download permission on a file, then the Documents and Media File result features a download link in the Search Results widget in all out-of-the-box widget display styles.
The Search Results widget Template Context has received a new field to obtain the download URL in custom display templates: ${entry.getAssetRendererURLDownload()}
Part of the recurring compatibility testing, Elasticsearch 8.13.x has been added to the compatibility matrix to the corresponding Liferay versions.
Note: Compatibility with newer Elasticsearch minor versions is always tested in two ways:
Latest-Latest: Testing the latest Liferay version with the latest available minor version of Elasticsearch → e.g.
Master/2024.Q2 + Elasticsearch 8.13Minimum-Latest: Testing the minimum Liferay version where Elasticsearch 8 compatibility was first made available with the latest minor version of Elasticsearch →
DXP 7.4 U81/DXP 7.3 U31 + Elasticsearch 8.13
This way we can not only provide compatibility for the latest Liferay versions, but also backwards compatibility, allowing a broader customer base and deployments to operate their stack with an up-to-date search engine version.
As Elasticsearch is usually released a new Minor version roughly every two months, this is a recurring process and a planned activity for our team.
Liferay ships with an updated Elasticsearch connector using 7.17.18 as the client version. It is also for the development and testing purpose for Sidecar server.
The solution involves implementing advanced filtering options on the Builds and Deployments pages of the platform. This feature allows users to filter builds and deployments by key parameters such as date and environment. It is structured as following:
Date Filter: users can select a specific date or a date range from a calendar interface. This allows to view builds and deployments that were created or modified within that timeframe, facilitating quick access to historical data or recent updates.
Environment Filter: this filter enables users to select from pre-defined environment options (e.g. development, testing, production) viewing only the builds and deployments relevant to the chosen environment. This is particularly useful for teams managing multiple environments and needing to track their respective changes efficiently.
For custom objects, we have add the possibility to upload and save an attachment file in only one step. As another field of the entry, users can upload directly a document to an attachment field using Base64 format.
"AttachmentField1" : {
"fileBase64" : "iVBORw0KGgoAAAANSUhEUgAAAD0AAAAXCAIAAAA3N9DuAAAAA3NCSVQICAjb4U/gAAAAEHRFWH", "name" : "file.png"
}
And, to recover the values of the entry, they can do it in the same format using nested fields.
curl -X GET \ -u 'test@liferay.com:test' \ 'http://localhost:8080/o/c/mytestobjects/by-external-reference-code/users-computer-attachment-1?nestedFields=usersComputerAttachment1.fileBase64'
For sure, the previous options of uploading and downloading files of an entry are available too so the user can decide which to use in any case.
Only available for Custom Objects fields.
Until now, in GraphQL, it was not possible to create a query (or mutation) where the user could select the version to execute. Besides that, in case more than one endpoint had the same name but in different applications, you couldn’t select which one to use.
In order to make queries and mutations unique in GraphQL, we have created a new structure using a namespace with the following format:
Path + “_” + “v” + MayorVersion + “_” + MinorVersion ( 0 by default ).
query {
structuredContents(siteKey: "20117") {
items {
title
}
}
}
VS
query {
headlessDelivery_v2_0 {
structuredContents(siteKey: "20117") {
items {
title
}
}
}
}
Feature Status Change
New link added to the chart from the organization management admin pages. Chart now supports search functionality. Users with permissions can view or edit more details of the Organization, Account or User when it is selected on the chart.
Feature Status Change Use the platform's configurable purchasing rules to dictate which product options need to be purchased together when setting up products with options. You can set which product options must be purchased together and/or which product options cannot be combined together to create a valid product bundle. You can also limit the number of products from a particular group of products that can be purchased together. |
Feature Status Change
The ability for a buyer or sales agent to edit a product bundle directly from the mini-cart has now been added. Previously, if a change had to be made the bundle had to be deleted from the cart and added again. This allows for more speedy alterations to be made before proceeding with check out.
Feature Status Change
Ability to add new steps to the checkout process via client extension. |
Feature Status Change
Users can add read-only fields to object definitions that automatically increment for each new entry.
Key Features:
- Customize Starting values - Users can set a starting value. This flexibility allows for better alignment with specific business needs and workflows
- Customize labels - Users can set prefixes and suffixes to provide alphanumeric keys appended to the incrementing values.
This new feature provides the ability for the Order Manager to make refunds against on-line payments using the stand alone payment gateway. While the refund amount can be configurable, the refund is always made against the payment method of the original payment.
This feature decouples the payment gateway from the order engine in order to allow you to capture payments against objects and to support new payment methods via client extension.
You can use Liferay’s revamped organization management chart to view, manage, and search through organizations, associated accounts, and users. Users with permissions can now view or edit more details of it on the chart.
We are excited to introduce enhancements to streamline your cloud management experience! With our updated cloud console view, you will have a detailed breakdown of subscription metrics per environment, empowering you to manage resources more effectively. Additionally, our new storage consumption tracker offers real-time insights into project storage usage, ensuring you're always informed about quota limits.
Under all supported formats, users can select the origin and destination site of the data so it is possible to export and import object entries between any site.
With this improvement, the Data Migration Center allows users to export and import Object Entries using CSV files. Not all field types are supported but many of the most used ones are:
Supported field types: dateandtime, date, decimal, integer, longint, longtext, precissiondecimal, richtext, text and picklist.
In order to help users, only supported fields are available for exporting at the UI. As new types are allowed, they will appear available in the UI.
Pages served by Liferay might make use of third party cookies. In order to inform Liferay to manage them as part of the user cookie consent, now Portal developers and Content creators have a way to indicate the portal about them.
In order to make Liferay aware of them, the content creator or portal developer will need to update the markup to the following:
First, indicate the type of cookie following this format:
Second, change the markup depending on the element affected:
For example, embedding a video from a video provider, will see the markup changed in the following way:
- Before: <iframe src="..." />
- After: <iframe data-src="..." `data-third-party-cookie="CONSENT_TYPE_FUNCTIONAL" />
SCIM provides a unified, RFC compliant way to keep user/group data in sync between different applications. Liferay is a service provider and enables clients to be connected. Through the defined RESTful APIs and schemas, clients can perform CRUD operations to keep resources in sync.
Two new permissions were added to View and Edit the channel default tab in the Account Management Pages. Users are now able to activate/inactivate the tab.
Enables the ability to add new remote shipping calculations via client extension.
Ability to add new steps to the checkout process via client extension.
Users can add read-only fields to object definitions that automatically increment for each new entry.
Key Features:
Customize Starting values - Users can set a starting value. This flexibility allows for better alignment with specific business needs and workflows
Customize labels - Users can set prefixes and suffixes to provide alphanumeric keys appended to the incrementing values
Users are now able to properly search in the portal using the Search widget (in applications that have data restricted by account).
Now user are able to:
Configuration of document size for copying in D&M
Bulk copying of documents and folders
Currently the copy action for documents and folders is able to be performed in Portal without fully respecting the site-asset library relationship. The expected behavior is:
An asset library must be connected to a site in order to copy a document over to the site
A document cannot be copied from a site to an asset library (only the other way around)
We can enforce a stricter check when performing the copy action between asset libraries and sites. Instead of the end user receiving a success message when copying a document to a disconnected site, an error message should appear telling the user to set the connection first.
Document Types contained in a document are being copied in Documents and Media so that they can be easily reused.
Categories and Tags in Documents and Media are being automatically copied so they can be easily reused on a new site.
With this development, the publication of Knowledge Base articles will be schedulable, in particular, the feature is so designed:
The primary Publish button will have an arrow down with the “Publish” option, that will immediately publish the article, and the “Schedule” one.
Clicking the Schedule option, will make a modal appear so the user can set a date and time for the article to be published.
The Scheduled article will have the SCHEDULED status that will change to APPROVED on the scheduled date
A tooltip with the scheduled date information will appear when hovering the
question-circle-fullicon placed next to the SCHEDULED state.
Editing a scheduled article will provide the user the ability, by clicking the primary button that has turned into “Scheduled”, to:
Cancel the operation
Publish Now
Schedule: this option will save the article, date & time changes and the user will return to the previous screen before entering edit mode
Additional feature: A Knowledge Base article deletion action will move it to the Recycle Bin so that it can be restored.
This feature allows you to leverage the functions of Liferay’s caching framework. Our current measurements indicate about 10%/30% performance increase in database writing operations, also 10 times faster reading performance!
The user experience of the Management Toolbar present in multiple applications (Web Content, Blogs, Documents & Media) has been improved:
- Separate sections for filter and order.
- Changed “+” with “New” for clarity.
- Moved info icon to the right.
Now, admins can customize the configuration of the Rich Text Editors with this new client extension, allowing them to set the toolbars that are available on different applications. In the form, you will have to define the instances in which the configuration will be taken into account as well as the JS that contains the configuration:
Override default settings and tailor colors, fonts, and other design elements directly through the ThemeCSS Client Extension. This update ensures a visually consistent and brand-aligned experience for your website visitors. Simplify website customization and elevate your brand presence!
You can leverage AI to create draft product descriptions and images with a single click, improving your content creation efficiency and sparking creative inspiration. Experience the future of content creation – try AI-powered product descriptions today!
Our latest update introduces a new version of the TradeCentric Connector (formerly PunchOut2Go) for Liferay DXP 7.4, simplifying B2B integrations with your trading partners. Additionally, the Stripe Payment Method Client Extension, available on the Liferay Marketplace, allows you to offer your customers a wider range of payment options, fostering a smoother checkout experience. Boost efficiency, improve customer satisfaction, and unlock new business opportunities with this powerful update!
Utility pages are content pages managed at the site level. Since the default system-level pages are not customizable, you can use site-level utility pages to provide a unique experience. Several utility pages are available out-of-the-box. You can customize them or add your own.
Our latest update empowers you to design custom Sign In, Forgot Password, and Create Account pages.
Now, if an asset type (for example, an Object definition) has several related Display Page Templates, and one of them is marked as Default, we allow to map links to any of the existing Display Page Templates for that Asset Type, in addition to the Default one.
This new possibility allows some interesting use cases for customers, such as:
- Differentiated View Display Page and Edit Display Page for Object entries.
- Multi-step processes (that need different step URLs) can be now created by using one Display Page per step.
Sometimes the changes added to a publication needs to be reviewed by someone who is not a member of the site. The goal here was to make unauthenticated users able to review changes within a publication. For this we implemented a mechanism to generate a code, which can be used to access the Review Changes screen of a certain publication. Also this link could be easily invalidated/generated anytime by authenticated Publication Reviewers.
The goal here is to make the users able to move changes between publications. This is needed because sometimes users do not want to publish an entire publication, but also do not want to revert the changes which will not be published actually. With this feature users can move changes from one publication to another, creating subsets of changes, and publish them separately. For readers with technical knowledge: this is similar to cherry-pick-ing a commit in git from one branch to another.
A common problem we have heard from our customers revolves around the time required to complete an AB Test. If a customer’s page receives limited traffic, the time to completion could be many weeks if not months. Amidst the rapid changes in today's business landscape, this delay potentially negates the usefulness of test results. On top of this, if a user were to terminate the test prematurely, the insights they gathered from the test and the variant they created were lost.
In order to remedy this issue, we are now providing test results and the ability to publish a variant when an AB Test is terminated. Although these results cannot determine a winning variant with 100% confidence, they will give marketers a sense of how their variant was performing. Using this information, Marketers can now make educated decisions according to their specific time constraints.
It is important to remark that this feature is DXP-only, as it belongs to Analytics Cloud.
The ability for a buyer or sales agent to edit a product bundle directly from the mini-cart has now been added. Previously, if a change had to be made the bundle had to be deleted from the cart and added again. This allows for more speedy alterations to be made before proceeding with check out.
Capabilities:
- Azure DevOps Authentication: Supports integration of Azure Git repositories via Azure DevOps with Jenkins, including PAT generation for authentication.
- Jenkins Build Integration: Configure Jenkins to poll or check the Azure repository based on specific triggers.
- LCP.json Setup for CI Service: Define Azure DevOps as the SCM provider and specify details for Jenkins interaction.
- Deployment Configuration: Allows push from GitHub to Azure DevOps and deployment from Jenkins to the designated infra environment.
Benefits:
- Versatility: Users can leverage Azure DevOps as their Git repository provider while working within Liferay Cloud.
- Automated Updates: Automatic polling of the Azure repository every 5 minutes, ensuring timely builds upon detected changes.
- Security: Utilizes Personal Access Tokens for specific and secure authentication, combined with best practices for token management.
Reducing downtime, improving operational and resource utilization efficiency with the new Concurrent and Sync reindex execution modes providing high-availability in search capabilities while the operation is running.
Admins now can define views and select fields that are localized, so users will access the corresponding translation when visiting the page. Additionally, the names of the columns and filters are also localizable.
In order to use this feature it is needed to enable “Translation Support for Object Entries” in the Feature Flags menu before enabling “Data Set Manager” in the beta section of the Feature Flags menu.
With the Data Migration Center, users can export and import, in a very easy way, Objects entries and Objects definitions from one instance to another using JSON files. The actions executed can be consulted later in a list when you can download the files generated every time is needed.
The Analytics mobile app allows users to access the main reports and dashboards on-the-go to stay on top of the most relevant metrics for the business.
We have enhanced our recommendation engine to provide two new recommendation algorithms: one focused on recommending content based on the user's browsing history on the website, and the other one providing recommendations based on most popular content. These recommendation strategies can be used by adding the matching content collections to any page. Experimentation and attribution is also possible by comparing them through an AB test that determines the best strategy to increase CRO.
Liferay Portal 7.4 CE GA101+ and Liferay DXP 7.4 Update 101+ and Liferay DXP 2024.Q1 are bundled with Elasticsearch 7.17.14 as the Sidecar server.
In addition, the Elasticsearch client libraries have also been upgraded to 7.17.14. Refer to the Breaking Changes notes below for more details how this may impact deployments.
LXC now provides anomaly detection to identify disruptions in the expected website traffic.
Anomalies in traffic volume are detected through a comparison with historical data, taking into account seasonality. Users can also create alerts based on custom events and schedule notifications when thresholds in metrics are exceeded.
Now, users are able to fill out object entries in parts, allowing them to save data as draft and return at their convenience to complete.
This feature addresses the inconvenience of not being able to remove specific entries from user invitation forms, enhancing the user experience for admin users who create these forms. It solves the problem of inefficient form management, allowing users to remove entries without starting over.
The feature enables users to remove entries from the invitation form by clicking a designated removal button, with a confirmation modal to prevent accidental removal.