Release notes Universal GUI 2025.3.12
November 24, 2025Full release (from release candidate 2025.3.12) Additional fixes this release: When a Context procedure disables a detail tab when the detail tab page was already open, it was still possible to interact with the detail tab page. This has been improved in the following ways: Styling: Higher opacity for the detail tab page Cursor indicates that clicking is not allowed in the detail tab page Elements within the detail tab do not have any hover styling Clicking: It is not possible to click on any of the elements in the detail tab page Tabbing: It is not possible to use Tab to navigate into the detail tab page Shortcuts: It is not possible to use (Task) shortcuts to trigger any actions within the detail tab page Process flows: Process flow actions that try to interact with the detail tab page, e.g. "Add Row", will be unsuccessful This means that, if relevant, the red arrow of the process steps is followed. Editable Components The components within the detail tab page will never be in edit mode, even if they are set to "auto-edit" in "Subjects". We have fixed scrolling to the start or end of the Code editor and SQL editor resulting in scrolling stopping. If there is more content in the form scrollable, the form scrollbar will now take over. Keyboard shortcut to go to a row new You can now use the keyboard shortcut CTRL+G to open the pop-up Go to Row. In this pop-up, you can enter a row number to quickly navigate to that row in a Grid, Tree or Card list screen component. Enter a row number to quickly navigate to that row Hello everyone,In this release we have significantly expanded the column header filtering, allowing you filter more data types. We have added some nice-to-have features such as color pickers in the HTML editor and a keyboard shortcut to quickly navigate to a specific row. Additionally, we have improved the performance of pivot tables and made several minor fixes. Note that this release contains a few breaking changes, so make sure to check these out before upgrading. DemoAs always, we have made a demo for you: try it here. Before trying it out, press 'Clear Cache' on the login screen.Read the Universal GUI user interface guide to get familiar with the GUI. Universal GUI version 2025.3.12For more information about setting up the Universal GUI, see the Universal GUI setup guide.Note:Use a modern browser to access the Universal GUI, for example, a recent version of Chrome, Firefox, Edge, or Safari mobile. Deploy the Universal GUI on the same server as Indicium or an allowed origin in appsettings.json. Run all hotfixes on IAM and the Software Factory that you plan to use for the Universal GUI. Use the latest version of Indicium.Download the Universal GUI version 2025.3.12 here ContentsDemo Universal GUI version 2025.3.12 Breaking Dropped support for legacy browsers and devices Grid conditional layouts without conditions will now be applied Changed data-testids for Excel-style filters Changes to 'GROUP HEADER LABEL' and 'LABEL' controls New and changed Added data types to column header filtering Color pickers for HTML editor Added functionality for custom components Action buttons Expand all/Collapse now work for grouped Grids too Version check performed before login Improvements for pivot tables Updated order of buttons for Schedulers Minor fixes and tasks What we will be working on next sprint Questions or suggestions? BreakingDropped support for legacy browsers and devicesbreakingAs part of our modernization work, we have removed a legacy code compatibility transformation to improve performance, maintainability, and future compatibility.In line with our lifecycle policy, we are dropping support for iOS versions below 16.4. This means the following devices are no longer supported:First-generation iPhone SE iPhone 6s and 6s Plus iPhone 7 and 7 Plus Seventh-generation iPod TouchUsers on these devices may experience degraded functionality or may no longer be able to access the application. Additionally, older browsers are now more likely to crash. We strongly recommend using a recent browser on a supported device to ensure continued access and optimal performance.Grid conditional layouts without conditions will now be appliedbreakingJust like the Windows GUI, Universal will now always apply grid conditional layouts that don't have any conditions.Changed data-testids for Excel-style filtersbreakingOnly relevant if you're using custom CSS or automated testing based on test-ids on column headers of the grid.As a result of improvements made to grid header filtering, we have updated the data-testid attributes for the Excel-style filter elements. This should only impact automated tests that actively interact with Excel-style filter functionality. Check your automated tests and update them if necessary.All grid header filters now adhere to the following naming convention:Component names - <type>-excel-filter (for example, numeric-excel-filter, domain-excel-filter) List containing checkboxes - <component name>__<field>__list ListItemButton (select all) - <component name>__<field>__list-item-button Select all checkbox - <component name>__<field>__list-item-select-all-checkbox ListItem - <component name>__<field>__list-item__<value> ListItemButton (individual items) - <component name>__<field>__list-item-button__<value> Individual checkbox - <component name>__<field>__list-item-checkbox__<value> Checkbox text - <component name>__<field>__list-item-name__<value> Autocomplete - form-field__<field>__controlThe following data-testids have been changed:Autocomplete Renamed label primitive-value-autocomplete-editor to form-field_<field>__primitive-control__<value> Renamed editor primitive-value-autocomplete-editor to form-field_<field>__primitive-control Boolean Basename excel-filter changed to boolean-excel-filter Added __<value> to individual items. Renamed individual checkbox excel-filter__<field>__list-item-option__<value> to boolean-excel-filter__<field>__list-item-checkbox__<value> Single line Added __<value> to individual items. Domain Basename change excel-filter to domain-excel-filter Added __<value> to individual items. Renamed thumbnail image excel-filter__<field>__<filename>__list-item-image to domain-excel-filter__<field>__<filename>__list-item-image Changes to 'GROUP HEADER LABEL' and 'LABEL' controlsbreakingIn the Windows GUI, when using GROUP HEADER LABEL or LABEL domain controls, both the column name and value are shown. We have included this functionality in the Universal UI as well to ensure consistency across platforms. Additionally, conditional layout is now correctly applied to both LABEL and GROUP HEADER LABEL controls. Before, labels only displayed values After, labels now display column and valueDue to these changes made to the GROUP HEADER LABEL and LABEL controls, some breaking changes have been introduced.Label controls no longer apply values set in Field height in positions. To achieve the same effect as a multiline label control, use a read-only multiline control with Field height in positions. Label controls now display both the column name and value by default. This may affect existing screens that use these controls, for example, if the layout is designed to accommodate only the value. To revert to the previous behavior of only showing the value, set Label width (px) to '0'. New and changedAdded data types to column header filteringCommunity idea newWe introduced the ability to filter columns using the column header in the Universal GUI 2025.2.13 release. This functionality has been extended to include numeric data types (for example, Integer, Decimal, Float). The list of items is limited to 25 by default to optimize performance and usability. When the number of unique values exceeds 25, the list of checked items is replaced with a dropdown list with a search function. You can change these settings by using the extended property LookupGridHeaderFilterOptionsLimit.Filter numeric values in the column header by selecting from a list of items If the number of values exceeds 25, use the search function to find specific values Color pickers for HTML editornewYou can now select colors for text and background in the HTML editor using a color picker. Use the color picker to select text and background colors in the HTML editor Added functionality for custom componentsnewYou can use custom components to extend the functionality of Thinkwise applications. To further assist in developing custom components, you can now start a process flow from your custom component by posting a message to the parent (Universal) window.Use the following code to do this:window.parent.postMessage({ type: 'startProcessFlow', processFlowId, dataParams }, '*');In this code:processFlowId is the ID of the process flow you want to start. dataParams is a JavaScript object containing the process flow variables, for example, { 'variable_1': 'value of variable 1' }.In addition, we have added the IndiciumRootUrl property to the context message passed to custom components. This property provides the root URL of the Indicium server, which can be useful for constructing paths to resources or services hosted on the Indicium server.For more information, see Custom component. Action buttons Expand all/Collapse now work for grouped Grids toochangeWhen you have a Tree component with an action bar, the options Expand all and Collapse all are available from the overflow menu. These options are now also available for the Grid component.For a Grid, grouping in a grid must be enabled for these options to be available. If the Grid component does not have any groups, these options are not available. If a Tree and Grid component are present in a screen type, using these options expands or collapses all rows in both components simultaneously. Version check performed before loginchangeThe Universal UI checks for a new version on the web server each time it is accessed. Previously, the user would immediately be redirected to the OpenID or Indicium login screen without waiting for this version check to complete. Now, the Universal UI waits for the version check to complete before redirecting the user to the login screen. This ensures that the latest version of the Universal UI is applied before login, preventing potential issues caused by version mismatches. The text 'Checking for updates...' is now displayed while the version check is being performed. Improvements for pivot tableschangePreviously, some query calls were always executed in pivot tables, even when they were not required. We have optimized the performance of pivot tables by removing several of these unnecessary query calls.You can further improve the performance of your application by configuring the general settings of subjects that you do not use in a pivot table. To configure these settings, go to the menu User Interface > Subjects > tab Settings > tab General.For each subject:Set Max no. of records to '1'. Set Page size to '0' to disable paging. Select Start with empty filter. Updated order of buttons for SchedulerschangePreviously, when you changed a selected date range in a Scheduler, the previous and next buttons would move in the interface if the new date occupied more space. The order of the 'Today' button, the previous and next buttons, and the date has been changed to prevent this behavior. This ensures consistency in the user interface when changing date ranges.Previously, the previous and next buttons were positioned before the dateNow, the previous and next buttons are positioned after the date Minor fixes and tasksFixes for Model insights: When Model insights was active and you opened a Filter pop-up, the dropdown for any Operator field did not open. This has been fixed. When the user selected an HTML field with Model insights active, the information for that field was not displayed. This has been fixed. Fixes for modal documents: When a modal document was opened, the underlying document would show unwanted behavior by trying to display the same content as the modal document. This has been fixed. Fixed an issue where closing a modal document that was opened via a process flow would unexpectedly activate the tiles menu, instead of keeping the underlying document open. Fixes for the Scheduler: When deselecting Labels for lowest timescale in a Scheduler view, the events would incorrectly snap to time cells. For example, events occurring within a 15-minute interval would snap to the nearest hour if the lowest timescale was set to 15 minutes. This has been fixed. In the Scheduler, when using the Between / Not between conditions with the Value type set to Constant and the Until value type set to Column, the condition did not function as expected. This has been fixed. In some cases, grid header filtering would show an outdated list of items after the global search or filters on other columns were changed. This has been fixed. DB2 - Fixed an issue where messages sent from control procedures using SET V_MESSAGE_TEXT would only display one character instead of the full message. Previously, opening a screen or menu that contained many tasks or reports triggered numerous network requests, resulting in slow loading times. This was especially noticeable when the Software Factory was used as a metasource. Lazy loading has now been implemented to improve performance. The task or report model is only loaded when you open the task or report. In some cases, all prefilters would disappear after updating a user-defined prefilter. This has been fixed. Previously, if a lookup reference (for example, an untranslated lookup column) did not have a display column, a 'bad request' error would occur in the FormList when attempting to save data. This has been fixed. Previously, the date picker icon was clickable for read-only fields with a Date or Time control. This has been fixed. When you imported data from an Excel file (.xls, .xlsx) and no column header row was found by Indicium, incorrect values were shown in the fields Row which contains column headers and First row from where import begins in the interface. This has been fixed. Fixed an issue where the settings Show grand total for columns and Show total for columns were incorrectly translated in the user interface. In some cases, conditional layout was applied incorrectly: The Font color was not applied in to Read only fields in edit mode. The grid did not apply conditional layout when there were no defined conditions. In some cases, tasks on a custom action bar would not become visible after selecting a record. This issue has been resolved. In some cases, pivot grids would indefinitely show a loading indicator when a cube had no cube views defined. If there are no cube views, users can now create a cube view if the Enable cube panel is selected. Auto refresh for Modal documents did not work as expected. This issue has been resolved. In some cases Export was not visible in the action bar or toolbar for pivot tables. This has been fixed. What we will be working on next sprintThe next sprint we will be working on:Excel-style filtering for date and time columns. Support for date-interval filtering in filter pop-ups. Additional filter options for lookup-type columns, such as contains and starts/ends with. Support for filtering on empty values in both quick filters and the advanced filter pop-up. Numerical range filters following the Excel-style model. A new process action to open the filter pop-up directly (planned for 2026.1). Full support in the Software Factory for all Universal GUI filter functionality, including modeler and code-editor integration (planned for 2026.1). Improved grouping options: tasks, reports, prefilters, and cube views available as group dropdown buttons in the action bar when submenu mode is enabled (planned for 2026.1). Grid group summaries to better visualize aggregated data within grouped grids. Questions or suggestions?Questions or suggestions about the release notes? Let us know in the Thinkwise Community!
