User Interface

Labels
AJAX(112) App Studio(7) Apple(1) Application Builder(245) Application Factory(207) ASP.NET(95) ASP.NET 3.5(45) ASP.NET Code Generator(72) ASP.NET Membership(28) Azure(18) Barcode(2) Barcodes(3) BLOB(18) Business Rules(1) Business Rules/Logic(140) BYOD(13) Caching(2) Calendar(5) Charts(29) Cloud(14) Cloud On Time(2) Cloud On Time for Windows 7(2) Code Generator(54) Collaboration(11) command line(1) Conflict Detection(1) Content Management System(12) COT Tools for Excel(26) CRUD(1) Custom Actions(1) Data Aquarium Framework(122) Data Sheet(9) Data Sources(22) Database Lookups(50) Deployment(22) Designer(177) Device(1) DotNetNuke(12) EASE(20) Email(6) Features(101) Firebird(1) Form Builder(14) Globalization and Localization(6) How To(1) Hypermedia(2) Inline Editing(1) Installation(5) JavaScript(20) Kiosk(1) Low Code(3) Mac(1) Many-To-Many(4) Maps(6) Master/Detail(36) Microservices(4) Mobile(63) Mode Builder(3) Model Builder(3) MySQL(10) Native Apps(5) News(18) OAuth(9) OAuth Scopes(1) OAuth2(13) Offline(20) Offline Apps(4) Offline Sync(5) Oracle(11) PKCE(2) Postgre SQL(1) PostgreSQL(2) PWA(2) QR codes(2) Rapid Application Development(5) Reading Pane(2) Release Notes(183) Reports(48) REST(29) RESTful(29) RESTful Workshop(15) RFID tags(1) SaaS(7) Security(81) SharePoint(12) SPA(6) SQL Anywhere(3) SQL Server(26) SSO(1) Stored Procedure(4) Teamwork(15) Tips and Tricks(87) Tools for Excel(2) Touch UI(93) Transactions(5) Tutorials(183) Universal Windows Platform(3) User Interface(338) Video Tutorial(37) Web 2.0(100) Web App Generator(101) Web Application Generator(607) Web Form Builder(40) Web.Config(9) Workflow(28)
Archive
Blog
User Interface
Saturday, October 25, 2014PrintSubscribe
Bootstrap Integration; Touch UI Gets Adaptive Filtering, and “Type to Search”

Code On Time release 8.0.9.0 includes countless enhancements to the presentation features of Touch UI. The new UI offers navigation menu, context menus and action bars.

Context menu activated on a list item in an app with Touch UI.

Adaptive filtering is now integrated in context menu and grid headers. The filtering options are available in the context menu and in drop down menus of fields in responsive grids. New feature “Type to Search” activated quick find of the top visible view in Touch UI apps. Simply start typing and hit Enter to quickly find matching records. Press Escape key to clear Quick Find filter.

Adaptive filter menu in an app with Touch UI.

In a preparation for http://cloudontime.com we have integrated Bootstrap content framework. Bootstrap content pages are now available in both Desktop and Touch UI apps. The release also includes a new template for a dedicated login page based on Bootstrap. We intend to use Bootstrap in the upcoming built-in Content Management System and Workflow Register.

Bootstrap content framework is integrated in Touch UI.

Developers can create content pages directly from Project Explorer.

Adding content based on Bootstrap to a Touch UI app.

Select Add Content option to choose a content template. Select the content user control and edit the contents in Visual Studio.

A collection of standard templates based on Bootstrap is now available directly in Project Designer of Code On Time app generator.

The login process will not be relying on authentication JSON service of ASP.NET anymore. Instead we now integrate UserLogin and UserLogout methods directly in the partial ApplicationServices class to enable custom authentication implementation and ability to execute code exactly when the user clicks Login or Logout. It is now also possible to implement GetNavigateUrl method in ApplicationServices class. The purpose of the method is to allow forcing application users to visit a specific URL of your app. It makes it very easy implementing End User Agreement signing or attracting user’s attention to specific situations. The tutorials covering these and many other subjects will be available shortly featuring the new Touch UI.

Developers have more flexibility when creating projects. It is possible to create a project with data controllers only or have an empty project instead.

