Skip to main content

4.7 releases

Read below for more information on each version in the 4.7 release.

v4.7.32.1

v4.7.32.1 had four improvements and 10 bug fixes.

Improvements

  • Performance improvements for large pages with embedded records in the CMS, particularly addressing slow interactions and content state response times.
  • Addressed the issue of sitemap generation for news content when no new content has been published in the last two days. This now ensures empty sitemaps are generated even with no recent content, avoiding 404 errors.
  • Improved the Quick View feature to make field display more dynamic and aligned with Content Forms. This ensures that fields shown in Quick View are now affected by applicable Content Forms, allowing visibility and names to be based on form settings.
  • Removed the JS Report Plugin from the BSP repository and replaced it with a new plugin dependency.

Bug fixes

  • Addressed an issue where revisions created from content in a workflow state cannot be published or scheduled, impacting workflows that require publishing directly from revisions.
  • Addressed a bug where object reference fields from the original object were not copied correctly during the cloning process.
  • Addressed a bug in the Users & Roles Advanced Search feature where the Roles field disappears when other fields are added, preventing it from being manually re-added.
  • Addressed a bug that at times caused redirects to no longer go to the primary URL domain.
  • Addressed a bug preventing users from downloading content reports due to a NullPointerException.
  • Addressed an issue where the .TC-unselected class was hiding the type selector in the Type Specific Overrides section, impacting user ability to select content types.
  • Addressed a bug where tab container contents were not displaying correctly despite being clicked, due to a class issue affecting visibility.
  • Addressed a bug related to a test failure caused by an unintended CSS class being added to a visible cluster title during the PrePublishTest.
  • Addressed a bug related to integration tests failing due to DOM structure changes affecting CSS support.
  • Addressed a test failure caused by a DOM change in broadcast messages that halted the build process.

v4.7.31

v4.7.31 release had five improvements, and 20 bug fixes.

Improvements

  • Updated BOM to ensure use of the appropriate SolrJ version.
  • Created an API that enables projects to add custom UI in the top left, next to the item label, replacing the existing Audience dropdown. This improvement has introduced a breaking change. See the Breaking Changes section below for more information.
  • Moved Audience dropdown code into the existing Audience plugin.
  • You can now customize storage settings that are used for the .CSV that is generated for reports.
  • Bulk scheduling now allows for workflow-level publishing permissions so you can schedule content that has reached an approved workflow state.

Bug fixes

  • Resolved an issue where entering new search text, after clearing previously displayed sticky search results, did not update the displayed search results as expected.
  • Fixed an issue where copying a notification subscription displayed a NullPointerException error.
  • Resolved an issue where the Bulk Workflow completion page appeared without styling, header, or footer.
  • Resolved an issue where there was no Delete option available for conversation posts.
  • Resolved an issue where pagination overlapped tabs when containers are narrow.
  • Resolved an error in the production guides for a field.
  • Resolved an open redirect vulnerability on the CMS login page that could potentially allow for redirection to malicious external sites.
  • Resolved different issues while accessing Quick View for different users, such as NPE errors and missing Quick View icons.
  • Resolved an issue where the publishDatewas set too early during workflow transitions and not updated upon final publish.
  • Resolved an issue where resetting CMS search filters did not refresh the displayed results.
  • Resolved an issue where the Preview to Edit functionality in the rich-text editor did not work for content positioned below an image placed at the top of the rich-text editor
  • Resolved an issue where editing any field in production guides and saving it did not display a confirmation, and instead introduced an unintended extra field below the action bar.
  • Resolved an issue where copying a module inserted in rich-text editor and pasting it below resulted in same UUID on copied module.
  • Clarified and resolved the editorial triggering of the loadFrommethod within the Interchangeableinterface. Editorially converting types now work as intended.
  • Resolved an issue where the Preview to Edit functionality no longer auto-scrolled to selected enhancements in rich-text editor in articles and press releases.
  • Resolved an issue in admin version history where the Compare action did not compare the currently viewed version with the version the Compare action was selected from.
  • Resolved an issue in rich-text editor where viewing a difference between tracked changes displayed escaped markup instead of visual highlights.
  • Resolved unintended layout changes caused by the removal of padding and margins for is-unlabeled.
  • Resolved an issue when selecting a video object from the Lead field of the Article type that prevented a preview of the video from appearing.
  • Resolved an issue where selected item count and the Bulk Import action for external content types did not appear.

Breaking changes

  • As a result of allowing projects to add custom UI where the Audience dropdown appeared, the rendering of Overlay Provider selection is no longer provided by default. Instead, implementations of Overlay are expected to provide their own UI to discover and switch to overlays. Projects with their own custom implementation of Overlay should use this new API to render overlay selection in the title prefix area of the content page. Projects using the audience feature will still function.

v4.7.30

v4.7.30 release had one bug fix.

Bug fixes

  • Resolved the issue of the SiteMapEntry news:publication_date timestamp format.

v4.7.29

v4.7.29 had three improvements, and 13 bug fixes.

Improvements

  • Enhanced the SiteMapEntry lastmod field to support full timestamp formatting with both date and time.
  • Added support for Java 16+.
  • Added the ability to export full URLs—including permalink, redirect (permanent and temporary), alias, and CMS edit page URLs—from CMS search results and content reports.

Bug fixes

  • Resolved an issue where changes to a name made via a content form with a Global scope persisted, even after editing the form’s scope or deleting the form.
  • Addressed an issue where opening multiple links simultaneously could display incorrect previews.
  • Resolved an issue where the Archive button was visible and occasionally functional for users that did not have archive permissions in admin areas.
  • Resolved an issue where workflow options were missing when editing content revisions in draft or other non-published states.
  • Brightspot now redirects to the published path’s original casing, rather than always lower-casing URLs.
  • Resolved an issue where items filtered with @Where were not appearing in the Hierarchy view for reference fields.
  • Fixed an issue where attempting to publish a revision without a publish override would incorrectly reset the workflow, rather than publishing the revision as intended.
  • Fixed an issue where the contents of the Dari HTML <style> element were incorrectly escaped.
  • Removed an obsolete static database environment reference from TypePermission, replacing it with up-to-date usage of DatabaseEnvironment.getCurrent().
  • Resolved an issue where enabling the debug profiler would display unintended sequence numbers at the top of HTML pages.
  • Fixed an issue where hierarchy view allowed selection of sections owned by other sites.
  • Resolved issues with unnecessary spacing and padding in top-level widget messages and class notes.
  • Fixed an issue where QueryRestriction parameters could cause ObjectIdResultPage to display a blank page.

v4.7.28

v4.7.28 had five improvements and 11 bug fixes.

Improvements

  • Federated search imports now properly respect site boundaries, allowing the same external item to be independently imported on multiple sites.
  • Revision comparison now includes red/green highlights for non-text field values, making it much easier to identify added, removed, or changed values across all field values.
  • The Reset button in CMS search now fully clears all filters for the selected content type, even when sticky search is enabled.
  • Added onFind, setupMenuForAria, and toggleMenu functions to window.BRIGHTSPOT.js for experimentation from newer Brightspot versions to 4.5.
  • The codegen-generated RawHtml class now uses CharSequence instead of String for its value.

Bug fixes

  • Fixed an issue where links inside pop-up frames would reload the entire page, navigating you away from the underlying page you were editing.
  • Resolved an issue where users could create new revisions from revision pages even when draft creation was disabled.
  • Addressed an issue where the Report widget would display an empty table with no message when no results were returned. An info message is now shown when there is no data to display.
  • Fixed an issue where the search keyword could become stuck when Retain all filters and settings was enabled.
  • Fixed an issue where dragging and dropping multiple articles from the shelf into the RTE would result in only the last article link appearing.
  • Fixed an issue where the Report widget could throw an error if not configured as a ValueReporter or TableReporter.
  • Fixed an issue where the banner on revision items would incorrectly show Published instead of Updated during workflow states.
  • Resolved an issue where updated editorial information was not being displayed by PrePublishAction.shouldDisplay upon publishing.
  • Fixed an issue where columns containing list values were not being displayed in content reports.
  • Updated integration tests to accommodate changes in sticky search parameter handling.
  • Addressed failures in integration tests related to content copy functionality, ensuring tests accurately validate the feature after recent implementation changes.

v4.7.27

v4.7.27 had five bug fixes.

Bug fixes

  • Fixed improper HTML rendering in side-by-side revision comparison view.
  • Fixed an issue where the Create New option of ComboInput was not keyboard accessible.
  • Fixed CMS image preview functionality to properly handle a URLStorageItem using a URL that contained spaces encoded as + instead of %20.
  • Fixed calendar date/time picker issue that was resetting the selected time to the present time when viewing it after setting it.
  • Fixed JavaScript error that occurred when using the rich text editor's full screen mode in places other than on a content edit page.

v4.7.26

v4.7.26 had one new feature and 19 bug fixes.

New features

  • Added the ability to select OpenAI models (for example, GPT-4o-mini or GPT-4o) for Create with AI.

Bug fixes

  • Fixed an issue where mirror preview attempted to display a preview for rich-text elements, for which there is no ability to do so.
  • Fixed an issue where the URL in the URLs widget would sometimes run off the page.
  • Fixed an issue where the Search Result Actions menu was structured incorrectly.
  • Fixed an issue relating to accessibility of the Bulk Workflow button.
  • Fixed an issue relating to accessibility of the Reset Filters button.
  • Resolved an issue where rich text enhancements within editorial content types were not rendering correctly based on the view system.
  • Resolved an issue where unscheduling the revision set for a future date did not clear the publish date.
  • Saved search links are now shortened in versions 4.5.x and 4.7.x.
  • Fixed an issue where the Watching checkbox incorrectly appeared in the contextual search pop-up when the Widgets Watching Filter was enabled.
  • Fixed an issue where multiple quick-view icons appeared on reference fields after swapping a referenced item, such as replacing a shared image in the Lead field of an article.
  • Introduced dedicated field types for various date and time fields.
  • Resolved an issue where data for custom modules could not be viewed using _renderer=json or _renderer=styleguide. This fix introduced a breaking change. See the "Breaking Changes" section below.
  • Resolved an issue where the replication cache reported a healthy status despite having stopped receiving updates.
  • Fixed an issue causing read-only fields to be sortable.
  • Fixed an issue where revision validation occurred before a content state was set to be updated by widgets. Since validation occurred before additional changes were made, the additional changes would sometimes survive validation when they should not have.
  • Resolved an issue where revisions would at times run validation without first calling beforeSave().
  • Fixed an issue where FieldAccessFilter added comments inside HTML tags that do not support them.
  • Resolved an issue where the notifications were not being rendered when site-specific role was set.

