The release 8.9.38.0 introduces the following enhancements to the application framework:
- (Touch UI) The TreeView will not iterate a template node if the node defines a when expression that does not evaluate as true.
- (App Studio) Added the Pixel 8 Pro virtual device to the standard list.
- (Touch UI) Perfected the consistency of the menu refresh in the toolbar after the full screen transitions to the root of a virtual page.
- (Framework) The $app.urlArgs() method will exclude the "hash" from the URL parameter values.
- (Universal Input) The multi-line text inputs are styled to have the whitespace as pre-wrap with the "thin" system scrollbars. If such input has the scrollable content then the input caret is always set at the top of the text when it is focused.
- (OAuth) The callback URL with the authorization_code is constructed with the help of the UriBuilder class to handle all edge cases correctly.
- (RESTful API) The App Studio is not linked to the app running on the localhost when the OAuth 2.0 authorization request is being handled by the app.
- (Touch UI) Implemented the instant refresh of the app buttons in the app toolbar when the first virtual page is loaded.
- (Touch UI) Restored the delayed refreshing of the app toolbar buttons. The last release has caused the wrong timing for the app toolbar button refresh.
- (Touch UI) The advanced search does not raise an exception when setting focus on the field with the invalid input value.
- (Touch UI) The inputs with the static drop down button have an increased padding on the right to ensure that the button does not overlap the input boundaries when the input outline is visible.
- (Framework) Assigning an empty array y to the BusnessRules.ResultSetArray property will result in an empty collection returned by a RESTful API resource.
- (2FA) The ApplicationServices.AllowUserLoginResponse() method now accepts the password argument to allow a more flexible decision making when forcing the Multi Factor Authentication.
The App Studio allows browsing the data fields and categories in the views with this release.
The changes to the values in the Properties Window will be persisted in the next release. The data controller XML files will be modified instantly along with the corresponding entries to the .Log.xml and Syn.*.xml files. This will increase the developer productivity significantly since the code generation will not be required in most cases.
The legacy Project Designer requires the app to be generated for any project configuration changes to take effect. The new App Studio is driven by the database of configuration object properties with the explicit specification of when the code generation must take place. Most properties do not require code generation. The app studio “freezes” the UI of the live app to signify its “changed” state when developers make changes to the properties. A click on the “frozen” app will either instantly reload the app or perform the code generation with subsequent reloading.