Release Notes

Blog
Release Notes
Monday, January 14, 2019PrintSubscribe
Faster Code Generation, Clear Filter Button, Bug Fixes

Release 8.7.8.0 introduces the following features, enhancements, and bug fixes:

  • (Touch UI) Ion “Clear” is displayed next to the "filter description" to allow one-click clearing of the filter.
    Clear button is displayed next to the filter in Touch UI apps created with Code On Time app builder.
  • (Touch UI) Lookup field tagged lookup-fetch-all will pull all values that match the user criteria. The default limit is 1000 items.
  • (Model Builder) List of models displays "last changed/sorted" button at the top of the list if five or more models are available. Clicking on the link will toggle the sort order of project models.
  • (Framework) Apps deployed to virtual folder correctly reference CSS resources from the root of the app.
  • (App Gen) XSLT transformations are performed in memory when output files already exist to eliminate writing to the file system. This speeds up production and compilation of projects.
  • (App Gen) Classic themes are not copied in projects based on Touch UI to speed up code generation.
  • (Framework) Default max upload size is set to 2,097,151 KB in apps created with Free Trial and Unlimited Edition.
  • (App Gen) Custom "code" business rules are automatically included in the class library of the projects when enabled.
  • (Project Designer) Duplicate fields are suppressed in "grid" views as well as in "form" views of controllers when developer drops duplicates on the corresponding configuration elements.
  • (Framework) Fixed VB compilation issues of Access Control List code.
  • (Framework) Renamed ApplicationServices.AuthorizationIsNotSupported to AuthorizationIsSupported and changed the codebase accordingly.
  • (Framework) Removed implicit dependency on membership support in the apps.
  • (Library Downloader) Uses GET requests to download the licensed content instead of POST.
  • (Framework) Auto-complete values in lookups are shown correctly when virtualization is enabled.
  • (Touch UI) Tag clear-all enables "clear" icon in the form. Clicking on the icon will "empty" all fields in the form. This feature is great in dashboards and custom search screens. The video tutorial is coming soon.
  • (Touch UI) Click on the "arrow right" next to the empty lookup fields will not open popup in webkit browsers and instead proceed directly to the lookup.
  • (ODP) Uses optimized method of data view location and avoids infinite cycling under certain conditions.
  • (Touch UI) Method $app.input.execute accepts values passed in options as array, single object with name/value properties, and also custom objects.
Labels: Release Notes
Saturday, December 29, 2018PrintSubscribe
Access Control List and “Local” Dates

Code On Time release 8.7.7.0 introduces the permission-based application configuration based on Access Control List. This feature is unique to applications created with Unlimited Edition. Next release of the app generator will introduce permission matrix  and permission builder to allow runtime configuration of live applications with ACL.

Release 8.7.7.0 also enabled local time zone presentation of date values stored in UTC format.

