Skip to content

2.0.17

Key updates January, February 2026

CXBOX (Demo)

Added: New Year atmosphere in the application

We have added an option to create a festive New Year atmosphere in the application. You can enable a falling snow effect in the application menu.

The effect is controlled via a configuration parameter. See more New Year atmosphere

CXBOX-1212.png

Added: RelationGraph – NEW widget type!

We’ve introduced the RelationGraph widget to visualize relationships between nodes in a structured graph format.

Key functionality includes:

  • Switch between graph and table view
  • Parent–child support
  • DrillDown support
  • Custom color configuration for nodes and edges
  • Configurable graph direction (top-bottom, left-right, etc.)
  • Customizable node text, edge labels, and edge styles

CXBOX-1157.New.png

Warning

  1. If multiple connections lead to the same node, and some of them skip intermediate nodes, the graph may not display as expected. Because of this, we do not recommend using such data structures when possible.
  2. The widget automatically switches to table view if cyclic relations or duplicate connections are detected in the data.

Info

A detailed article on RelationGraph will be available soon in our official documentation – stay tuned!

Added: CardList – NEW widget type!

We’ve introduced a new CardList widget designed for convenient file preview and management. All uploaded files are displayed as preview cards, allowing you to easily browse, edit, add, or delete items directly within the widget.

Key functionality includes:

  • File preview in card format
  • Actions’ support
  • DrillDown support
  • Configurable card size
  • CXBOX-901.jpg

Info

A detailed article on CardList will be available soon in our official documentation – stay tuned!

Added: CardCarouselList – NEW widget type!

We’ve added a new CardCarouselList widget with functionality similar to CardList, but presented in a carousel layout. Cards are arranged in a horizontal scrollable strip, while the selected item is displayed prominently above for easier viewing.

Key functionality includes:

  • Carousel navigation (forward/backward scrolling)
  • Actions’ support
  • DrillDown support
  • Configurable card size

CXBOX-901_CardCarouselList.jpg

Info

A detailed article on CardCarouselList will be available soon in our official documentation – stay tuned!

Added: Export to Excel as a regular button

Added the ability to display Export to Excel as a regular button. To do this, you only need to indicate a new PostAction.exportToExcel for a BC button.

