Release Notes

Release Notes
Friday, January 19, 2018PrintSubscribe
Dark Theme and Client/Server Configuration

Code On Time release introduces the new Theme Engine with support for custom themes. The new engine comes with new “Dark” theme. Now developers can choose from 70 color combinations provided by 2 themes and 35 accents.

We have also renamed Settings/ Web Server Configuration section Settings / Client & Server.

We have extended the client framework with the foundation for “inline editing” in grids/cards/list. Keep reading to find more.

Dark Theme

An example of  Dark theme with Construction accent.

An example of  Dark theme with Construction accent in app with Touch UI.

This is an app with Dark theme in Vantage accent.

This is an app with Dark theme in Vantage accent. The app was created with Code On Time app generator.

Here is a bootstrap-based page in an app with Dark theme and Aquarium accent. We have implemented new “software breakpoints” for bootstrap content to enable correct rendering of bootstrap content in modal pages and the upcoming split screens. The menu is not displayed on the toolbar if every page with icon is referenced in the Tab Bar at the bottom of the screen.

Here is a bootstrap-based page in an app with Dark theme and Aquarium accent.  The app is implemented with Touch UI.

Client & Server

Project configuration section in Settings previously called Web Server Configuration is now called Client & Server.


Client & Server section allows selecting the front end for your app. The default option is the Web Browser. This option is already familiar to developer using Code On Time. The app generator will start the default web browser of the operating system.


Two additional options Generic App and Custom App will start a native app either based on Chromium Embedded Framework (all versions of Windows with API compatible with Windows 7) or Universal Windows Platform (Windows 10 and above).


The native custom or generic app will install JavaScript, CSS, HTML, Fonts, and Images of your application on the device by downloading them from the server. IIS Express is the server that developers work with to test their applications.

Entire application framework is installed on the device in the native mode. Native app loads local pages in a platform-specific web view. Local pages will request data from the remote server (IIS Express in development mode). The main advantage of native apps is faster load time and ability to interact with the device.

We are launching a new product called Offline Sync Add-On that will enable native app to work in a completely disconnected or “offline” mode. It will perform preemptive downloading of data on the device. No changes to the server-side application will be requires. Any app created with Code On Time and deployed to a server will work in a completely offline mode with the help of the add-on.

The rollout of native apps will begin with Generic App for Windows 7 and Universal Windows Platform.

Custom apps for the same platform will become available in February of 2018. Offline Sync Add-On is expected to become available in the same time frame.

Generic and Custom apps for iOS will become available in March 2018, which will be followed by Android and MacOS.

Release Summary