Breaking changes

  • As a result of resolving an issue where data for custom modules could not be viewed using _renderer=json or _renderer=styleguide, the Renderer#render API signature was changed from returning a String to returning a CharSequence. This may impact projects that call that API directly that depend on the return type being a String.

v4.7.25

Note

v4.7.25 is the next version after v4.7.23.

v4.7.25 had one bug fix.

Bug fixes

  • Resolved an issue where an exception thrown in a method of the ViewModel would prevent the entire ViewModel from displaying.

v4.7.23

v4.7.23 had one new feature, five improvements, and 46 bug fixes.

New features

  • A user with a role that has the Publish permission, but does not have the Workflow permission, now sees the Publish button on the content edit page of an asset as intended.

Improvements

  • Improved display of filter labels for integer type fields, improving clarity.
  • Improved filter clearing functionality in CMS search so that it works as intended.
  • Added support for different basic authentication credentials for different developer functions.
  • If content has not been published in more than two days, Brightspot will now generate an empty sitemap instead of no sitemap at all, which was resulting in a 404 error.

Bug fixes

  • Fixed an issue where cms.ui.cluster had stopped working when creating sets of front-end fields.
  • Fixed an issue where PrePublishAction.shouldDisplay did not take editorial information into account.
  • Fixed an issue when adding images to a gallery set to grid view causing the the page focus to become stuck and cut off part of the page.
  • Fixed an issue when creating a nested table that caused table icons to overlap.
  • Fixed an issue preventing changes to data that was relocated from one module type to another from persisting after the first save action.
  • Fixed RCIG Actions menu (swap module, copy module) accessibility labels.
  • Added functionality to the checkmark box that appears in combo inputs sections so that it works as expected.
  • Corrected an issue when viewing a previous revision that prevented the Name Revision and Compare to Live links from being aligned properly.
  • Resolved an issue where the Scheduled Events Widget pop-up for a single day showed more items than expected.
  • Addressed stack overflow issue that occurred when saving content templates.
  • Fixed an issue preventing the Watcher query restriction from working properly on the Associated Content widget.
  • Resolved an issue by increasing the Lingotek connector locale limit from 300 to 1000.
  • Fixed an issue when translating a content type that caused the information and error messages to be displayed on top of one another.
  • Resolved an issue that at times prevented Preview to Edit from working.
  • Corrected an issue where a WIP message was being displayed on the content edit page after moving a revision between workflow states or after saving a revision while it was in a workflow state.
  • Improved accessibility by ensuring that screen readers read out full dates instead of abbreviating the days of the week or leaving off exact dates.
  • Upgraded certain dependencies to a new version of Zookeeper to eliminate an earlier version's vulnerability.
  • Resolved an issue causing an error when loading a content edit page after a populated field in a data model changed from a single embedded record field to a list of the same record type.
  • Resolved an issue where interactive controls were missing a programmatic role.
  • Fixed an issue of status messages not being announced by screen readers.
  • Fixed an issue where controls had accessible labels that were inaccurate or incomplete.
  • Fixed an issue in which disclosures were not following the expected pattern when a user navigates to a page.
  • Fixed an issue where the form field errors were not properly defined.
  • Fixed an issue causing interactive controls to require a mouse to operate.
  • Fixed an issue where some controls had inaccurate programmatic roles.
  • Corrected an issue where some controls had names that were unnecessarily verbose.
  • Corrected an issue where list boxes were missing a programmatic name.
  • Fixed an issue where paging was broken on Adobe Stock images search results.
  • Corrected an issue that allowed a tag to select itself as a parent tag.
  • Fixed an issue in which the images that are dragged from the Shelf were appearing in the wrong order.
  • Resolved performance issues on content edit pages that had large amounts of embedded records.
  • Fixed an issue caused by ViewModel#getModel previously being introduced as a getter method. This fix introduced a breaking change. See "Breaking changes" below.
  • Resolved an issue where new revisions and revisions being edited were using different logic.
  • Fixed an issue preventing links from working as intended if surrounded by underline tags.
  • Fixed an issue where invalid endpoints were leading to watcher API errors.
  • Fixed an issue where assets that were removed from a collection via the toggle were not actually being removed until the user refreshed the page.
  • Fixed an issue preventing Brightcove from supporting multi-word search text.
  • Fixed an issue where preview would at times experience slowness after an upgrade.
  • Fixed an issue at times preventing the rich text editor toolbar from sticking to the top of the page when scrolling.
  • Fixed an issue causing the caption field, when included in a CMS search, was returned multiple times instead of once.
  • Resolved an issue preventing editorial content types from being properly represented in the GraphQL schema upon schema generation.
  • Resolved an issue where large GraphQL endpoints, due to the length of time it took for them to load, were making other endpoints temporarily unavailable.
  • Improved exception handling so that the behavior is different depending on implementation (i.e., whether an exception is logged or thrown), with an emphasis on having exceptions thrown in GraphQL and other headless implementations.

Breaking changes

  • As a result of fixing an issue caused by a getModel method on ViewModel, the viewModel#getModel instance method has been removed, and there is now a new static ViewModel#getModel(Object) method.

v4.7.22

v4.7.22 had two improvements and 12 bug fixes.

Improvements

  • Added "make/break" translation functionality for projects that were missing it, allowing them to better connect invisible metadata to indicate which pieces of content are translations of one another.
  • Made changes to keep Brightspot compatible with Lingotek as a result of a recent authentication mechanism change.

Bug fixes

  • Fixed an issue preventing modules added in between tab modules from being clickable in Preview to edit.
  • Fixed an issue causing content forms to override cluster names in Pre-publish actions.
  • Fixed an issue causing preset notification filters to disappear upon upgrading to a 4.7 version.
  • Improved the display of Quick View when The Shelf is open so that it is more clear to which asset its details pertain.
  • Fixed an issue allowing revisions that did not have values in required fields to be saved and to be passed through a workflow.
  • Fixed an issue preventing the proper preview of an image that was swapped in for another, then deleted, then restored.
  • Fixed an issue causing saved search URLs to contain parameters for integrations and functionality even if a user's project did not include them.
  • Fixed an issue so that new java.time types are supported by converters in StateValueUtils.
  • Fixed an issue causing rich text fields included in Quick View to display with HTML tags and without line breaks.
  • Fixed an issue where content types that threw errors on an earlier version were at times not publishable after upgrading to a later version.
  • Fixed an issue where passing in a preview ID in a CDA query for invisible content was at times returning null.
  • Fixed an issue where editorial content types were at times not rendering images after a project was upgraded.

v4.7.21

v4.7.21 had one bug fix.

Bug fixes

  • Corrected an issue throwing a Null Pointer Exception when using @DynamicFieldMethod with a DATE_STRING_TYPE field type, like LocalDate.

v4.7.20

v4.7.20 had two improvements and 15 bug fixes.

Improvements

  • Improved the way that content types that implement Hierarchy are displayed when surfacing as Hierarchy View search results in both Brightspot search and in the content picker, resulting in a more cohesive and less confusing UI.
  • Added the ability to add internal or external links to CMS-wide broadcast messages.

Bug fixes

  • Improved security related to a jsoup library. This fix introduced a breaking change on the third-party's end. See "Breaking Changes" below.
  • Corrected an issue preventing UrlBuilder from properly handling URL fragments.
  • Fixed a UI issue causing module tab menus to be partially covered by an opened preview pane.
  • Fixed an issue causing Preview to Edit to not work properly in some cases.
  • Fixed an issue preventing a CMS UI popup initiated from the submission of a form from being reopened upon a resubmission.
  • Corrected an issue causing dynamic notes to replace existing notes if the content was the same.
  • Corrected an issue preventing the proper display of images when querying and trying to import from external AP Images libraries.
  • Fixed an issue showing duplicates of standard image sizes in the resized image popup.
  • Fixed a regression issue causing Editorial Content Type fields named id to throw an error.
  • Fixed an issue preventing items from being shown in the default group of Board View when no workflow status was selected.
  • Fixed an issue causing the Quick View icon () to appear on certain fields when there is no content to display.
  • Fixed an issue causing the Production Guide help icon () to appear in contexts in which it did not apply.
  • Fixed an issue related to image resolution with downloads of Adobe Stock images.
  • Fixed an issue preventing SAML responses from being parsed.
  • Fixed an issue at times preventing embedded objects from loading in preview.

Breaking changes

  • Changes were made to remain current with jsoup; however, in doing so, library updates to whitespace handling may change textual content, like stripping spaces that were not previously stripped, vice versa, and other changes. Projects running versions that implement these changes (4.5.15.23, 4.5.27, 4.7.20, and 4.8.0) must address any potential issues surrounding this. The update is from 1.14.3 -> 1.17.3. See jsoup News and release notes for more information on how to resolve issues. Additional references can be found in jsoup’s Parser documentation and on their Issues repository.

v4.7.19

v4.7.19 had two new features, three improvements, and 14 bug fixes.

New features

  • Deployed an OpenSaml Docker container for local testing.
  • Upgraded OpenSaml 2 to OpenSaml 4.

Improvements

  • Brightspot displays an improved error message when clicking Save in the Add to Collection popup without first selecting a collection.
  • Updated the Facebook oEmbed API to v20.0.
  • The method JspUtils#createCookieSignature now accepts as a parameter a literal for a user-selected hash algorithm. Previously the only available hash algorithm was SHA-1, which is now considered insecure.