Developers have flexibility when choosing automatically generated objects for a new project.

List of features, enhancements, and bug fixes:

  • Integrated jQuery Mobile 1.4.4.
     
  • New dedicated login page based on Bootstrap
     
  • Desktop UI: Child Data Views hide placeholder frame when "Visible When" expression is specified and "Auto Hide" is set to "Container".
     
  • FireFox will not crash Desktop UI when user tries creating a new lookup item form modal lookup window.
     
  • Desktop UI now uses a 200ms delay when user hovers over the main menu items.
     
  • Implemented asynchronous email business rule processing. Physical email delivery is handled through a work item queue.
     
  • Application framework performs server-side resolution of field values for each data row in multiple selection operations. This allows sending multiple email notifications or performing other mass operations without the need to read the data values from the database using the primary key value. Virtual method BusinessRules.ResolveFieldValuesForMultipleSelection returns true by default to enable this behavior. Developers can return "false" if value resolution is not desired.
     
  • Duplicate command ignores “Default” values supplied by the server code.
     
  • Standard ~/touch/icons.html page is now integrated in the generated apps. See available icons at http://demo.codeontime.com/northwind/touch/icons.html.
     
  • Class ImportProcessor now uses lookup field name when inserting a looked up field value.
     
  • The template for dedicated Login page has been changed to support both Touch UI and Desktop UI. We recommend creating a brand new login page in your projects. Delete the old version, re-generate the app and integrate your login instructions into the new login user control based on Bootstrap.
     
  • It is now possible to create projects with small databases (less than 10 tables) with free edition without being required to select a subset of tables.
     
  • Touch UI apps created with Unlimited Edition will use a single compressed CSS file instead of multiple file references to speed up the load time.
     
  • App generator adds "legacyCasModel" to web.config to ensure faster report rendering.
     
  • Added clearing of SiteMap providers to ensure MySQL provider does not try to connect.
     
  • Touch UI performs smooth transitions between content pages. If a link points to a URL in  the app then Touch UI will make an AJAX request to the page and inspect it to verify that the page is compatible with “content” model. If that is the case then the app will inject the page content in the same physical page. External pages are loaded in an iframe. Use data-transition attribute on link to define specific transitions.
     
  • Script "_references.js" is now available in Azure Factory, Mobile Factory, Web App Factory, and Web Site Factory to enable JavaScript auto-completion.
     
  • Enhanced AuthenticationServices with custom login methods UserLogin and UserLogout.
     
  • Applications now integrate a placeholder image render to support Bootstrap templates. For example, try http://demo.codeontime.com/northwind/placeholder/red-500x300.png.
     
  • Fixed the bug with Custom login in Touch UI. Authentication service is configured to use __baseUrl if no default URL is provided.
     
  • Touch UI supports view-style-(list|grid|map|listonecolumn) tags on data views to allow selecting the default presentation style of collections of records.
     
  • Touch UI performs formatting of fields marked with Text Mode = Note.
     
  • Touch UI uses "app" namespace for various system events (start.app, awake.app, etc.). The tutorial will be available shortly explaining how to use these events in custom user controls.
     
  • Sidebar is “hidden” on the root "content" page unless data-sidebar=”true” in Touch UI apps.
     
  • SharePoint Factory deployment works with Visual Studio 2013.
     
  • Updated DNN Project to allow creating VS2013 solution files.
     
  • DNN Factory projects use SiteSqlServer connection string when figuring ObjectQualifier, UserId, UserEmail, and PortalID property values.
     
  • Touch UI custom controls are using closure for "start.app" event handlers.
     
  • Blob handlers are registered for binary fields only if the fields are not defined as "read-only". If a blob field of a table must be read-only then mark the data field in a view as "read-only" instead.
     
  • App generator now supports “Custom Data Provider”. Developers are expected to create their own controllers.
     
  • App generator allows specifying if automatically generated pages and controllers are required for the project.

Thursday, October 9, 2014PrintSubscribe
Touch UI Is Getting An Updated Look and Feel

The upcoming update 8.0.9.0 will introduce numerous enhancements to the Touch UI in the apps created with Code On Time.

Application navigation menu is now displayed on the toolbar if a space is available. Multi-level navigation options are displayed on a single panel to simplify selection.

