Data Aquarium Framework

Data Aquarium Framework
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.
Tuesday, March 14, 2017PrintSubscribe
Touch UI 2017 Hot Fixes 2

Code On Time release fixes another set of issues that were introduced in

  • Universal Input safely handles incorrect field names reported by business rules.
  • It is now possible to select filter fields of data views on the pages in Project Designer.
  • The font size of lookup links in Project Designer is now matched with the font size of text.
  • Fixed the status bar / wizard text color in Modern theme.
  • Help can now be disabled in Touch UI using help option in ~/touch-settings.json.
  • Double-page header is not created when modal lookup is selected on top of non-modal page.
  • NEW: Multiple form layouts can be downloaded in a single file from Developer Tools option in context menu.
  • Enhanced instructions on Data Model page of Project Wizard.
  • Fixed processing of initalMode option from touch-settings.json configuraiton file.
  • NEW: Northwind sample dates shifted to 2014-2016.
  • User Avatar title is assinged to the button instead of the icon. This will correctly refresh the title if the window became wider since the previous title of the button will be overriden with the user name.
  • Fixed filter processing in surveys to support original filter:{from:'', to:''} syntax.
  • Multi-line text fields are display in full height in edit mode.
  • Disabled reading of UserID for Active Directory.
  • Fix for "OAuthHandler" undefined compilation error with Unlimited and no membership.
  • Fix for "MimeMapping" is "Friendly" in .NET 4.0 Projects with SiteContent.
Friday, February 3, 2017PrintSubscribe
Custom Logo and Theme

Universal Business Apps (UBA) created with Code On Time are designed to run on desktop and mobile devices.  UBAs may be packaged as native applications and also work in the web browser in online and offline modes. Each app store dictates certain user interface requirements. The new theme framework of Touch UI 2017 makes it easy to fulfill them.

Native applications are distributed through app stores of the operating system verndors. These app stores have a common requirement not to place your logo directly in the user interface, making it visible at all times. The focus must be on application functionality rather than on company branding.

At the same time, it is important to keep the user aware of your brand. Touch UI makes this easy.

Consider the following logo of a fictitious company:


Let’s incorporate this logo into an application created with Code On Time or Cloud On Time.

Creating a Theme Accent

The default theme of the application is Light with Aquarium accent.


We will choose Social accent as a basis for the customization.


Create a copy of the file ~/touch/ and name it touch-accent.acme.json. Open the new file in your favorite text editor.


Change the “name” to “Acme”. Find and replace the color #3b5999 with #006940 everywhere in the file. Change header.icon.default from #eee to #ee3a43.  Also change the value of properties and to #ee3a43.

Both #006940 and #ee3a43 represent the codes of the main colors used in the log. You can use the standard CSS color names, such as “green” and “red”.

Save the file, switch back to your application, proceed to Themes section under Settings, and select the new theme “Acme”.


The application colors will change to match the branding of our fictitious company. It only took a few minutes to give your app a branded look-and-feel.




image    image

Changing Application Name

The name of the app needs to be changed as well. By default, the name will be derived from the page header text specified in the project settings. If the project’s settings for the header is blank, then the name will read as “Code on Time” or “Cloud On Time”.


There is configuration file in the root of your project, called ~/touch-settings.json. It controls the application behavior and appearance. Open the file and specify appName property to provide a name for the app.


Do not use the brand name there. Instead specify the name that reflects the purpose of the app. Let’s use Inventory Manager for this example. Save the file and refresh the page. The new app name will be visible in the top left corner of the toolbar.


Explicit Branding

The best place to display your branding is the Splash Screen and Account Manager.

The splash screen is displayed briefly when the user starts the app.


The picture on the left side of the screen and the application name can be replaced with alternative images.

Add a new configuration element splash to the file ~/touch-settings.json, as shown in the screenshot below.


Properties logo and background must reference the high-resolution images for the branding of your app. You will need to keep the balance between the quality of the images and their size.

The duration property controls the duration that the splash screen is displayed to users in milliseconds.

Restart the app and see the splash screen displayed.


Your branding is also displayed when the user is automatically logged into the app, or when account manager is activated.


Disabling Themes in Settings

If you do not wish the theme and accent to be changed by the application users, then add settings section to the ~/touch-settings.json with theme option disabled.


Additional settings options can be disabled as needed. The property settings.disabled will prevent the user from modifying any settings.


Further Customization

If your projects requirements call for a prominient display of branding, then you can add a logo to the application toolbar with the help of CSS. Create a file under ~/touch folder with the following rule:


This result of customization is shown next.