Bug fixes

  • Corrected an issue causing the methods SiteMapFilter#doRequest and SiteRedirectFilter#doRequest to return an http URL when an https URL is available.
  • Corrected an issue preventing an asset's URL from immediately updating after changing the asset's locale. For example, an instance of Brightspot configures permalinks to include the asset's locale, such as /en-US/brightspot. When changing the asset's locale to es-MX, the permalink did not change to /es-MX/brightspot.
  • Corrected an issue throwing a SyntaxError when querying doubly nested indexes in Solr.
  • Corrected an issue preventing methods in the class UrlBuilder from properly decoding query parameters.
  • Corrected an issue causing an extraneous control to appear above the message You are currently editing <audience name>.
  • Corrected an issue preventing proper rendering of the search panel's board view when viewing abstract content types in status Draft. (An example of an abstract content type is All Article Types that includes concrete types Article, Listicle, and Blog Post.)
  • Corrected an issue causing localized Spanish labels to appear garbled.
  • Corrected an issue in which the Restore widget (containing the buttons Restore to Draft and Restore to Live) was rendered too wide.
  • Corrected an issue throwing a NullPointerException when clicking > Swap in the content edit form. Specifically, when a homepage has a module as a lead, clicking > Swap in the module threw this error.
  • Corrected an issue throwing an error message when attempting to add an asset on the content edit page to a collection.
  • Corrected an issue causing the Publish button to be disabled but the Publish Override control to be visible. Specifically, an asset is in the status before Publish, and an editor has access to the Publish status. The Workflow widget did not display the expected control Publish, and did display Publish Override.
  • Corrected an issue preventing interfaces or abstract content types annotated with @Hidden(false) from appearing in the search panel's filter of content types.
  • Corrected an issue incorrectly removing a user's access to the Sites & Settings area.
  • Corrected an issue causing screen readers to announce a checkbox instead of a switch when the focus was on a toggle.

v4.7.18

v4.7.18 had seven improvements and five bug fixes.

Improvements

  • Restored access for non-developer roles to production guides through the help control , and improved usability of the production guide widget.
  • URLs used for applying watermarks now use the AES/GCM/NoPadding mode of operation instead of the less secure AES/ECB.
  • Disabled external entity resolution in the SAML XML parser, thereby helping to prevent XML eXternal Entity (XXE) attacks.
  • Replaced the class org.apache.commons.lang3.RandomStringUtils with org.apache.commons.text.RandomStringGenerator to more securely generate API keys.
  • Replaced the class org.apache.commons.lang3.RandomStringUtils with org.apache.commons.text.RandomStringGenerator in the GraphQL explorer to more securely generate nonces.
  • Replaced the function HMAC SHA-1 with HMAC SHA-256 to more securely generate a Tool User Time Based One Time Password.
  • Improved performance of database initialization when instances of legacy types contain references to other objects.

Bug fixes

  • Corrected an issue preventing proper layout of the search field when a site has a banner. Specifically, when a site has a banner, and an editor opened > Content Templates, the search field below the banner was not laid out correctly.
  • Corrected an issue throwing an error Invalid advanced query when searching for a keyword with the search panel in board view.
  • Corrected an issue in which upgrading to version 4.7.16 invalidated existing SAML credentials. Release 4.7.18 includes a patch for restoring the validity of those credentials.
  • Corrected an issue preventing screen readers from properly announcing word and character counts.
  • Corrected an issue causing the method JspUtils#getAbsoluteUrl to return an http URL when an https URL is available.

v4.7.17

v4.7.17 had six improvements and 19 bug fixes.

Improvements

  • When configuring an editorial content report, a message appears if the corresponding task host is not configured in Sites & Settings. (Without a configured task host, editorial content reports do not run.)
  • Improved the form of the ping command used to determine if a database is available.
  • Improved view model and other front-end processing to enable developers to build custom modules using editorial content types.
  • When configuring a content report using a content query, the list Display Fields now includes an extra identifier if several fields have the same name. If previously the editor saw the field Description twice in the Display Fields list, now the editor sees Description (description) and Description (cms.seo.description).
  • Upgraded Github runner for Antithesis, addressing the run-time error System.IO.IOException: No space left on device.
  • The HTTP response status code is now 500 for GraphQL schema load failures.

Bug fixes

  • Corrected an issue preventing proper rendering of an RSS feed when the corresponding section has a URL ending with a forward slash (such as /firstsection/).

  • Corrected an issue preventing proper rendering of a post's history in an asset's Conversation widget.

  • Corrected an issue preventing persistent disabling of the Crosslinker.

  • Corrected an issue preventing proper rendering of Getty images in the search panel's grid view.

  • Corrected an issue preventing proper listing of assets in The Shelf when filtering by a role.

  • Corrected an issue preventing Brightspot from populating all <iframe> elements in the preview pane.

  • Corrected an issue causing a parent asset's preview control to disappear and a NullPointerException message to be thrown when a child asset's content type is not available.

  • Corrected an issue causing a certain combination of workflow and permissions to incorrectly give a user the publish permission.

  • Corrected an issue preventing the removal of the last watcher in a list of watchers.

  • Corrected an issue throwing a NullPointerException when attempting to drag an asset from The Shelf onto the content edit form.

  • Corrected an issue causing incorrect rendering of an asset in the preview pane, but correct rendering on the live front end.

  • Corrected an issue preventing proper population of lists of objects. For example, when creating a role, the list of content types included entries other than content types.

  • Corrected an issue preventing correct operation of the spell checker when track changes is toggled on.

  • Corrected an issue preventing proper interaction with the New Workstream widget. Specifically, if an editor opened New Workstream and clicked Save, the widget became blank instead of displaying a message to enter a required name.

  • Corrected an issue preventing population of The Shelf's source list when the asset in the content edit form did not include a typeId in its URL.

  • Corrected an issue preventing synchronous updates of dynamic placeholder text on integer fields.

  • Corrected an issue throwing NullPointerException errors when generating a content report. Specifically, if a content report was incorrectly configured and then subsequently correctly configured, running the correct configuration threw this error.

  • Accessibility—

    • Added announcement for the name of date fields, such as Embargo Date.
    • Added announcements for the Expand All control as well as for successfully removing an item from a list.

v4.7.16

v4.7.16 had three improvements and 17 bug fixes.

Improvements

  • Artifacts are built and published only as needed.
  • The file _helpers.js is now transpiled.
  • The Shelf has been recoded to allow for more customizations.

Bug fixes

  • Corrected an issue throwing an error when attempting to add published assets to a schedule.
  • Corrected an issue preventing the Update Date column from appearing in the search panel when filtering on specific content types.
  • Corrected an issue throwing a NullPointerException when executing a test with com.psddev.contentreporting.ContentReportPageTest.
  • Corrected an issue preventing proper rendering of {{~render this 'com.psddev.styleguide.video.VideoModuleView' ~}} in Styleguide.
  • Corrected an issue causing the content edit form to scroll to the bottom when creating a subsidiary asset, such as creating an assignment from a pitch.
  • Corrected an issue causing sitemap namespaces to use identifiers starting with https instead of the required http.
  • Corrected an issue throwing a NoCurrentWebRequestException when attempting to initialize a collection field.
  • Corrected an issue preventing proper operation of Brightspot when clicking Publish and then quickly opening another form such as Edit Global.
  • Corrected an issue causing bookmarks in Microsoft Word documents to be imported as links instead of as plain text.
  • Corrected an issue preventing proper pasting of rich text from Microsoft Word into the rich-text editor.
  • Corrected an issue preventing proper rendering of assets in the preview pane when selecting a small device size.
  • Corrected an issue causing the more icon to disappear after converting a module between shared and inline in the content edit form.
  • Corrected an issue throwing a JavaScript error when clicking > Source Data in an image.
  • Corrected an issue throwing a ClassCastException when attempting to copy a hotspot.
  • Corrected an issue preventing a GraphQL CMA's detection of a content type when adding a StorageItem asset by URL.
  • Corrected an issue causing a signature error when making calls to Amazon Translate.
  • Accessibility—improved keyboard navigation and screen reader announcements pertaining to the rich-text editor's toolbar.

v4.7.15

v4.7.15 had four improvements and 20 bug fixes.

Improvements

  • Added integration tests for functionalities based on Edit.jsp.
  • Improved display and function of notification failures appearing in an editor's Notifications widget.
  • Deployed a security update required by AP Images. For details, see Important API Security Updates.
  • Added state information to logs for better diagnosis of replication cache failures.

Bug fixes

  • Corrected an issue preventing sticky search from correctly filtering assets in the search panel. For example, opening > Admin > Ads displayed all assets, not just ads.
  • Corrected an issue preventing the proper layout of the toolbar in the Associated Content widget.
  • Corrected an issue preventing proper rendering of dates and times.
  • Corrected an issue causing generation of an extraneous .jar that was sent to downstream testing.
  • Reverted the update that deprecated the annotation @ToolUi.FieldDisplayPreview.
  • Corrected an issue preventing editors from adding hotspots to images.
  • Corrected an issue throwing a NullPointerException after deleting a content type that has associated content templates.
  • Corrected an issue causing unexpected results after accepting deletions in text with tracked changes. For example, spaces in some positions were not deleted.
  • Corrected an issue preventing the standard process when creating a new item while creating a shared list module. For example, an editor created a new shared list of people. As part of that process, the editor created a new person. After creating the new person, the editor clicked Back, and the editor did not return to the people list being created.
  • Corrected an issue preventing the swapping of module types within a page. For example, an editor created a page and added three modules in the Contents field. Clicking to swap one of the modules for a different module threw a NullPointerException.
  • Corrected an issue preventing proper display of the Title and Description fields in the content edit form's SEO tab.
  • Corrected an issue preventing proper post-publish placement of an asset inside a parent asset's lists. For example, an editor created a homepage whose contents are a module. The editor then added a list List 1 to the module. The editor then copied List 1 to List 2. Next, the editor created an article, and in post-publish actions added the article to List 1. The article was also added to List 2.
  • Corrected an issue causing text to scroll in the RTE when clicking on a button in the RTE toolbar.
  • Corrected an issue allowing editors to close a nested module's rich-text editor without seeing a warning to save unsaved changes. Specifically, the warning was missing after pressing Escape.
  • Corrected an issue preventing proper layout of the preview pane in Firefox.
  • Corrected an issue preventing proper behavior of selection fields when one of the options is Is Missing.
  • Corrected an issue generating different robots.txt rules for visitors to a URL with a www subdomain compared to a URL without a www subdomain.
  • Corrected an issue preventing a favorite content type from behaving as expected in the content picker's Create field. For example, an editor selected User as a favorite content type. Next, the editor created an article, and in the Authors field selected Create New. In the content picker, in the Create field, User was not indicated as a favorite, and Author was.
  • Corrected an issue preventing the disabled setting for Automatic Analytics JavaScript Injection at the Global level from cascading to the site level.
  • Corrected an issue preventing proper rendering of a referenced asset in the preview pane. Specifically, when an asset is in the preview pane, and referenced assets are available from the View Reference list, the referenced asset did not appear correctly.