The following features and bug fixes are also introduces in this release:

  • (App Gen) Files with ProjectName\Services\ApplicationServices.* and ProjectName\Services\EnterpriseApplicationServices.* patterns are not deleted in projects with the framework in the class library when the project is re-generated.
  • (Touch UI) My Account option is displayed in *.aspx projects.
  • (Framework) ASPX projects turn-off combined/compressed scripts when the app running in debug mode from Visual Studio.
  • (Framework) Blob file name is stored in the database at the time of BLOB value submission if the matching "FileName" field is not automatically detected on the client.
  • (Framework) Blob handler validates read-access for blob fields by confirmation that the user can “see” the table row corresponding to the specified primary key. It also ensures that the particular BLOB field is also "visible" to the user and was not removed through virtualization of the controller.
  • (Framework) Prevented XPath injection attack errors reported by BURPSUITE Professional. Please note that testing methods would not have allowed to exploit the app framework.
  • (Framework) Absolute URIs are being used in script reference to appservices, __baseUrl, and __serviceUrl,
  • (Touch UI) Pages without content display a site map relative to the page.
  • (Project Designer) Dragging of field on a category will remove the corresponding data field from other categories of the same view.
  • (Touch UI) Bootstrap is correctly linked to pages in Premium edition.
  • (Touch UI)  Fixed. Tap on “more” button in child data view will select the row when multiple selection is enabled.
  • (Touch UI) Conditional Action Bar actions correctly respond to the changes in the values of the selected row with and without multiple selection.
  • (Client Library) Added caching of compiled functions to speed-up dynamic expressions.
  • (Touch UI) Only forms cache the current command row as "edit row".
  • (Touch UI) Switching of active tab performs full page resize.
  • (Client Framework) Added support for second-generation Grid/Cards/List.
  • (Framework) Fixed incorrect NullValue label in Classic UI.
  • (Model Builder) Single quotes in the name of the table will not cause exceptions displayed when models are rendered.
  • (Model Builder) Calculated fields created in Model Builder are not marked as "hidden" in the views of a data controller.
  • (Framework) Method AlterControllerWith handles parameters of methods wrapped in single quotes.
  • (Wizard) Tabs adjust their height when the window size is changed.
  • (Wizard) Models and Entities without Models take up the entire height of the page.
  • (Framework) Fixed "Key not found" in one-to-one entity processing causes by unmapped changed fields up the hierarchy of the relationships.
  • Fixed the "font" and "image" references in combined stylesheet that were not compatible with modern firewalls.
  • (Touch UI) Woff fonts are now returned with a static mime type "application/font-woff".
  • (Framework) Fixed incorrect parsing of "end-of-text" terminator in controller customization rules.
  • (App Gen) Option autoEventWireup is now set to "true" in ~/Config/CodeOnTime.CodeDom.xml.
  • (Designer) Assigned Data Text Field to Field lookup on Data Fields to fix issue where field is shown as empty
  • Removed allow nulls=false from Flat Rendering on Action Groups to ensure that user can save the action group if the field is hidden
  • (Touch UI) Event 'scrollablepageready.app' is triggered just before the transition to the active page. This allows the Grid 2.0 to render itself.
  • (Framework) Method ApplicationServices.ValidateToken will not fail when decrypted invalid token and will return "false" when this happens.
  • (Framework) Optimization o f "left join" to "inner join" is performed when access control rules are engaged.
  • (Framework) A dedicated connection is created for every Batch Edit or Delete to ensure that optional transactions do not include the entire set of selected records.
  • (Framework) The processing loop of custom actions can be interrupted by calling PreventDefault(true).
  • (Framework) Fixed transactional processing of 1-to-1 entities and many-to-many fields.
  • Exception during the loading faze of Azure publishing wizard.
  • (Touch UI) If the data view field has the parent form whose parent is not configured to have the same controller the parent form is chosen as the parent data view.
Tuesday, November 13, 2018PrintSubscribe
Release 8.7.6.0 Hot Fix 1

The following features and bug fixes are included in release 8.7.6.0:

  • It is now possible to manually connect  1-to-1 entities in the model builder even when the foreign keys are not defined in the database.
  • Legacy ASPX page implementation does not reveal static content in Touch UI.
  • Unlimited Edition Trial  now supports cultures other than en-US.
  • Method BusinessRules.PreventDefault now accepts optional "cancelSelectedValues" argument. If set to "true" then processing of multiple values is immediately interrupted. This may be useful to avoid iteration over each selected row when the business rule has performed processing of Arguments.SelectedValues array on the first selected value
  • (Classic UI) Bootstrap pages are correctly "sized" for "lg" screen with the expected container width of 970 pixels.
  • (Classic UI) Fixed "match not defined" in _registerSpecialAction method of DataView.
  • "Left join" to "inner join" optimization is now disabled when selecting data if “Quick Find” or “Is Null” filters are detected.
  • (Touch UI) If a new lookup item is created in a from then the parent form in "edit" mode will not lose its selected key value.
  • Fixed incorrect exception reporting from forms. Exceptions were not delivered to the client if there was no transaction on the server.
  • Distinct requests to get values will override the model-defined Order By statement when creating a Group By expression.
  • (Touch UI) Import process correctly starts after the mapping of fields has been completed.
  • Fixed the error with view-level sort expression being ignored.
  • Fixed compilation issue in Standard edition apps caused by new Business Rule Builder available in Site Content.

Model Builder has been enhanced in this release with additional support for 1-to-1 entities. Borrowed/inherited required columns are displayed as bold. The legend in the Spec displays both “W” and “B” letters signifying that the field is writeable and borrowed. If a developer is manually connecting primary key of one entity to another then the 1-to-1 relationship is established.

This is a simplified model of HumanResources.Employee2 table from Adventure Works sample database. The table inherits columns from Person.Person2 and Person.BusinessEntity.

1-to-1 entity in the Model Builder of Code On Time.

The form of Employee will display writable columns from all tables of the 1-to-1 relationship and persist them in a context of a transaction.

Entering a 1-to-1 entity in the app created with Code On Time app builder.

Please note that “rowguid” and “ModifiedDate” columns were also marked as hidden in this sample.