The Excel component has gained a new mode to import data from Excel documents. You can either import data on a row basis (i.e. with columns RowNumber, A, B, ...) or, for documents where the number of columns is not known beforehand, on a cell basis (i.e. with columns RowNumber, ColumnNumber, CellValue).
Users will sometimes copy HTML from some external website and paste into the HTML editor. The editor will now strip id
, name
, and data
attributes from pasted HTML as these are used programmatically and can cause undesired behavior when moved from their original context.
We have done a number of minor improvements to the user experience for screen readers and for users who navigate using the keyboard.
This version introduces a new link type: JavaScript links. They are similar to Top links in that they can be used from any visible menu item and can not use any values from the menu item's SQL. Once you have declared a JavaScript link you can use the Api.followLink function to use the link.
Careless use of JavaScript links can introduce serious security vulnerabilities.
You can now hold down the control-key and then use drag & drop to reorder the controls on a parameter input page.
You can now hold down the control-key and then use drag & drop to reorder the tabs on a detailview page.
In addition to the old session variables IsMobile and IsSmallScreen we have introduced new session variables IsTablet, ScreenWidth and ScreenHeight. You can use these to optimize the layout for tablets, for example having a NewEdit with three columns in desktop mode and two columns in tablet mode.
A multipart message consists of several message bodies that each has its own content type, but the multipart wrapper also has a content type. Previously, it was always multipart\mixed
but you can now use the MultipartContentType column if the server you're trying to call insists on another content type.
The Zip Archive component can now be used as a menu item event. Previously, if you needed to run it in the background then you had to use it as a menu item job. Now you can choose whichever method is most suited in each case.