v4.7.14

v4.7.14 had three improvements and four bug fixes.

Improvements

  • Added integration tests for watcher functionalities.
  • Increased the size of the runner for Github Actions.
  • Expanded testing to Firefox and Safari to detect if browsers are retaining outdated cookies.

Bug fixes

  • Corrected an issue allowing an admin to restore a site without permission to do so.
  • Corrected an issue throwing a Paths must be unique error even after deleting the duplicate path from an asset.
  • Corrected an issue preventing the removal of images from a gallery.

v4.7.13

v4.7.13 had nine improvements and 51 bug fixes.

Improvements

  • When Solr search data is not cached, Brightspot now searches only the default original database instead of traversing the entire database stack.
  • Notifications for the Content Reporting topic have been expanded to filter based on combinations of event, site, and creator as well as combinations of report configuration and event.
  • Added a system-wide limit to the number of assets that can be exported from each report in the Reports widget. This limit is configured in the context.xml setting brightspot/contentReporting/reportLimit.
  • The task initiated by clicking on Run Report in an Edit Report widget is now asynchronous. Editors no longer experience a UI freeze when the run time is longer than a few seconds. Editors can view the report by clicking the Last Run link or by selecting > Recent Reports in the Edit Report widget.
  • Expanded and enhanced integration test APIs.
  • Added an integration test for pre- and post-publish actions.
  • Added support for MySQL 8. See "Breaking changes," below.
  • Improved keyboard navigation inside a reference field's list of assets. Specifically, after pressing the right arrow key to focus on the favorite icon , pressing the up/down, escape, and tab keys now have expected behaviors.
  • Added the query parameter _callers to URLs to display levels in a stack trace. For example, with _callers=10, the profiler provides 10 levels of stack trace.

Bug fixes

  • Corrected an issue preventing rendering of hotspots on images when those hotspots have a @DisplayName of anything other than Pin.

  • Corrected an issue preventing labels from appearing in hotspot pins.

  • Corrected an issue preventing a deleted watcher from being added again without reopening the View Watchers widget. For example, Adam inadvertently deleted Olivia from an asset's watchers list. The only way Adam could add Olivia back to the list is to reopen the View Watchers widget and then search for and select Olivia.

  • Corrected an issue preventing the conversion of a list from basic to advanced. For example, an editor added videos to a basic playlist. When converting the playlist to advanced, the added videos did not appear in the list.

  • Corrected an issue causing a filtered search field to become empty after typing a space. For example, in the Authors field, typing Adam displayed all the authors starting with Adam. After typing a space, the list of matching authors was empty.

  • Corrected an issue causing all Material icons within Brightspot to appear in their solid version even when not selected. For example, the favorite icon always appeared solid even when not toggled on.

  • Corrected an issue preventing the publication of a video when the provider was HTML5.

  • Corrected an issue causing a hyperlink in the rich-text editor to be applied to all selected characters except the last one.

  • Corrected an issue throwing a NullPointerException error to appear in a dashboard's Reports widget.

  • Corrected an issue preventing population of the Suggestions widget when both annotations @ToolUi.Suggestions and @Where are present on a Set<E> field. See "Breaking changes," below.

  • Corrected an issue preventing correct styling of the menu to add hotspots.

  • Corrected an issue throwing JavaScript errors when clicking to open the Edit Post widget in an asset's Conversation cluster.

  • Corrected an issue causing the rich-text editor to accept changes beyond any text actually selected.

  • Corrected an issue in which View ID appeared in the error message Credentials and View ID must be populated in order to make requests while authentication with Google Analytics 4. View ID was replaced with Property ID.

  • Corrected an issue causing fields of type java.time.OffsetTime to be ignored in publication dates.

  • Corrected an issue preventing an image's Hotspots tab from displaying correctly.

  • Corrected an issue preventing an asset's revision URL from being stored when that revision was created.

  • Corrected an issue in which an impersonated editor became the active editor. For example, Adam impersonated Olivia. When Adam clicked Stop Impersonating, Olivia became the active editor instead of Adam.

  • Corrected an issue preventing admins from saving a header background color at the global level.

  • Corrected an issue causing the free text to be erased when changing a content type in the content picker. For example, inside an article, an editor wanted to open the Author field and select an author. The editor typed Adam. After changing the content type filter to Author, the free text Adam disappeared.

  • Corrected an issue preventing proper closure of the Bulk Workflow widget in the search panel.

  • Corrected an issue causing the Publish Override widget to close when tabbing to and pressing enter on the calendar icon .

  • Corrected an issue preventing the method ToolUi#setHidden() from actually showing or hiding fields and clusters.

  • Corrected an issue preventing a border from appearing around the Recent Searches widget when tabbing through the search panel.

  • Corrected an issue causing a phrase in the search field that was surrounded in quotation marks to ignore all filters and return all assets. For example, searching for "cms workflow" returned all assets, not just those identifiable by the phrase cms workflow.

  • Corrected an issue causing loss of context in the search panel after clicking . For example, clicking in the Users widget opens the search panel with filters applicable for users. Clicking removed those user-specific filters.

  • Corrected an issue preventing expected operation of the annotation @Ignored(false).

  • Corrected an issue causing incorrect layout of the preview pane.

  • Corrected an issue preventing the typing of an HTML hex code in the color picker.

  • Corrected an issue preventing editing text in the rich-text editor when entering full-screen mode with the preview pane open.

  • Corrected an issue causing incorrect layout of the warning messages appearing under search fields in the left rail. For example, when selecting > Content Templates, if there are no content templates, the warning message No matching items was not laid out correctly.

  • Corrected an issue throwing an error in The Shelf. Specifically, after saving a search for an external type (such as YouTube Video), opening The Shelf and selecting Recent Activity > Saved searches threw a NullPointerException.

  • Corrected an issue disabling the Format menu when an X (formerly Twitter) post is embedded in the rich-text editor.

  • Corrected an issue preventing updates to scheduled revisions from being saved. For example, an editor created a new revision of a homepage, and added a module to the contents. The editor then scheduled this revision. Subsequently, the editor removed a module from the scheduled homepage's contents, and scheduled this new revision. The removed module still appeared. See "Breaking changes," below.

  • Corrected an issue preventing usage of editorial content types during CloudSQL maintenance.

  • Corrected an issue causing the preview pane's width to equal the content edit form's width on initial load.

  • Corrected an issue that caused the method SegmentationDatabase#personalize to trigger a large number of extraneous reference resolves.

  • Corrected an issue that did not account for the Zip Slip vulnerability. A security check now exists to detect and avoid this vulnerability.

  • Corrected an issue preventing rCDA schema generation when a field's internal name has a prefix containing a dash. For example, a prefix declared as String PREFIX = "brightspot.custom-components." prevented schema generation.

  • Corrected an issue causing cluster labels to display on two lines when a validation error occurs inside that cluster.

  • Corrected an issue throwing a NullPointerException in The Shelf when one of The Shelf's labels are null.

  • Corrected an issue in which the StateWalker class was calling the deprecated RichTextElement.fromElement(Database db, Element element) method. The class now calls RichTextElement.fromElement(Recordable parent, Element element).

  • Corrected an issue preventing preview-to-edit containers from rendering fields correctly when those fields do not have a valid preview.

  • Corrected an issue causing user sessions to unexpectedly end.

  • Corrected an issue incorrectly assembling a URL after clicking to open a field's developer text.

  • Corrected an issue preventing an asset's state to update if a Set field has dynamic placeholder text.

  • Accessibility

    • Ensured focus is applied to fields associated with the control. For example, when adding tags to an article, clicking ensures the focus moves to the newly opened field.
    • Ensured focus is applied to fields associated with the and Back controls. For example, in an article, clicking to edit a tag opens an Edit Tag form and applies focus to the Display Name field; clicking Back applies focus to the originating tag field.
    • Ensured focus is applied to a subsequent control after clicking . For example, in the search panel, clicking applies focus to the first item in the subsequent popup menu.
    • Added keyboard accessibility to the pagination controls and in the date picker.
    • Ensured the order of screen reader announcements matches the visual layout of the content edit form.

Breaking changes

  • The behavior for ToolUi#isEffectivelySuggestions has changed since it no longer automatically returns false if there is a field predicate present.

  • Connections to MySQL 8 may not function with an existing dataset due to the following reasons:

    • Upgrading from MySQL 5.6 to 8 is not supported.
    • The UIDs between two images differ.
    • Passwords need to be updated to conform to MySQL 8's caching_sha2_password authentication plugin. See Caching SHA-2 Pluggable Authentication.
  • In the class com.psddev.cms.db.Draft:

    • The method void update(Map, Object, Map, boolean) has been removed.
    • The method void update(Map, Object) is still available.

v4.7.12

v4.7.12 had 27 improvements, one new feature, and 37 bug fixes.

New features

  • Hovering over an image in the preview pane now displays the image's crop name and size.