The following features and enhancements are included in the release:

  • Theme engine has been extended to support multiple themes with accents. The new theme called Dark is introduced. It can be combined with any of the 35 accents.
  • Data fields with HyperlinkFormatString are displays as links in forms. TouchUI
  • SQL business rules use the connection string name specified in the data controller if any.
  • Bootstrap responsiveness is now based on "software" breakpoints calculated for each page in Touch UI.
  • Bootstrap responsiveness is fixed app-min-lg in Classic UI.
  • Method dataView.tagged() does not assign tag cache if there are no tags defined
  • Any view tagged as history-search-none will not retain values in filter, quick find, advanced search and will also forget selected view if different from the default.
  • The following configuration of ~touch-settings.json will disable the search history globally in the lookups.
      "history": {
        "lookup": {
          "search": false
  • Section on the project settings Web Server Configuration has been renamed to Client & Server. It allows configuring the front-end on the development that will be used to preview the app. Supported options “Browser”, “Generic”, and “Custom” apps.
  • Running an app created with Unlimited Edition in debug mode of Visual Studio will automatically link “debugging” versions of the JavaScript libraries.
  • Client library now includes uniqcode.js to allow better parsing of text with non-Latin characters.
  • Removed the code related to the legacy transaction management in the server-side framework. It will be replaced with the new code to support ODP (Offline Data Processor).
  • Menu strip is not displayed in the toolbar if all menu items have icons and the Tab Bar is visible. Touch UI
  • Menu strip is not displayed in the toolbar if all menu items have icons and the all icons are visible at the bottom of the sidebar. TouchUI
  • Touch devices with small form factor do not reduce density of summary views anymore.
  • Added "" event to add user context menu items in sidebar, menu bar, user dropdown. Touch UI
  • Fixed issue with Web App Factory projects not finding "Template.xslt" file.
  • Password character is now rendered as "black circle" character. Touch UI
  • Tooltip for Boolean values in grids displays values as Yes and No. Touch UI
  • Added CSS minification to theme stylesheet generator. Touch UI
  • Removed the limits on the width of app name in the toolbar when sidebar is minimized. Touch UI
  • View Selector on action bar has the same color as actions and groups. Touch UI
  • Switching between Charts and [ViewStyle+Aggregates] correctly resets the page height. Touch UI
  • Method $app.touch.resetPageHeight will reset the height of the current page. Touch UI
  • Fixed security issue with anonymous access to controller XML in apps with HTML implementation.

Inline Editing

The most frequently requested feature that we hear about from customers is the ability to edit data inline. The direct insertion of inputs in grid/list/cards view styles is complicated by the fact that these styles are displaying data inside of “A” tag. Our internal discussions have led to a conclusion that inline input will be integrated in the future rewrite of these view styles, further delaying availability.

Luckily our independent effort on Universal Input and Surveys allowed us to architect the method of inline editing in Touch UI apps compatible both with touch devices and device with keyboard/mouse input. The foundational components are already in place and will work with the current “link-based” implementation of grid/list/cards.

The complete integration of Inline Editing in the Touch UI in expected in a couple of weeks!!!

Monday, November 20, 2017PrintSubscribe
November Hotfixes

Release corrects the following problems:

  • Offline Data Processor is linked to projects created with the application framework in the class library in all product editions.
  • Controllers based on in-memory resultsets return a correct total  row count.

See our roadmap for the details on production availability of Offline  Data  Processor in apps created with  Code  On Time.

Labels: Release Notes
Thursday, November 16, 2017PrintSubscribe
Peformance Improvements and Notifications

Code On Time release brings a significant improvement in the data processing framework and the new feature Notifications in Touch UI.

Performance Improvements

This release will speed up data interactions of the application framework with your database. Application always counts the number of available rows whenever your access any data for the first time. It uses an SQL query to count the total number of records to perform data paging when needed. Subsequent retrieval of pages of data does not require record counting. Starting with this release, the initial counting has been eliminated when only a small number of records available for retrieval. 

The change in the implementation will provide performance gains of up to 25% or more. This applies both to Classic and Touch UI when you re-generate your project.

Forms with the large number of static lookups (Drop Down List, Radio Button List, List Box) will see a significant boost.


Action notifications provide and effective method of confirming user actions without stopping the flow of user interactions with the app. Fleeting messages are displayed at the bottom of the screen to inform the user about data manipulations. Custom notifications can also be displayed when needed.

Custom action notification displayed in th app with Touc UI created with Code On Time.

Other Features and Ehancements

Popups is the standard feature of Touch UI. We display options with choice for dropdown menus, context menus, etc. Previous implementations have blocked user interaction with app until the popup is dismissed with Esc key or when the user clicks/taps outside.

The new release significantly modifies this behavior for end users working with the mouse. The drop downs on menu bar will automatically open when user hovers over. The entire toolbar set of elements is fully responsive when any popups are open. If the “mouse” user clicks ouside of the boundaries of the popup, then the user interface will respond. Use Esc key or click on static elements of GUI to prevent interactions and close the popup instead.

Users of touch screen will see no change in the behavior of popups.

This modification makes Touch UI behave in a mouse-friendly way.

Touch UI is now even more "mouse-friendly" than ever.

The styling of Calendar view has been changed.

New peresentation of the Calendar view style.

Previously a popup with a card representing the selected event has opened when the event was clicked or tapped on. Now the first available action is executed instead.

Clicking on the event in the Calendar view style will execute the first available action.

The up/down/right arrows in the lookups are now appearing larger as we are switching to material icons.

Material icons are now used in the implementation of right/down/up arrows in lookups.

Other notable changes:

  • Calendar view style is correctly rendered for dataview fields in modal forms.
  • Method DataView.findAction will return null if an empty path is specified.
  • TimeSpan fields can be passed to SQL business rules.
  • Increased speed of $settings method when verifying touch-settings.json variables on the client.
  • Popup menus dropped from the menu bar will auto-select on hover faster than when a standard popup menu is opened for improved user experience on mouse-pointer devices.
  • We have removed "apple" trick for numeric inputs. The numeric input type implemented through native HTML input for numbers will be replaced with the custom keyboard in the next release.
  • Surveys allow unlimited text input in multi-line string fields. This fixed the problem with Batch Edit form and multi-line fields.
  • BatchEdit correctly clears selected key list (checkboxes) after successful execution.
  • BatchEdit displays system notification about the number of updates items.
  • Method $app.execute now returns a "deferred" object to allow "done", "then", and "fail"
  • Methods $app.alert and $app.confirm now return "deferred" object to allow "done", "then", "fail".
  • If $settings('') == 'sidebar' then content pages display with a sidebar.
  • Added integration with Offline Sync to provide "cloud" icon
  • Event "before[panel-type]" event provides "panel" property with "type" and "id". List of items is in "items" property of event.
  • Calendar View now supports the following tags:
    • calendar-day(-disabled)
    • calendar-week(-disabled)
    • calendar-month(-disabled)
    • calendar-year(-disabled)
    • calendar-agenda(-disabled)
  • Calendar now runs first action in Grid scope instead of showing card, handles double click, fixed offset color boxes, month events no longer grow.
  • Core.css now contains glyphicons for Classic UI.
  • Fixed issue (again) where ASPX projects navigate to "/login" instead of "/login.aspx".
  • Fixed issue with server authentication generating incorrect code.
  • Added URL Decryption in @Url_XXX SQL business rule parameters.
  • Internal static page references will open in fullscreen mode when accessed from a non-modal page.
  • Static page navigation uses promises when making remote calls.
  • Integrated initial daf-odp.js into the framework and setup.
  • Flag mobile.busy is set to the same value as dataView._busy argument to ensure global “gray glass pane” on top of the GUI.
  • Auto-open menu options on hover.
  • Deleting and retyping incorrect unmatched value does not clear the selection in the drop down list.
  • Enhanced auto-completion of text in Lookup/AutoComplete/DropDownList. BackSpace and Del buttons do not cause auto-completion.
  • Fixed the typo in the label reference. It is again possible to access Sort, Filter, and Group menu options in the context menu.
  • Advanced Search now works with the data controllers based on rowsets created with the business rules.
  • Fixed. Group BY is not supported with controllers using DataTable for resultset.
  • Synchronization of Distinct page requestes performed by advanced search form is disabled to improve performance.