UFile (UAutoField for Document attributes) and UFileRenderer: new property preview-editable.
If true - creates inline editor for documents of type pdf, javascript, yaml, sql.
In the future, we plan to expand support for inline editing for HTML, Office, etc.
new component UBlobCodeMirror - wrapper for UCodeMirror what uses metadata to edit content for attribute of type Document
auth page: returnUrl URL parameter now can be without http(s)://host:port part
UPdfViewerExt: saveContent method now returns a Document attribute value. Setting of this value
should be done above in parents since in some cases passed input event actually patches another
value (selectedFileId in UFileMultiple carousel for example)
made USelect* border color red in case validation fail (as for other U* controls)
now the sidebar (main menu) saves the state of open folders also when closing the folder (in addition to opening it)
deleted rows now disappear immediately after deletion (no need to refresh) [LODC-4085]
force usage of native PDF viewer on Safari15 (jsPDF not work)
fixed UPdfViewerExt: replaced timeout with pagerendered event for correct canvas overlay render on each page regardless of time that is taken for render
UPdfViewerExt: work of allowDownload prop in case download button is placed in the secondary toolbar
UPdfViewerExt: fixed style for some PDF.js elements
moment-plugin: fixed an error in the browser console caused by attempting to inject a non-existent moment.js localization file.
Plugin now converts the current app locale to a moment.js-supported locale before injecting
UFileMultiple: do not pass input event from parent to the view component. There its own
implementation of input that edits selectedFileId not files. A regression was found in working of UFileCollection caused by it
SECURITY added prevention of the “Open Redirect” attack by checking the returnUrl URL parameter of the authorization page match server origin
in case UI opened using URL what contains document link in location.hash (#cmdType=...) hash now removed after form is opened
Authentication page now redirect to the main page using window.location.replace, so "Back" browsed button
pressed from adminUI now returns back (to blank page or previously visited page), instead of UB Authentication page
while redirecting to Authentication page on startup returnUrl parameter now passed without http(s)://host:port part,
so auth page will redirect back to the same origin. In case uiSettings.adminUI.endpoint is empty
or index.html - returnUrl not added at all
added logging (on info log level) filesystem BLOB storage data removing
new exported methods shred and shredAll for completely remove (including all historical revisions) BLOBs content
To be used as App.blobStores.shreadAll('my_entity, [1, 2, 3])`
error message, returned by server running in dev or test modes now shown on client in the same way,
as for production, except what error details shows additional info (including server-side call stack)
parser of server-side exceptions now can parse both double-escaped error message, produced by UB@5.24.26
and non-escaped error message as returns UB@5.24.27+
new methods App.blobStores.shred and App.blobStores.shredAll for completely remove
(including all historical revisions) BLOBs content, Example: App.blobStores.shreadAll('my_entity, [1, 2, 3])`
Administration-Maintained tools-Messages (ubs_message) shortcut now show all available messages for SysOps role
instead of only own messaged [UBDF-19440]