Improvements

  • Refactored classes in the package com.psddev.translation (and subpackages) to facilitate integration with future translation services.

  • 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, and Publish. An editor has permission only to publish the article using Publish Override. When the editor opens the Workflow widget, the statuses Review and Proofread 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.

  • Integration tests:

    • Added integration tests for sticky search.
    • Added integration tests for content reporting.
    • Added integration tests for Playwright 1.41.2.
    • Added integration tests for content template bulk editing.
    • 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.
    • Enhanced the styling of the close button that appears after creating a report.
    • Added ability to track report configurations.
    • Added option to filter contents of the dashboard's Reports widget by all users or by current user.
  • 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.)

  • In the Revisions widget, a clearer presentation is now available for revisions by audience.

  • A setting is now available to ensure the Name field in the Name Revision widget is required.

  • 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.

  • Improved performance of the References tab in the Content Type widget by implementing DataCache, thereby avoiding unnecessary Query and recursive reference lookups. See "Breaking changes," below.

Bug fixes

  • Corrected an issue preventing closing of a Quick View widget after clicking refresh or changing search filters.

  • Corrected an issue throwing a NullPointerException when attempting to create a content report from search results.

  • Corrected an issue throwing a java.sql.SQLException by upgrading the MySQL Connector/J to 8.0.23 or higher in Tomcat images.

  • Corrected an issue causing the method ReportStorage#createAccessLink to directly download objects instead of rendering download links.

  • Corrected an issue preventing correct rendering of fields of type Set in content edit forms.

  • 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 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 throwing an Invalid advanced query message in the search panel's board view.

  • 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.

  • Corrected an issue preventing display of workflow statuses in various selection fields (other than the standard statuses Draft, Published, Archived, and Revision).

  • Corrected an issue causing incorrect sequencing as specified in the @ToolUi.FieldDisplayOrder annotations when that annotation is used in class T and also used in class Alternation<T>.

  • Corrected an issue causing copied dashboards to display the original dashboard's headings. For example, Sue creates Dashboard A has a widget named Sue's Reports. Sue copied the dashboard to Dashboard B, and renamed the widget to Sam's reports. When using Dashboard B, the widget Sue's Reports remained.

  • Corrected an issue preventing recently used modules from appearing in the module picker's Recently Used list.

  • Corrected an issue causing incorrect text display as specified in the @Recordable.DisplayName annotations when that annotation is used in class T and also used in class Alternation<T>.

  • Corrected an issue causing incorrect application of recordable annotations to modified and target classes. For example, applying the @Recordable.Embedded annotation to Modification<T> embedded both class Modification<T> and class T in a parent class.

  • 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 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 allowing possibly excessive scopes in the Google Drive integration.

  • 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 generating NullPointerException 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 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:

    • Corrected announcement for AI chat icon.
    • 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.
    • Recast duplicate <h1> headings in various widgets and forms.

Breaking changes

Subclasses of com.psddev.cms.type.Item need to implement ItemContainer to pick up any possible ReferenceField usages in the References tab.


v4.7.11

Note

v4.7.11 is an official, cumulative release of all of its previous release candidates. See below for a breakdown of what each release candidate included. When upgrading to this version, your implementation of Brightspot receives all bug fixes, improvements, and new features detailed in this topic.

v4.7.11 has 12 bug fixes, six new features, and 13 improvements.

Improvements

  • Dari now supports the classes in java.time.
  • Drag-and-drop is now available in the search panel's board view for indexed fields such as section and tag.
  • Added sort order options to the search panel, such as newer/older for update date, A-Z/Z-A for label.
  • Added improvements to the AI Chat user interface.
  • Improved usability of the collections menu (available in the search panel under .)
  • Added the Content Templates dashboard widget to integration testing.
  • Added bulk editing to integration testing.
  • Added non-publishable assets (such as dashboards) to integration testing.
  • Refactored code pertaining to the search panel in integration testing.
  • Added a permission that restricts editors to view assets only in their own collections or in appropriately shared collections.
  • Quick View (accessible by clicking ) is now available in the search panel's taxonomy view.
  • Refactored code for sticky search to avoid developer intervention when a new filter is added to the search panel.
  • In the search panel's Collections filter, editors can select more than one collection. This improvement allows editors to search for assets in more than one collection.

New features

  • Bulk editing is now available for content templates. For example, an editor can change the headline field on multiple content templates.

  • Content reports are now available.

    • Editors and admins can generate content reports for assets satisfying a broad range of criteria, such as content type, status, watcher, and package. The report output is fully configurable, and can include almost any field appearing in a selected content type.
    • Role permissions now include access to content reports.
    • A new Reports widget is available for inclusion in dashboards.
    • Admins and editors can configure content report notifications.
    • Editors can create content reports from the search panel.

Bug fixes

  • Corrected an issue causing the All Scheduled Items cluster to be incorrectly displayed.
  • Corrected an issue preventing a new collection from appearing as an available collection in the search panel.
  • Corrected an issue preventing a search widget in a custom dashboard from honoring the collections filter.
  • Corrected an issue causing icon misalignment in a basic list of asset previews (such as a basic list of images).
  • Corrected an issue throwing ClassCastException in the search panel.
  • Corrected an issue preventing proper filtering by tag when the search panel is in board view.
  • Corrected an issue preventing theme bundles from including folders starting with a dot (such as .well-known).
  • Corrected an issue displaying an unnecessary warning about altering header rows (as expected when importing a Google Sheets file) when importing a Google Docs file.
  • Corrected an issue preventing display of the Copy and Convert options in a module's more () menu.
  • Corrected an issue causing incorrect display of labels in the References widget.
  • Corrected an issue causing extraneous display of the Quick View icon () when dragging an asset inside a list.
  • Corrected an issue preventing field selection in a content report when the status filter is set to Any Status.

The following release candidates are also part of this release.

v4.7.11-rc.2023.12.21

v4.7.11-rc.2023.12.21 has seven bug fixes, three improvements, and two new features.

New features

  • A Content Templates widget is now available for the dashboard. The widget lists content templates by underlying content type along with a quick view.
  • The Create New control in a reference field allows creating an asset from multiple content types, not just the content type in the current context. For example, when creating a new article, the Create New control in the Author field allows creating a new author or a new user.

Improvements

  • Quick View is available for selected assets in reference fields. For example, when creating a new article, clicking for a selected author in the Author field displays the Quick View widget for the author.
  • An informational message appears when no changes are recorded after re-importing a Google Sheets containing tags or sections. Specifically, when the header row is deleted from a previously imported sheet, and changes are made to the data rows within the sheet, a message is displayed indicating those changes are not imported into Brightspot.
  • The method DataSupplier#get no longer requires the ToolPageContext page parameter. All calls to the method were similarly updated.

Bug fixes

  • Corrected an issue causing poor layout of adjacent and icons.

  • Corrected an issue preventing correct reset of a referenced image. For example, an editor uploads an image (State A) and then modifies it (State B). Next, the editor selects the shared image as an article's lead, and modifies it again in that context (State C). When clicking Reset in the image editor from the article, the image reverted to State A instead of State B.

  • Corrected duplicate text in the explanatory note for configuring a new Google service.

  • Corrected an issue preventing retention of some search settings.

  • Corrected an issue throwing an IllegalStateException in the Recent Activity widget. The exception occurred when an asset's underlying content type was deleted.

  • Corrected an issue causing some integration tests to erroneously fail.

  • Accessibility:

    • Added announcement to the New Workstream widget's Name field.

v4.7.11-rc.2023.12.13

v4.7.11-rc.2023.12.13 has 22 bug fixes, 14 improvements, and two new features.

New features

  • Editors can now generate PDFs from an asset's content edit form.
  • The preview pane now has a toggle for turning on or off Preview to Edit.

Improvements

  • Improved the search panel's taxonomy view to better accommodate long tag names.
  • Prior to this release, there were only two groupings of content types—Main Content Types and Misc Content Types—that appeared in various lists such as in the Create list. Administrators can now configure their own groupings of content types.
  • Administrators can assign colors to workflow statuses.
  • From an asset's content edit form, editors can add an asset to a collection, and can also view the collections in which the asset is included.
  • An asset's quick view now includes links to the asset's content edit form as well as a shared preview.
  • Editors can now filter for collections in the search panel.
  • Removed the Delete Permanently link in the following types of production guides: content type, page, and widget.
  • Changed field labels for configuring Quick View to improve consistency.
  • GitHub actions now include creation of containers for high-availability testing on Antithesis.
  • Code coverage reports are now included with integration testing.
  • Reworded option labels for sticky search.
  • Simplified APIs for the notification subsystem.
  • The class AbstractCmsPageTest was moved to a different package, and is now available to project developers.
  • Integration tests now include errors recorded in the browser console.

Bug fixes

  • Corrected an issue causing confusing display of a list while dragging an asset onto the list from The Shelf. In particular, when the list already included one asset, dragging the new asset from The Shelf did not provide a good indication of the new asset's position in the list.
  • Corrected an issue preventing application of a selected value in the search panel's Watchers filter.
  • Corrected an issue preventing deletion of a field's text in a production guide.
  • Corrected an issue preventing correct reset of the search panel's filters. When an editor has search filters configured for sticky or slightly sticky, clicking Reset in the search panel now reverts the content type to Any Content Type and retains the values of the other filters.
  • Corrected an issue preventing publication of assets in a bulk schedule. When the scheduled time arrived, the assets were not published.
  • Corrected an issue causing radio buttons in the Post Publish Actions widget to appear solid even when not explicitly selected.
  • Corrected an issue preventing Quick View from working when the search panel is in board view and the results are grouped by section.
  • Corrected an issue preventing removal of an image's preview in the Lead field. Specifically, an editor selects a shared image in the Lead field, and Brightspot displays the image's preview. The editor then selects a module in the Lead field. The preview for the previously selected image was not removed.
  • Corrected an issue preventing display of some material icons in the content edit form.
  • Corrected an issue causing incorrect display of the more icon in the rich-text editor's table module.
  • Corrected an issue preventing an asset's Quick View from appearing in The Shelf after dragging the asset onto the content edit form.
  • Corrected an issue causing search filters from the content picker to be those set in the search panel. For example, an editor opened the search panel and filtered for any asset published in the last seven days. Subsequently, the editor opened a reference field for authors. The associated content picker retained the filter for assets published in the last seven days.
  • Corrected an issue causing the Save Search control to disappear from the search results menu after opening a collection.
  • Corrected an issue preventing import options from appearing when attempting to import a file from Google Drive or Microsoft Drive.
  • Corrected an issue causing a list's explanatory text from appearing under the expand all control .
  • Corrected an issue preventing proper grouping of a list's or set's items.
  • Corrected an issue causing production guides to fail during integration testing.
  • Corrected an issue preventing population of alt text for SVG, PDF, and video previews.
  • Corrected an issue throwing a NullPointerException when opening search filters.
  • Corrected an issue preventing correct sorting of assets in the content picker.
  • Corrected an issue causing the number of assets surfaced in the search panel to be different from the number of assets reported in the actions menu.
  • Corrected an issue preventing bulk uploaded images from appearing in the search panel. Specifically, immediately after bulk uploading images, the search panel opens, but those images were missing.

