UTable, UNavbar, UNavbarUserButton, DesktopSelector, USidebar, USidebarItem: added data-testid attributes to key UI elements to improve element lookup
uDialogs: added new dialogDelete({ msg, title, type }) function — shows a deletion confirmation dialog
with a danger "Delete" button and a "Cancel" button. Accepts an options object with msg (required),
title (default: 'deletionDialogConfirmCaption') and type (default: '') parameters.
Exposed as $dialogDelete on Vue prototype and exported from the module.
UDialog: added :value binding for customButtons items so that doCloseByButton correctly
resolves the clicked button value via e.currentTarget.value.
UTableEntity date filter templates (fromDate, toDate): added support for DateTime attribute type.
When column attribute dataType is DateTime, the date picker switches to datetime mode and the filter description
displays date with time accordingly.
uDialogs: dialogDeleteRecord now delegates dialog rendering to the new dialogDelete function
instead of dialogYesNo, showing a styled danger "Delete" button instead of a plain "Yes" button.
TabsContent: simplified component styles; active tab item now also receives the tabs-content-item-active class,
making it easier to target the active tab via CSS selectors (e.g. .tabs-content-item-active > ...)
UTableEntity: fixed duplicate rows appearing when a WebSocket insert notification arrives
for a record already present in the table (e.g. datasource is a LocalRepository based on form collection data).
existingRecord lookup is now performed once before both isUpdate/isInsert checks;
isUpdate is guarded by existingRecord !== null and isInsert is guarded by
existingRecord === null.
UTable: preMultiSelectionColumn is no longer tied to multiselect visibility — it now renders whenever preMultiSelectionColumnId is set, regardless of whether the checkbox column is shown
UTable: column resize now respects column.minWidth as the lower bound instead of always falling back to the global columnDefaultMinWidth (150px)
UButton: fix styles for inverse-with-border button appearance
USelectEntity: fixed "More" button in dropdown closing the list instead of loading additional items. Root cause: click-outside handler captured a stale undefined ref for the options container (due to v-if), and showMore() called toggleDropdown() which toggled the dropdown closed
clickOutsideDropdown mixin: resolve $refs.options dynamically on each click check instead of capturing it once at mount time
addClickOutsideListener: accept a getter function (in addition to array) for dynamic ref resolution
UTableEntity: fixed multiple success notifications on multi-delete when several tabs
with the same entity are open. Moved alert from entity:changed event handler (fired in
every subscribed tab) into the store action (fired only in the initiator)
UTable: prevent calling column.formatTooltip for table header tooltips to avoid unnecessary JSON.parse exceptions on plain-text column labels (e.g. "Document Image")
el-notification: enable word breaking for notification content
u-auto-field: fixed issue where label-position="right" prop was propagated to UCheckbox, triggering unnecessary validation error. Removed validation that didn't affect functionality
SECURITY improve security by specifying origin while passing a openID auth code to the application window
SECURITY added new OpenID provider registration option passTokensToClient. Default value is false for security reason.
Set is to true in case client side uses Session.getOidcAuth to request the external resources
org_employee form (Assignments tab): added a separate Position (staffUnitID.fullName) field
for the main employment and a corresponding column in the additional positions table
UB.xhr.interceptors — public access to the transport interceptors array,
allowing OTel and other instrumentation to add request/response hooks without importing internal modules
fixed an issue where multiple unbuffered requests were received but the session had expired, and only one request was processed after re-authentication