TouchUI01

We have removed “Home” button and replaced it with standard “bars” commonly found in modern apps.  The button is now called “Menu”. The button is visible in the top left corner in the screen shot above.

Button “Menu” will display navigation menu options on a typical smartphone.

TouchUI02

Button “Menu” will display only the basic menu options such as language selector, settings, and login/logout options on devices with larger screen .

TouchUI03

The context menu button is now called “More”. It is displayed on right-most side of the toolbar when actions are available.  You can see the button in the screen shot above next to the search icon on the toolbar.

“More” button on the right side of the toolbar provides access to all actions that can be applied to the data view focused on the page. Actions with “Grid”,  “Action Column”, “Action Bar”, and “Form” scopes are rolled into a single set.  The slide-out panel is displayed on the right side of the screen when “More” button is pressed.

TouchUI09

Developers can include custom actions in both “Menu” and “More” panels.

Rows of a grid will also display “More” button right after the first column. The next screen shot displays “More” button next to Company Name field value.

TouchUI04

This button will open a context menu of the selected row. Actions with scopes “Grid” and “Action Column” are included the context menu.

TouchUI07

“More” button is also displayed in the data cards of a list. It is displayed either in the top right corner or in the bottom right corner of a data card.

TouchUI05

Summary master views and child views display action bar options. The child view with the list of Employees displays “New Employee”, “Edit”, “Delete”, “Actions”, and “Report” options. The buttons with text labels are automatically reduced to icons or hidden on narrow devices. The entire set of available actions is always accessible via “More” button displayed to the left of the view name.

TouchUI06

Application framework now seamlessly integrates Bootstrap, the popular framework that makes it easy to define  responsive content. Here is an example of a dedicated login page based on Bootstrap. Learn about the framework at http://getbootstrap.com.

TouchUI08

Wednesday, August 27, 2014PrintSubscribe
Page Headers in Touch UI

Page headers are displayed at the top of every page to inform the user of which view or control they are currently working with. The picture below displays the page header of “Orders”, visible below the page title.

The "Orders" page header is displayed below the title bar.

In pages that display data views, the header is hidden on two conditions:

1. When the current view is the entry point to the page.

The "Customers" page header is hidden due to the fact that this view is the entry point to the page.

2. When the text of the page header matches the title of the page displayed on the menu bar at the top of the screen. For example, the child view of Employees on the Employees page in a sample Northwind app will not have a page header.

The child view does not show page header as it has the same text as the page title.

Hiding the Page Header

The header can also be hidden on a per-page basis.

Start the Project Designer. In the Project Explorer window, double-click on the Customers page.

Customers page in the Project Explorer.

Specify the following:

Property Value
Custom Style Tall

Save the page, and press Browse on the toolbar to generate the app and open the page in your default browser. Select a customer, and tap See All next to the list of orders. Note that the “Orders” page header is not displayed.

Customers page does not display any page headers.

Page Headers in Custom User Controls

The page header text for user controls is derived from the data-activator tag. By default, this tag is set to the name of the user control.

User controls show the control name as page header by default.

The header text can be specified using the data-page-header tag. For example, let’s specify the page header text for a freshly created user control. Open the user control file in Visual Studio and make the following highlighted addition:

...
<!-- 
    This section provides a sample markup for Touch UI user interface. 
-->
<div id="TestUserControl" data-app-role="page" data-activator="Button|TestUserControl" data-page-header="Custom Header">
    <div data-role="content">
        <p>
            Markup of <i>TestUserControl</i> custom user control for Touch UI.
        </p>
    </div>
</div>
...

Save the file and refresh the web page. Note that the page header text has been changed.

Custom header text has been specified for the user control page header.

The page header can be hidden by specifying “false” for the data-page-header tag. Make the following change:

...
<!-- 
    This section provides a sample markup for Touch UI user interface. 
-->
<div id="TestUserControl" data-app-role="page" data-activator="Button|TestUserControl" data-page-header="false">
    <div data-role="content">
        <p>
            Markup of <i>TestUserControl</i> custom user control for Touch UI.
        </p>
    </div>
</div>
...

Save the file and refresh. The page header will not be present.

The page header has been hidden on this user control page.