v4.7.11-rc.2023.10.31

v4.7.11-rc.2023.10.31 has 13 bug fixes and 15 improvements.

Improvements

  • The Java Server Page record.jsp and associated pages were migrated to the FormInput class and associated subclasses.

  • The Java Server Page hotSpot.jsp and associated pages were migrated to the FileFormInput class.

  • Deprecated the initialBody element in the @RichTextElement.Tag annotation.

  • Updated the class ValueGenerator to allow for grouping of values in reference fields.

  • Deprecated the class ReferentialText and associated infrastructure. See "Breaking changes," below.

  • Converted the following files in /cms/tool-ui/src/main/webapp/v4/util/ to TypeScript:

    • debounce.js
    • getComponentKey.js
    • noise.js
    • repaint.js
    • storage.js
    • throttle.js
  • Editors can now filter for collections in The Shelf, and place individual assets within those collections on the content edit form.

  • Content templates now consistently reflect the hierarchy (from highest priority to lowest) user, role-site, role, site, global.

  • Admins are prompted with a message when attempting to have more than one default content template for a site.

    • Admins receive a warning message when attempting to add a default content template to a site that already has a default content template for that content type.
    • Admins receive an error message when attempting to use the same content template as both the default and an extra template for the same site.
  • Editors with access to the Publish Override transition, but with no access to any other transition, now see those transitions as read-only buttons in the Workflow widget. For example, a workflow has the transitions Send To Review, Send to Proofread, Publish, and Publish Override, and an editor has access to Publish Override. When opening the Workflow widget, the editor sees the next transition in the workflow as read-only. This improvement informs the editor that there may be other workflow steps necessary prior to publishing the asset.

  • Collections no longer are associated with a site; a collection can contain assets from multiple sites.

  • The Content Templates widget now has a filter field so editors can more quickly find their required content template.

  • Clicking a schedule in the Available Schedules widget now opens the Edit Schedule widget; previously clicking a schedule opened one of the assets contained in that schedule.

  • A new Enable Bulk Scheduling field is available in Edit Site. This field shows/hides the Bulk Scheduled Items field in the Edit Schedule widget.

  • Continued deployment of displaying workflow statuses with the same name only once in corresponding filter fields.

Bug fixes

  • Corrected an issue causing incorrect display of an editor's avatar in the search panel's board view.
  • Corrected an issue causing incorrect spacing between field labels and field values in the search panel's board view.
  • Corrected an issue causing incorrect display and functioning of the quick-view icon in the search panel's board view.
  • Corrected an issue preventing successful drag-and-drop upload from a laptop into a gallery's content edit form.
  • Corrected an issue preventing display of an asset's lead image in the search panel's quick view.
  • Corrected an issue causing display of an extraneous image in the content edit form when adding a shared image as an article's lead.
  • Corrected an issue causing an integration test to fail on the class ContentEditDrawerTest.
  • Corrected an issue preventing filtering of items in a list based on characters typed in the field. For example, a list contains three values Apple, Orange, and Banana. When an editor typed App, the values in the list did not reduce to only Apple.
  • Corrected an issue preventing correct operation of the Replace, Insert, and Copy buttons in the ChatGPT integration.
  • Corrected an issue preventing correct focus when a gallery is in list view and the editor clicks on an image.
  • Corrected an issue preventing drag-and-drop from one column to another in the search panel's board view.
  • Corrected an issue preventing correct operation of two-factor authentication.
  • Corrected an issue causing incorrect positioning of The Shelf's close icon .

Breaking changes

  • The JSP classes powering ReferentialText have been removed. Projects should use the Rich Text system instead. For details, see Rich text.

v4.7.11-rc.2023.9.28

v4.7.11-rc.2023.9.28 has seven bug fixes, 12 improvements, and one new feature.

New features

  • Added integration with OpenAI Chat.

Improvements

  • The initialBody element in the @RichTextElement.Tag annotation is now deprecated. Projects should use the toBody method in the RichTextElement class.
  • The file jquery.editableplaceholder.js was rewritten in TypeScript.
  • The status drop-down list in the search panel now displays workflow statuses with the same name only once. For example, the content type Article has two workflows, and both of them have a status named Review. Starting with this release, the status Review appears only once in the status drop-down list.
  • The Java Server Page searchResult.jsp was migrated to the SearchResultPage class.
  • The Java Server Page workflowActions.jsp was migrated to the Workflow class.
  • Ensured that object instantiation is package private for the following classes: RepeatingTask, SearchExtension, AutoPlugin, LocaleProvider, SiteMapType, and SiteMapConfig.
  • Replaced usage of the annotation @FieldDisplayType with @FormInputClass.
  • When adding a user as an asset's watcher, it is no longer necessary to click Add. Selecting the user in the View Watchers widget immediately adds the user.
  • Changed the threshold for displaying a + indicator to the notification count from 100 to 1000. When an editor accumulates 1000 or more notifications, the notification count is a static +.
  • The file v4/TextInput.js was rewritten in TypeScript, and is now delivered as a Lit web component. See "Breaking Changes," below.
  • Users can no longer create multiple Shelf Type Settings with the same content type.
  • When Sticky Search is enabled, Brightspot now retains the last setting for the search panel's Show field for the current content type. For example, an editor sets the Show field to 20 when filtering on images. The next time the editor opens the search panel and filters on images, the Show field is set to 20.

Bug fixes

  • Corrected an issue causing different production guides to appear for <domain>/cms/ and <domain>/cms/index.jsp.
  • Corrected an issue preventing successful login to Brightspot even after providing the correct username and password.
  • Corrected an issue preventing modification of strings in text fields.
  • Corrected an issue causing The Shelf to appear over the image editor's Done button.
  • Corrected an issue preventing the image editor from opening when attempting to edit an image associated with an asset's lead module.
  • Corrected an issue preventing display of the dashboard after successful login through Google single sign-on.
  • Corrected an issue causing build failures.

Breaking changes

  • Migration of v4/TextInput.js to TypeScript requires the following:

    • Code using CSS selectors to select inputs such as > input need to be changed to > btu-input input. The platform code has been updated accordingly, but any custom code outside platform will need this change.
    • Inputs of type checkbox (<input type="checkbox">) and visually hidden inputs are unaffected.

v4.7.11-rc.2023.9.18

4.7.11-rc.2023.9.18 has four bug fixes and four improvements.

Improvements

  • The Java Server Page searchResult.jsp was migrated to the SearchCollectionForm class.
  • The Java Server Page workflowActions.jsp was migrated to the Workflow class.
  • Users can no longer create multiple Shelf Type Settings with the same content type.
  • When Sticky Search is enabled, Brightspot now retains the last setting for the search panel's Show field for the current content type. For example, an editor sets the Show field to 20 when filtering on images. The next time the editor opens the search panel and filters on images, the Show field is set to 20.

Bug fixes

  • Corrected an issue throwing a message null value in entry: username=null when displaying a profile or user page.
  • Corrected an issue causing The Shelf to appear over the image editor's Done button.
  • Corrected an issue throwing a TypeError when attempting to edit an image from within a page's lead promo.
  • Corrected an issue preventing the image editor from opening when attempting to edit an image associated with an asset's lead module.
  • Corrected an issue preventing display of the dashboard after successful login through Google single sign-on.
  • Corrected an issue causing build failures.

v4.7.11-rc.202308

4.7.11-rc.202308 has 11 bug fixes, 19 improvements, and three new features.

New features

  • Collections:

    • Editors can add assets to existing collections directly from the search panel's more menu ( > Add To Collection).
    • Editors can view available collections by selecting > Collections. In that widget, editors can modify and delete collections.
  • Developers can view a JSON representation of an asset under the Tools widget.

  • Editors can now add and remove assets from a bulk schedule in the Edit Schedule widget.

  • Filters for users now include a Current User preset. For example, the filters for Publish User and Update User include a preset Current User.

  • Deployed an integration test framework that supports the following: Playwright, Antithesis, animations, screenshots, and video recording.

  • Removed the Java Server Page enhancementResult.jsp.

  • The Java Server Page settings.jsp was migrated to the UserSettings class.

  • The Java Server Page index.jsp was migrated to the IndexPage class.

  • The Java Server Page enhancement.jsp was migrated to the EnhancementPage class.

  • The Java Server Page header.jsp was migrated to the ToolPageContext#writeHeader method.

  • The Java Server Page objectPost.jsp was migrated to the FormRequest#processObject method. See "Breaking Changes," below.

  • The file v4/TextInput.js was rewritten in TypeScript, and is now delivered as a Lit web component. See "Breaking Changes," below.

  • The settings Auto Watch User On Publish and Auto Watch User On Update are now enabled by default.

  • An editor's Quick View settings override those set at the site level only for the selected content types. For example, an editor defined quick-view settings for articles. Prior to this release, that setting implied the editor wanted quick views only for articles, and quick views for any other content types at the site level were blocked. Starting with this release, the editor's configuration for an article's quick view overrides the site-level settings for articles, but quick views for other content types flow from the site to the editor.

  • Enhanced the native GraphiQL explorer so that the cursor does not unexpectedly jump from the current editing position in the middle pane.

  • Quick View is now available in the search panel's Board View.

  • Integrated search is now available with the Brightcove integration.

  • Improved the note appearing in the New Facebook Service widget.

  • Improved the notes appearing in the new service widget for the following services: Google, Instagram, LinkedIn, and Twitter.

  • Updated the GraphiQL npm package to version 3.

  • Updated the file cms/tool-ui/src/README.md to reflect changes in TypeScript functions.

  • Added README documentation to the OneLogin authentication module.

