2.0.9
Key updates November, December 2024
CXBOX (Demo)
Added: AdditionalList widget - new display mode
Now, Additional List widget supports two display modes.
- (NEW) Default: each row in Additional List is rendered using the default List-like style.
- (OLD) If
options -> readis populated with AdditionalInfo widget name: each row is rendered as specified AdditionalInfo widget.


Added: Notifications - drilldown to objects
We have enhanced the Notifications popup to support multiple drilldown links.
- The notification banner now displays number of links:


- Clicking the bell icon opens the Notifications popup, where all hyperlinks to related objects are listed.
Added: FormPopup widget - gridWidth support
We now support gridWidth for FormPopup. You can now directly indicate the width using view.json -> widgets -> gridWidth and the width now dynamically adjusts based on the following factors:
- The state of the menu (collapsed or expanded)
- The presence or absence of the additional widget on the view.

These changes ensure that the gridWidth option for usual widget and for FormPopup widget has the same meaning (e.g. generates widgets of same width).
Note! Before this release value of gridWidth was ignored, e.g. popup widget was constant. After release one can set gridWidth = 9 to remain old popup sizes.
See the detailed description in the updated formPopup article.
Added: Dictionary field - Administration UI
- A new Administration Screen has been added to the UI, allowing you to configure
dictionariesdirectly from the interface - Changes made through the UI are applied instantly via
Clear Cache(experimental feature, does not support cluster) - You can now export dictionary data to a CSV file using the
Export. Exported file format is same as used in Liquibase migration (see next paragraph) which makes migration process easier without any manual adjustments - A new CSV migration with Liquibase - ensures effortless pre-filling and data transfer between environments (production ready)
See details in the updated Dictionary article:
- section Administration Dictionary
How to add?sections in this article now have snippets withDictionaryusage (instead of deprecatedLOV)
Added: Role-Based Model - MultiRole Support
BEFORE (multi-role-enabled: false):
- Login Behavior. The backend returned an activeRole parameter indicating the user's active role (e.g., "activeRole": "CXBOX_USER").
- UI Behavior. The UI displayed a checkbox for the active role, and users can switch roles.
AFTER (multi-role-enabled: true):
- Login Behavior. The backend sends activeRole: null, and the UI ignores this value. All roles available to the user are sent in the roles list. The content of requests includes all views accessible by any of the user's roles. If the view is available for at least one role, it means that the view is available for user in the multirole mode.
- UI Behavior. Checkboxes for all roles are displayed but are disabled, preventing role switching. Requests to the backend for role switching are no longer triggered.

Added: Role-Based Model - View Responsibilities Administration UI
BEFORE (view-allowed-roles-enabled: true):
view responsibilitiesare configured inview.json -> rolesAllowed.- Database management of the Responsibilities table is only possible through
view.json.
AFTER (view-allowed-roles-enabled: false):
- A new Administration Screen has been introduced in the UI for configuring view responsibilities
- Any updates made in the UI are applied instantly via
Clear Cache(experimental feature, does not support cluster) - You can now export
view responsibilitiesdata to a CSV file using theExport. Exported file format is same as used in Liquibase migration (see next paragraph) which makes migration process easier without any manual adjustments - A new CSV migration with Liquibase - ensures effortless pre-filling and data transfer between environments (production ready)

Added: Role-Based Model - Action Responsibilities Support
BEFORE (corresponds to widget-action-groups-enabled: true):
- UI Layer: Action visibility (e.g., buttons on widgets) is managed in
widget.json -> actionGroups -> include.
AFTER (widget-action-groups-enabled: false)
- The UI now includes an Administration Screen for configuring action responsibilities directly. Additionally, a database table (responsibilities_action) has been introduced to store action responsibilities data.
- Any updates made in the UI are applied instantly via
Clear Cache(experimental feature, does not support cluster) - You can now export
action responsibilitiesdata to a CSV file using theExport. Exported file format is same as used in Liquibase migration (see next paragraph) which makes migration process easier without any manual adjustments - A new CSV migration with Liquibase - ensures effortless pre-filling and data transfer between environments (production ready)

We have introduced automatic migration of widget.json -> actionGroups -> include configuration to responsibilities_action. Application fills table on start based on widget information if widget-action-groups-enabled: true. Only widget.json -> actionGroups -> include is supported - one should migrate manually if widget.json -> actionGroups -> exclude is used
Also, two migration modes introduced
If you indicate widget-action-groups-compact: true the responsibilities_action data will be filled in a compact way. Under this parameter, the asterisk (*) means that the responsibility is relevant for all roles and all views. This is especially helpful during migration process so that you don't have to handle with numerous data rows and just display them in a collapsed way instead.
If you indicate widget-action-groups-compact: false the data will be filled for each role and each view separately.
Added: suggestionPickList field - backend query on click
We have optimized the functionality of suggestionPickList by removing the character limit for backend queries. Now, when users click on the field, a request is sent to the backend immediately, displaying all available data without the need to type any characters.
Added: Notifications - Bearer Token authentication for WebSockets
We have added support for Bearer token authentication when connecting to WebSocket endpoints for notifications. Now, the Bearer token is included in the request header for secure access to the following endpoints: /api/v1/websocketnotification/ and /api/v1/notification.
Added: Drilldown - tooltip
drilldowns now has tooltip that appears on hover, offering two options:
- Open in a New Tab: Open the
drilldownlink in a new browser tab. - Copy Link Address: Copy the
drilldownlink to the clipboard.
Feature can be turned on with cxbox.ui.drill-down-tooltip: newAndCopy.


Limitations:
drilldownsof to-view-with-fields-filtration type are currently not supported for the "Open in a New Tab" option.- tooltip is not yet supported for the Stats Block widget.
Added: FormPopup widget - forceActive
We have introduced the forceActive feature for FormPopup, allowing a backend request to be triggered before the modal window is opened. This ensures that the data within the popup is dynamically updated before being displayed, providing users with the most up-to-date information.
Fixed: List widget - improved inline create logic
We enhanced the behavior of inline creation in List widgets. When adding a new row, it now automatically opens in edit mode, allowing users to immediately input data without extra clicks.
Other Changes
CXBOX (Core Ui)
We have released a new CORE UI version (2.4.2).
Other Changes
CXBOX 4.0.0-M12 (Core)
Added: Dictionary class - LOV (deprecated) replacement.
We have replaced the LOV strongly typed Dictionary class for managing configurable dictionaries. New Dictionary class uses specific subclasses to represent different types of dictionaries. It also has unified handling of dictionaries across Entity and DTO layers, ensuring consistency in compile time. Also, we enabled storing constants within subclasses for streamlines use in business logic.
All details are provided in the updated Dictionary article (see "Dictionary" tabs in all examples).
Other Changes
Breaking changes have appeared! See cxbox changelog
CXBOX documentation
Added: Grouping Hierarchy
We have added a full description of Grouping Hierarchy.
Added: Export Excel
We have provided a detailed description of Export to Excel function.
Added: Page Limit
Default limit page (available for List and Grouping Hierarchy) is now described in the article.
Added: Checkbox - placeholder
See all the details about a Checkbox placeholder in our updated article.
Added: Customization of displayed columns
We have described the process of customization of displayed columns.