v4.8.0-rc.2024.3.28 beta release
Release date: April 2, 2024
v4.8.0-rc.2024.3.28 beta release has 34 bug fixes, 28 improvements, and two new features.
Significant new features
- GraphiQL Explorer:
- Removed sorting for root fields, nested fields, and input arguments.
- Restored the sorting logic for interfaces that was previously removed.
- Hovering over an image in the preview pane now displays the image's crop name and size.
Significant improvements
- GraphQL:
- Classes more performant.
- Expanded query capability.
- Expanded access to view system.
- Enabled access to arbitrary Java methods.
- Added Java code generator.
- Merged CDA and CMA into a single GCA API.
- Removed extraneous Auto Awesome icon
from text fields that do not interact with ChatGPT. - In board view, the search panel's current sort field appears in each card. For example, if the search panel is sorted by update date, the update date appears in each asset's card.
- Improved performance of the References tab in the Content Type widget by implementing
DataCache
, thereby avoiding unnecessaryQuery
and recursive reference lookups. See "Breaking changes," below. - Migrated the class
HttpServletRequest
toWebRequest
. See "Breaking changes," below. - Embedded forms now have the same background shading in the header when the form is collapsed. Previously, when an embedded form was collapsed, the header was lost the background shading.
- Improved accessibility and usability of the rich-text editor's find/replace toolbar.
- The internal precision of an asset's scheduled publication date has been reduced to minutes, reflecting what is visible in the date picker. (Previously the precision was stored at the selected date:hour:minute, and additional seconds and milliseconds were included based on the time the editor clicked Set in the date picker.)
- Refactored classes in the package
com.psddev.translation
(and subpackages) to facilitate integration with future translation services. - A setting is now available to ensure the Name field in the Name Revision widget is required.
- A role with publish override permission now sees read-only workflow statuses to which that role does not have permission. For example, an article has remaining statuses
Review
,Proofread
, andPublish
. An editor has permission only to publish the article using Publish Override. When the editor opens the Workflow widget, the statusesReview
andProofread
are read-only labels, giving the editor an indication that clicking Publish Override skips those two statuses. - Added a permission for allowing editors to restore an asset from archive to live. This setting prevents an editor without this permission to publish from effectively publishing an archived asset.
- Moved the permission for Manage Reports from Additional Permissions to UI.
- Removed
GuideField.js
as its features were implemented in TypeScript. - Updated Gradle to v8.6.
- Reduced build times in GitHub Actions.
- Refactored code to avoid false positives in Sonar checks.
- Upgraded Playwright to 1.41.2.
- Integration tests:
- Added integration tests for paging, a dependency for content template bulk editing.
- Added integration tests for sticky search.
- Added integration tests for content reporting.
- Added integration tests for Playwright 1.41.2.
- Added integration test for content edit forms that appear when clicking the edit icon .
- Added integration tests for paging, a dependency for content template bulk editing.
- Content reporting:
- Improved error handling and reporting.
- Added ability to select individual options in the New Report widget, Data Supplier > Content Query > Display Fields.
- In the Data Supplier field, the Top Content option is hidden if there are no corresponding applicable values.
- Added ability to track report configurations.
Significant defects addressed
- Corrected an issue preventing display of a material icon in the Icon field of the New Content Type widget.
- Corrected an issue preventing proper update of default placeholder text. For example, a Byline field's default placeholder text is an asset's author. Deleting the author from the asset did not remove the author from the Byline field.
- A role with publish override permission now sees read-only workflow statuses to which that role does not have permission. For example, an article has remaining statuses
Review
,Proofread
, andPublish
. An editor has permission only to publish the article using Publish Override. When the editor opens the Workflow widget, the statusesReview
andProofread
are read-only labels, giving the editor an indication that clicking Publish Override skips those two statuses. -
Corrected an issue causing incorrect sequencing as specified in the
@ToolUi.FieldDisplayOrder
annotations when that annotation is used in classT
and also used in classAlternation<T>
. -
Corrected an issue causing incorrect text display as specified in the
@Recordable.DisplayName
annotations when that annotation is used in classT
and also used in classAlternation<T>
. -
Corrected an issue causing incorrect application of recordable annotations to modified and target classes. For example, applying the
@Recordable.Embedded
annotation toModification<T>
embedded both classModification<T>
and classT
in a parent class. -
Corrected an issue causing copied dashboards to display the original dashboard's headings. For example, Sue creates
Dashboard A
has a widget namedSue's Reports
. Sue copied the dashboard toDashboard B
, and renamed the widget toSam's reports
. When usingDashboard B
, the widgetSue's Reports
remained. - Corrected an issue preventing recently used modules from appearing in the module picker's Recently Used list.
- Corrected an issue preventing an option from being marked as a favorite in drop-down lists.
- Corrected an issue causing delays of up to five minutes in cache replication.
- Corrected an issue preventing closing of a Quick View widget after clicking refresh or changing search filters.
- Corrected an issue preventing correct sorting of users in the Search Tool Users widget.
- Corrected an issue causing delays in rendering large tables in the rich-text editor.
- Corrected an issue preventing the closing of widgets when pressing Escape. This behavior occurred when a selection field (such as Any Content Type in the search panel) had focus.
- Corrected an issue causing the Quick View icon and associated widget to appear in the search panel's board view for content types not configured for quick view.
-
Corrected an issue throwing
TestAbortedException
errors during integration testing of the Content Templates dashboard widget. - Corrected an issue allowing possibly excessive scopes in the Google Drive integration.
- Corrected an issue causing the search panel's hierarchy view to always display both tags and sections even when filtering on only one of them.
- Corrected an issue causing multiple selections to be cleared. For example, an editor selects two options in a selection field, and then types in the field to locate additional options. After typing in the field, the previous two selections are lost.
- Corrected an issue preventing bulk-uploaded images inside a parent asset from being published when the parent asset is published. For example, in a new article, an editor inserts a gallery in the rich-text editor, and bulk uploads several images into the gallery. Publishing the article did not simultaneously publish the uploaded images.
-
Corrected an issue preventing the method
RtcEventUpdateNotifier#onChange
from generatingNullPointerException
errors. - Corrected an issue causing case-sensitive sorting of workflow statuses in the Workflow widget. For example, an editor creates an asset, and then opens the Workflow widget. The available statuses were sorted A–Z and then a–z.
- Corrected an issue causing the rich-text editor to mark correctly spelled words as incorrect, and incorrectly spelled words as correct.
-
Corrected an issue preventing correct rendering of fields of type
Set
in content edit forms. -
Corrected an issue causing the method
ReportStorage#createAccessLink
to directly download objects instead of rendering download links. - Corrected an issue causing clusters with only hidden fields to appear as expandable ( control) or collapsible ( control).
-
Corrected an issue returning a
Service Unavailable
status when multiple editors are searching for assets through the search panel. - Corrected an issue causing the React Developer Tools extension in Chrome to throw extraneous errors to the browser's console.
-
Corrected an issue throwing a
NullPointerException
when selecting several assets in search results and then clicking to open the search actions menu. - Accessibility:
- Added labels, descriptive text, and announcements to fields as required.
- Corrected inconsistent field labels and screen announcements.
- Improved keyboard accessibility and announcements for the image editor.
- Corrected announcement for AI chat icon.
- Recast duplicate
<h1>
headings in various widgets and forms.
Breaking changes
- Regarding the implementation of
DataCache
, if you created classes extendingItem
, and those subclasses contain references to other content types, you may need to update those subclasses to implement the newItemContainer
interface. - Regarding the migration from
HttpServletRequest
toWebRequest
, implementations of interfaces/abstract classes incorporatingHttpServletRequest
may experience disruptions in downstream applications. Below are the changed APIs:
-
brightspot.core.requestextras.RequestExtra#matches
-
brightspot.core.requestextras.RequestMatcher#matches
-
brightspot.form.field.captcha.CaptchaProvider#validate
-
brightspot.form.field.FieldProcessor#getPriority
-
brightspot.form.field.FieldProcessor#getValue
-
brightspot.form.field.validate.FieldValidator#validate
-
com.psddev.access.AccessProvider#findAccesses
-
com.psddev.access.AccessProvider#requiresAccess
-
com.psddev.analytics.AnalyticsDataProcessor#modify
-
com.psddev.auth.AuthenticationManager#getCurrentSession
-
com.psddev.auth.social.AbstractAtlassianAuthenticationProvider#createCallbackUrl
-
com.psddev.auth.social.AbstractLinkedInAuthenticationProvider#createCallbackUrl
-
com.psddev.cms.auth.ToolAuthenticator#logIn
-
com.psddev.cms.auth.ToolAuthenticator#onFormPost
-
com.psddev.cms.ui.Components#createObjectLabel
-
com.psddev.segmentation.Target#matches
-