Bug fixes

  • Corrected an issue throwing a message null value in entry: username=null when displaying a profile or user page.

  • Corrected an issue that, after deleting a standard content type, deleted associated editorial content types and also displayed a validation exception message. Starting with this release, deleting a standard content type archives (instead of deletes) any associated editorial content types.

  • Corrected an issue that prevented display of the controls Add Tags and Add Sections in the Suggestions widget when the editor has an assigned role.

  • Corrected an issue causing The Shelf's close button from appearing in the wrong place.

  • Corrected an issue generating an excessively large clickable area around the Add Object Type in the New Site Search page.

  • Corrected the following issues in the GraphiQL explorer:

    • Fields named deprecated appeared as deprecated.
    • Nested deprecated fields did not appear as deprecated.
  • Corrected an issue that prevented new users from resetting their passwords on first login.

  • Corrected an issue that threw a message Invalid advanced query when a new user opened the search panel.

  • Corrected an issue preventing the search field from working correctly in the module picker.

  • Deprecated ToolPageContext#writeQueryRestrictionForm (which created two web forms) in favor of ToolPageContext#writeQueryRestriction.

  • Corrected an issue that was causing the error message Unable to process file type [UNKNOWN TYPE] for Remote Theme Bundle. File must be gzip or zip file! to display incorrectly when creating a theme from a remote bundle (New Theme > Main > New File > New URL).

Breaking changes

  • The new method FormRequest#update provides the same functionality as objectPost.jsp. That method requires three parameters:

    • object—The object to be updated, cannot be null.
    • includeFields—A collection of strings representing the names of the object's internal fields that will be updated. Can be empty or null.
    • excludeFields—A collection of strings representing the names of the object's internal fields that will not be updated. Can be empty or null.

    includeFields and excludeFields should never be used together in the same method call.

  • Migration of v4/TextInput.js to TypeScript requires the following:

    • Code using CSS selectors to select inputs such as > input need to be changed to > btu-input input. The platform code has been updated accordingly, but any custom code outside platform will need this change.
    • Inputs of type checkbox (<input type="checkbox">) and visually hidden inputs are unaffected.

v4.7.10.1

v4.7.10.1 has one bug fix.

Bug fixes

  • Corrected an issue that was causing the error message Unable to process file type [UNKNOWN TYPE] for Remote Theme Bundle. File must be gzip or zip file! to display incorrectly when creating a theme from a remote bundle (New Theme > Main > New File > New URL).

v4.7.10

v4.7.10 has seven bug fixes and seven improvements.

Improvements

  • Improved site caching, thereby greatly reducing the time required for editors to publish assets to the live site.

  • The Java Server Page timeZone.jsp was migrated to the TimeZoneFormInput class.

  • Google Drive synchronization:

    • Sync widget now has a link to the source file on Google Drive.
    • When synchronization is complete, Brightspot displays a confirmation message.
  • Removed the Java Server Page rte2-cms-styles.jsp. See "Breaking Changes," below.

  • The widget Admin > Content Types now includes a filter for sites.

  • Removed the Java Server Page state.jsp.

  • Editors can now drag assets from The Shelf into single-value fields, such as Lead and Section.

Bug fixes

  • Corrected an issue preventing display of the Reset numbering widget when double-clicking a number in an ordered list.
  • Corrected an issue preventing display of the Quick View widget when clicking for a revision.
  • Corrected an issue preventing imported assets from appearing in the New section of the content picker. For example, an editor creates a new AP Image, and then immediately creates a new article. After clicking > Edit Image > , the content picker appeared but the AP image did not appear in the New section.
  • Corrected an issue preventing display of an imported image's thumbnail inside a gallery.
  • Corrected an issue preventing display of an image's preview in a reference field until the containing asset was subsequently saved.
  • Corrected an issue preventing proper rendering of Brightspot in Firefox and Safari.
  • Corrected an issue preventing display of AWS Comprehend suggestions.

Breaking changes

  • Removal of rte2-cms-styles.jsp fully removed the textCssClassGroups field and all associated references. Further support for textCssClassGroups is no longer provided, and all configured custom tags within the field in Sites & Settings should be appropriately converted to RichTextElement.

v4.7.9

v4.7.9 has three bug fixes and 19 improvements.

Improvements

  • The workflow for content templates was removed from global site settings (and still remains in role/user settings). A site can be assigned to a content template, so the entire admin experience for content templates is similar to that for workflows and audiences.
  • Preview-to-edit of an asset now allows editing of embedded or shared children assets.
  • Improved the selection of visible and hidden items in content forms.
  • The Java Server Page password.jsp was migrated to the PasswordFormInput class.
  • The Java Server Page change-password.jsp was migrated to the ChangePasswordPage class.
  • The Java Server Page objectIdResult.jsp was migrated to the ObjectIdResultPage class.
  • The Java Server Page savedSearch.jsp was migrated to the SavedSearchPage class.
  • The Java Server Page objectId.jsp was migrated to the ObjectIdPage class.
  • The Java Server Page misc/search.jsp was migrated to the InitiateSearchPage class.
  • Usages of the Java Server Page objectMessage.jsp were replaced with the method FormRequest#writeObjectMessage.
  • Usages of the Java Server Page objectForm.jsp were replaced with the method ToolPageContext#writeSomeFormFields.
  • Usages of the Java Server Page errors.jsp were replaced with the method FormRequest#writeErrorMessages.
  • Usages of the Java Server Page footer.jsp were replaced with the method ToolPageContext#writeFooter.
  • Usages of the Java Server Page field.jsp were replaced with the methods FormRequest#updateFromInput or FormRequest#writeInput (see breaking changes, below).
  • All files in src/main/webapp/v4/dom/ were converted to TypeScript.
  • Preview-to-edit is now streamlined for many levels of nested assets. Fields in the preview pane have multiple distinctive borders corresponding to levels of nesting. Modifying nested assets involves fewer mouse clicks.
  • Quick View now includes fields that have empty or no value.
  • Quick View now displays fields in the same order as in the associated content edit form.
  • Brightspot now includes an indication that the integration with Google Analytics 4 is configured correctly.

Bug fixes

  • Corrected an issue that prevented the class LoginPage from resolving HEAD requests.
  • Corrected an issue that prevented display of the navigation menu after clicking .
  • Corrected an issue that caused the Google Drive Content Edit widget to display an error instead of hiding.

Breaking changes

  • The new method FormRequest#writeObjectMessage requires the following parameters:

    • object—the object’s status/visibility determines what message is sent to the form (cannot be null).
    • body—the WebResponseBody containing the banner's text (cannot be null).
  • The new method FormRequest#writeSomeFormFields requires the following parameters:

    • object—source object for the form's contents (cannot be null).
    • includeGlobalsboolean indicating inclusion of global fields.
    • includeFields—collection of all fields that should be included (can be null).
    • excludeFields—collection of all fields that should be excluded (can be null).
  • Regarding the replacement of field.jsp with FormRequest#updateFromInput or FormRequest#writeInput:

    • In the original use case, if the isFormPost attribute is set to true, then use FormRequest#updateFromInput. This method updates the given object's field from HTML inputs.
    • In the original use case, if the isFormPost attribute is set to false, then use FormRequest#writeInput. This method writes HTML inputs for the given object's field to the given body.

v4.7.8

v4.7.8 has six bug fixes, nine improvements, and three new features.

New features

  • The Shelf now includes only those content types that can be added to the current asset in the content edit form. For example, if a content edit form has a single field for a list of videos, the editor can configure The Shelf to include only videos.
  • The Content Types widget has a new control for listing editorial content types. Editors can use this listing to see the assets based on an editorial content type.
  • Added support for Lit decorators in TypeScript.

Improvements

  • Improved display of an image's Colors widget.
  • The Java Server Page number.jsp was deleted following a previous migration to the NumberFormInput class.
  • Deleted the deprecated Java Server Page metric.jsp.
  • The Java Server Page region.jsp was migrated to the RegionFormInput class.
  • The Java Server Page permissions.jsp was migrated to the PermissionsFormInput class.
  • The Java Server Page login.jsp was migrated to the Login class.
  • The Java Server Page reset-password.jsp was migrated to the ResetPasswordPage class.
  • Deleted the deprecated Java Server Page sharePreview.jsp.
  • Implemented Google Analytics 4 for reporting at the site, search, and asset levels.

Bug fixes

  • Corrected an issue that prevented the preview pane's height from being set correctly.
  • Corrected an issue that disabled scrolling in the preview pane after updating text in the associated content edit form.
  • Corrected an issue that caused images with height greater than width to overflow their containers in the content edit form (but were resized correctly after publishing).
  • Corrected an issue that caused a static persistent query mapping to throw an error when creating a new API endpoint.
  • Corrected an issue that added extraneous whitespace characters in templates defining a prefix with the tag HBSfield.
  • Corrected an issue that caused unit tests involving WebRequest objects to fail.

v4.7.7

v4.7.7 has three bug fixes and three new features.

Improvements

  • A new permission ImageEditor was added for access to the image editor.
  • The Shelf now includes only those content types that can be added to the current asset in the content edit form. For example, if a content edit form has a single field for a list of videos, the editor can configure the Shelf to include only videos.
  • The Java Server Page map.jsp was migrated to the MapFormInput class.

Bug fixes

  • Corrected an issue that threw a NullPointerException error when importing a list of tags or sections from a Google Sheet.
  • Corrected an issue that prevented an image from appearing in an article's lead field. Specifically, this error occurred when modifying an image's crop for a particular size, and the browser window was resized to trigger the crop, but the cropped image did not appear.
  • Corrected an issue that flashed an extraneous message when closing the Edit GraphQL Explorer Options widget.

v4.7.6

v4.7.6 has six bug fixes and one new feature.

New features

  • Editors can start numbered lists at an arbitrary number. This feature is useful if a numbered list is interrupted by an unindented rich-text enhancement, and the list needs to resume at the next sequential number.