Example
   .action(act -> act                       
        .scope(ActionScope.BC)
        .withPreAction(PreAction.confirm(cf -> cf.text("Export to Excel?" )))
        .action("customExportToExcel", "Custom export to excel" )
        .invoker((bc, data) -> new ActionResultDTO<MyExampleDTO>()
        .setAction(PostAction.exportToExcel()))

CXBOX-816.New.After.png

CXBOX-816.New.Before.png

Added: AssocListPopup and PickListPopup widget - gridWidth support

We have added support for gridWidth for AssocListPopup and PickListPopup, like we did for FormPopup in v2.0.9. You can now manage the width using view.json -> widgets -> gridWidth to control the adequate content presentation in the popup.

You can now control the size using gridWidth to ensure that the content is fully displayed in the popup.
CXBOX-715After.png

The popup size for AssocListPopup and PickListPopup was constant, the value of gridWidth was ignored.
CXBOX-715Before.png

Note! Before this release value of gridWidth was ignored, e.g. popup widget was constant. You can set gridWidth = 16 to remain old popup sizes.

Added: Alternative pagination support

We have introduced the ability to retrieve the total row count on demand via a new alternativeType parameter. By clicking a button, users can request the total number of rows. Once activated, the count remains available during filtering and page navigation and resets only after a page refresh.

Example
   "options": {
    "pagination": {
      "alternativeType": "nextAndPreviousWithCount" 
      "type": "nextAndPreviousSmart"  
    }
  }

CXBOX-1118-After.gif
You can keep a performance-friendly pagination mode by default (nextAndPreviousWithHasNext/ nextAndPreviousSmart) and switch to nextAndPreviousWithCount only when record counting is needed.

CXBOX-1118-Before.gif
To display the total row count, you can only indicate nextAndPreviousWithCount pagination type, which sends a /count request and may impact performance.

Added: Support for .ogg, .aac, and .flac

Support for .ogg, .aac, and .flac formats has been added.

ogg_CXBOX-1234.png

aac_CXBOX-1234.png

flac_CXBOX-1234.png

Added: Export to Excel support all types fields

Support has also been added for exporting the following field types to Excel:

Fixed: CalendarYearList the buttons are displayed correctly depending on the type

For the CalendarYearList type, the buttons are displayed correctly depending on the type — record or BC

CXBOX-1149After.png

CXBOX-1149Before.png

Fixed: Settings Menu Update

The settings icon (gear) has been moved to the table header and positioned on the right side, above the three-dot menu. This will save space when there are no actions, PDQ, or full-text search on the table.

CXBOX-985After.png

CXBOX-985Before.png

The view mode toggle icon (chart / table) has been moved to the settings menu.

CXBOX-985ToggleAfter.gif

CXBOX-985ToggleBefore.gif

The Collapse columns function has been moved to the settings menu.

CXBOX-985collapseAfter.gif

CXBOX-985collapseBefore.gif

Fixed: Full-Width Numeric Fields

The display of fields with the following types has been improved:

The field input now spans the full width of the table column.

CXBOX-1203-After.png

CXBOX-1203-Before.png

Fixed: GroupingHierarchy Empty State Improvement

For the GroupingHierarchy widget, scroll display has been added for cases when there is no data and no default hierarchy is defined.

CXBOX-1146After1.png

CXBOX-1146Before1.png

Fixed: Adaptive Action Group Width

The display of the action group has been improved: the width of the window showing button labels now automatically adjusts based on the content.

CXBOX-1179After.png

CXBOX-1179Before.png

Fixed: Improved Scrolling for Large Lists

The behavior of the scroll and arrows has been improved when there are many values in dictionary.

after_CXBOX-1188.gif

befoe_CXBOX-1188.gif

Fixed: Gear Icon Display Fix

Fixed the gear icon behavior when there are no buttons on the widget — the gear icon is now displayed.

CXBOX-1192After.png

CXBOX-1192Before.png

Fixed: Fixed the highlighting of required multivalue field

Fixed the highlighting of required multivalue field in the List widget when using inlineForm editing. This ensures visual consistency with other field types, which are also highlighted in List widget above the editing Form.

CXBOX-1138After.png

CXBOX-1138Before.png

Fixed: Multivalue,multivalueHover и pickList Filter Display Fix

Fixed the display of filters for multivalue, multivalueHover и pickList fields: selected values are now shown correctly, regardless of whether they are present on the selected page.

CXBOX-1145After1.png

CXBOX-1145After2.png

CXBOX-1145Before1.png

CXBOX-1145Before2.png

Info

There is a limitation when using predefined filters of the following types: multivalue, pickList, and multivalueHover. When such filters are predefined, the filter tags display id values. When the filter is manually edited (for example, by adding values via a picklist), the tags are displayed according to the standard rules. This behavior is caused by a frontend limitation: the frontend cannot resolve display names for filter tags if the records specified in the predefined filter are located on different pages of the picklist popup and are not loaded in the current UI context.
CXBOX_1145.png

Other Changes

see cxbox-demo changelog

CXBOX (Core Ui)

We have released a new 2.8.0 CORE UI version.

Added: Optional WebSocket Updates

Added the option to disable WebSocket calls from the frontend. The notification bell count is still displayed, but it will only update when the page is reloaded.

WebSocket Request Behavior Based on featureSettings

  • webSocketNotificationEnabled: false → WebSocket requests are disabled
  • webSocketNotificationEnabled: true → WebSocket requests are enabled
  • If the setting is not provided → WebSocket requests are enabled by default

Fixed: Optimized functionality for ...

Removed the request triggered by clicking on ... the GET /api/v1/row-meta/id request is no longer sent.

after_CXBOX-1111.png

before_CXBOX-1111.png

Other Changes

See cxbox-ui 2.8.0 changelog.

CXBOX 4.0.0-M22 (Core)

We have released a new 4.0.0-M22 CORE version.

Added: Parameter New Year atmosphere

We added a new parameter for UiProperties: seasonalEffectsEnabled.

When set to true, it enables a snowfall effect in the menu area.

Added: Parameter WebSocket

We added a new parameter for UiProperties: webSocketNotificationEnabled.

When set to false the frontend guarantees no WebSocket interactions, so the backend WebSocket functionality may be safely removed.

Added: New PostAction exportToExcel

Added the ability to add button Export to Excel as a regular button.

Other Changes

See cxbox 4.0.0-M22 changelog.

CXBOX documentation

Added: Description New Year atmosphere in the application

We have provided a description on how to create a festive New Year atmosphere in the application.

Added: Description Bulk operations (Mass Operations)

We have provided a description Bulk operations

Bulk operations are a mechanism that allows the user to perform a single action on a large number of table rows at once. Instead of processing each row individually, the user can select a set of data and apply a common operation to it—such as updating, deleting, changing statuses, recalculating values, and other typical scenarios.

Added: Description forward/back/refresh buttons

Describe in the documentation the behavior of the browser's forward/back/refresh buttons.

Added: Description widget Steps

We have provided a description of Steps widget

Added: Description Screen Search in Left Menu

We have provided a description Screen Search in Left Menu

Added: Description Screen Name Wrapping in Left Menu

We have provided a description Screen Name Wrapping in Left Menu

Added: Description setHidden

We have provided a description setHidden

Added: Description new properties Time

We have provided a description new properties time

Added: Description a limitation when using predefined filters

There is a limitation when using predefined filters of the following types: multivalue, pickList, and multivalueHover.

  • When such filters are predefined, the filter tags display id values.
  • When the filter is manually edited (for example, by adding values via a picklist), the tags are displayed according to the standard rules.

  • see more filters

Added: Description to the sorting behavior

Please pay attention to the sorting behavior:

  • If the user has not set a sorting option, the default sorting is applied if it is defined.
  • If the user has applied a sorting option, it will be preserved when navigating via drill-down or between screens.

see more sorting

Added: Recommendations for Spring Data JPA 3.5.1, queries involving Hibernate custom types

Starting with Spring Data JPA 3.5.1, queries involving Hibernate custom types (for example, dictionary-like value objects) may break when Spring Data rewrites JPQL queries into constructor-based projections.

Recommendations for solving the problem are here

Added: Recommendations for Spring Data JPA 3.5.1: Custom Hibernate Types Issue

Starting with Spring Data JPA 3.5.1, support for custom Hibernate types in queries is broken when Spring Data rewrites queries into constructor-based projections.

Recommendations for solving the problem are here