Improvements

  • The annotation @ToolUi.Cluster has a new element collapsible that determines if a cluster is collapsible. For example, @ToolUi.cluster(collapsible=false) indicates the annotated cluster is not collapsible. The default value for collapsible is true, allowing users to collapse clusters.

  • Assignment Desk—

    • Assignment Desk's search panel is now integrated with Brightspot's standard search panel. Editors can search for Assignment Desk assets by filtering on the Assignment and Pitch content types.
    • Assignment Desk's dashboard is now integrated with Brightspot's standard dashboard. (This is a code change only; the editor's experience remains the same.)
  • GraphQL—

    • The GraphQL Explorer now bypasses introspection query rules. (Before this change, an IntrospectionQueryRule contained logic to permit the GraphQL explorer to perform introspection queries.)
    • Added _label to GraphQL responses.
  • The Java Server Page location.jsp was migrated to the LocationFormInput class.

  • The Java Server Page repeatableObject.jsp was migrated to the RepeatableObjectPage class.

  • Initial loading of all global content edit forms is more performant.

Bug fixes

  • Corrected an issue that threw an undefined/undefined zipped (currently on undefined) message during Styleguide builds.
  • Corrected an issue in which all Filter radio buttons in the image editor could be toggled off. Starting with this release, at least one of the Filter radio buttons must be toggled on (as is standard with radio button groups).
  • Corrected an issue causing injection of superfluous AWS Rekognition time frame metadata and Search Exclude metadata into State JSON data.
  • Corrected an issue in which, in some configurations (front-end/preview URL on a domain different from the CMS; preview-to-edit disabled at the global level, enabled at the site and profile levels), preview-to-edit did not function.
  • Corrected an issue that prevented correct display of the search panel's board view when the browser window has a width of about 778px.
  • Corrected an issue in which a saved sticky search did not return results after changing the view in the search panel. Starting with this release, saving a sticky search also saves the search panel's view.

v4.7.5

v4.7.5 has two bug fixes, 11 improvements, and one new feature.

New features

  • A new User converter allows admins to import new Brightspot users from a Google Sheets document.

Improvements

  • GraphQL—

    • Improved performance of static persisted GraphQL queries.
    • Updated GraphiQL to version 2.0.
    • A custom toolbar was added to the GraphiQL UI that contains new controls, including show/hide deprecated fields in the Explorer pane and minify the query pane.
    • CMA endpoints now allow for ObjectType as a query entry field.
  • Reduced the Styleguide build time by launching the screenshots task concurrently instead of sequentially.

  • Added padding in the image editor so editors can more easily grab corner anchors.

  • Moved the Analytics widget to its own tab in the content edit form. The tab includes a new message explicitly indicating that no analytics are available for an asset (instead of a graph with zero values).

  • The search panel's Show/Hide widget now groups fields by content type and tab, allowing editors to distinguish between fields with the same label. For example, the Page content type has a field Description in both the Main tab and the SEO tab. The Show/Hide widget lists the Description field under a cluster Page > Main and separately under a cluster Page > SEO.

Bug fixes

  • Corrected an issue in which queries working in Solr 4.6.1 no longer work in Solr 8.11.1.

Breaking changes

  • The fix for Solr 8.11.1 described above requires a SQL-to-Solr copy.
  • The improvement for static persisted GraphQL queries deprecated the field CustomStaticPersistedQueryProtocol#persistedQueryMappingFile; this field has not been relocated.

v4.7.4

v4.7.4 has four bug fixes, 11 improvements, and two new features.

New features

  • A code change enables developers to extend the image editing menu with additional options.
  • The Recent Activity and search panel widgets now provide a quick view. Clicking in those widgets displays a summary of the corresponding asset. Administrators and editors can configure the quick view's contents by content type.

Improvements

  • Standardized the settings for configuring the Brightspot UI theme. Previously these settings where accessed from the control; now they are accessed through an editor's profile, site settings, or global settings.

  • Improved the internal representation of tags' and sections' hierarchies.

  • The search panel retains its state based on three levels of stickiness:

    • Sticky—Search panel retains, for the global filter and content types, the following selections: content type-specific filters, view, sort, columns, zoom, and group by. For example an editor searches for articles written by Olivia, displaying the results in list view and sorted by update date. The editor closes the search panel. When the editor re-opens the search panel, the same settings are visible (as are other settings applied to other content types).
    • Slightly sticky—Search panel retains selections for the status and publish date filters.
    • Disabled—Search panel always opens with default settings.
  • Permissions on the Suggestions widget are now more granular such that editors can now see the suggestions, save a draft, and submit an asset into a workflow.

  • A dashboard's name is now different from the first tab in the dashboard. (Previously the dashboard's name was automatically assigned to be the label on its first tab.)

  • GraphQL:

    • Changed CDA schema for image filter metadata (sepia/invert/grayscale) to support a single filter value.
    • Browsers can now cache CORS preflight requests.
    • Schema loader can now read the @Javadoc annotation.
  • Enhanced the real-time messaging pertaining to character counts in text fields.

  • Brightspot issues a warning when an administrator modifies an editorial content type that has published assets. For example, an editor publishes assets using the editorial content type MyArticle. If an administrator modifies MyArticle, Brightspot displays a warning indicating that there are already assets published through that content type.

Bug fixes

  • Corrected an issue that prevented resetting metadata overrides after replacing one image with a new one.

v4.7.3

v4.7.3 included the following:

  • 6 bug fixes
  • 5 new features
  • 25 improvements

New features

  • Editors can create contextual edits on an asset's shared lead image. For example, Adam added a shared image as a lead for an article. Adam now has the ability to edit this image so it appears differently in the lead, but appears as the original image everywhere else it is used.
  • Editors can import Google Docs as articles, blog posts and documents.
  • Editors can import Google Sheets as sections or tags.

Improvements

  • The module picker now has a search field for quickly finding a specific module or style.

  • Shared previews now include a link that opens the underlying asset in the content edit page.

  • Saved searches now remember the editor's selected tab and exposed fields. For example, an editor saves a search MySearch while in board view and showing only the label field. The next time the editor runs MySearch, the results will be in board view and showing only the label field.

  • Imports from Google Drive now include the following fields: name, owner, file type, last modified date, and last modified by.

  • Watches and watchers:

    • Editors are now added to an asset's watchers list after they save or publish the asset. (Editors can opt-out of this feature.)
    • The Watchers popup is now opened from the content edit actions menu.
    • Improved synchronization between the watchers and conversation widgets.
    • When copying an asset, the watchers are no longer carried to the new asset.
    • Depending on permissions, an editor can remove other editors from a list of watchers.
  • There is no longer a For Editors tab in field level notes. (Depending on permissions, clicking in a field now displays information for developers only.) Editors now see field-level explanations in production guides.

  • Editors can now receive a notification when an administrator uploads a new file, or applies a new URL, to a remote theme.

  • GraphQL:

    • Elements associated with the @ImageAttributes annotation are more widely available through GraphQL.
    • Image-editor settings are no longer available through GraphQL.
    • Added image orientation metadata to CDA ImageAttributes.
    • Added support for generic Map fields to CMA, rCDA.
    • Added focus points as a function of an image's size grouping to CDA, rCDA.
    • Added suggested focus points to CDA, rCDA if those suggested points were actually applied to an image.
    • Theme fields in CDA schema are now captured in a separate _Theme entry field.

Bug fixes

  • Preview-to-edit:

    • Corrected an error that prevented editing of embedded or shared objects using preview-to-edit.
    • Corrected labeling of the rich-text editor field in preview-to-edit.
  • Corrected an error that caused the Watchers widget to time out for a very large number of watchers.


v4.7.2

v4.7.2 has four bug fixes and 13 improvements.

Improvements

  • Added the following commands to the TypeScript feature: config, login, logout, types download, and types upload.
  • Added validation to fields in classes that extend from ExternalItemConverter.
  • Improved generation of sitemap files to exclude redirects.
  • The method ObjectField#getUniqueName uses the @InternalName of the field's declaring class, if it exists, and falls back to the class's name. This improvement allows developers to change class names without a full data migration.
  • Added a cancel button to the pre-publish popup, enabling editors to avoid initiating any pre-publish actions.

Bug fixes

  • Fixed scrolling in the Add widget for adding a module.
  • Corrected a regression error that displayed empty production guides that cannot be closed.
  • Corrected a UI workflow that required refresh of the content edit form after authentication with an external service. For example, an editor wants to import an asset from Google Drive. The editor sees a link in the content edit form to authenticate with Google Drive. Brightspot displays an authentication form, the editor enters the credentials, and successfully creates a connection. Brightspot returns to the content edit form and displays the authentication link instead of the available assets in Google Drive. The editor needed to refresh the content edit form to see those assets.

Breaking changes

  • Referring to the update to the method ObjectField#getUniqueName described above, projects already using @InternalName on a class will experience disconnected Solr indexes. Such projects must re-index the SQL database and copy the results to Solr.

v4.7.1

v4.7.1 has three bug fixes, nine improvements and one new feature.

Caution

An issue was discovered affecting v.4.7.1 that prevents users from setting style presets from the rich-text editor, such as setting alignment on modules. A workaround is available by adding the following custom CSS.

.CIG-row.StyleguidePreset-row .CIG-small:has(select[data-selected-id=""]) + .CIG-large { 2 display: block !important; 3}

The custom CSS above is compatible with Apple Safari and Google Chrome. A setting must be updated in Mozilla Firefox for the custom CSS to be compatible. See Mozilla's browser compatibility section.

New features

  • TypeScript is now available for back-end development.

Improvements

  • An Expand All control is available on all widgets for opening all clusters.
  • Themes can now be imported from a URL.
  • Admins can provide their own client API keys for Shutterstock, instead of using the generated key.
  • Brightspot provides a prompt to admins indicating the integration with Google Analytics is configured correctly.

Breaking changes

  • None.

v4.7.0

v4.7.0 has five improvements and two new features.

New features

  • Added commands to the JavaScript CLI.
  • Developers can now use programmatic creation of API clients and keys even when no WebRequest is present.

Improvements

  • GraphQL—

    • Removed arguments as allowed by the upgrade to GraphQL version 19.
    • GraphQL no longer depends on the analytics module.

Breaking changes

  • None.