Tutorials

Blog
Tutorials
Friday, November 17, 2017PrintSubscribe
Notifications

Users love getting a confirmation for their actions but would not appreciate if the flow of data input is interrupted with blocking popups. Touch UI now has a built-in ability to automatically confirm Update, Insert, Delete data manipulations and Sort, Group, Search/Filter actions. In the screenshot below you can see an “Update” notification displayed at the bottom of the screen after product has been changed. Notification slide up from the bottom and stay for a short duration visible to the user without blocking interactions with the app. Notification automatically slides away or disappears if the user taps on it.

A notification confirming user action in app with Touch UI.

Notifications take the full display width on devices with small form factor.

A notification on a small factor device takes the entire width of the screen in the app created with Code On Time.

Modify ~/touch-settings.json to allow displaying notifications on the left side of the screen on large display devices.

{
  "ui": {
    "notify": {
      "location": "left"
    }
  }
}

Action notifications can be displayed on the left side of the screen in apps with Touch UI.

It is easy to setup your own notification on any action. For example, set Notification property of Actions / ag2 (Form) / a4 – Update, Save when Edit action in Products controller as follows:

Property Value
Notification Saved "{ProductName}" priced at {UnitPrice}.

This will result in the following notifications:

Custom notifications in Touch UI apps can reference field values.

The framework will automatically assign standard notifications to Insert, Update, and Delete commands in your data controllers if there is no value there.

Command Name Standard Notification
Insert Saved - {0}
Update Saved - {0}
Delete {$selected} deleted

Specifying {0} will include the value of the first visible data field in the view. Indexes are zero-based.

You can also {$selected} to specify the number of selected items or {$count} to specify the total number of items in the view.

If you want to disable a standard notification for a particular action, then enter $none in the Notification property of the action.

The fastest way to change the format of the standard notification is to change ^Saved^ and ^Deleted^ tokens using Visual Studio in the file Solution Name / Code On Time Items/ ClientLibrary.en-US.txt. Note that the culture in the name of the file may be different for your project. Save the changes in the file and re-generate the project. Use Ctrl+F5 to refresh the page to force the browser to load the update resources.

If the business rule forces a display of a message with Result.ShowMessage or Result.ShowViewMessage, then a corresponding notification will be displayed with medium duration.

Here is an example of SQL Business Rule handling a custom action.

set @Result_ShowMessage = 'Archived "' + @ProductName + '" product.'
set @Result_Continue = 1

A custom notification emitted in an SQL business rule implemented in the app with Touch UI.

Standard notifications are always displayed with short duration.

The standard notifications can be displayed with ui.notify.enabled property. The default duration of the notifications expressed in milliseconds is defined as follows:

{
  "ui": {
    "notify": {
      "enabled": true,
      "duration": {
        "short": 2500,
        "medium": 5000,
        "long": 10000
      }
    }
  }
}

JavaScript business rules can send notifications as follows:

$app.touch.notify("Hello World");
$app.touch.notify({ text: "Hello World", duration: "long" });

The duration can be expressed in milliseconds. If force option is specified with value true, then any visible notification will be dismissed and your own notification will get displayed instead.

Future releases of the framework will further enhance notifications with an ability to provide a custom action or callback function that can activated by a button displayed directly in the notification.

Friday, October 27, 2017PrintSubscribe
Video Tutorials

Get started quickly with the tutorials we have prepared for you. Take a single Tasks table and develop a full-blown task management application with file upload, many-to-many fields, master-detail pages, and more.

Watch: Building a ToDo App

Data model of Tasks.

Our product helps you turn your database schema into a modern application that works offline, online, and on-premises.

Modern responsive web app created from the Tasks model.

Here is a summary of what you will learn:

  • We will begin by creating a database and add a "Tasks" table. We will then create the app and explore the features. Finally, we will add an icon to the Tasks forms using the Project Designer.
  • To set up business rules, we will configure default values for the "Date" and "Created" fields. Then, we'll hide the "Created" field from the create form, and prevent the user from modifying the field for existing records. Finally, we will add a custom action that will mark tasks as completed. The "Completed" field will be hidden from the create form, and prevent editing in the edit form. Finally, we will create two views, "Active Tasks" and "All Tasks".
  • To add a lookup, we will add the "Categories" table and add a foreign key to "Tasks" table, and update the Tasks model with the new foreign key. Then, we will explore the features of lookups in apps created with Code On Time.
  • We will now add maps by creating a "Locations" table in the database and creating the model. A location lookup will be added to tasks. We will then add some locations, and assign these locations to tasks using the map.
  • In order to add master-detail relationships, we will create the "Attachments" table, create a model, and add a data view field on the Tasks form. We will then upload several files to a task.
  • Now we would like to restrict user access to data. The fields "Creator" and "Owner" will be added to the Tasks table. The corresponding model will be updated to include those fields. Users and Roles will be added to the app using ASP.NET Membership. The two fields will be marked as "User Name" lookups. Business rules will be added to set the current user as the creator and owner by default. Filters will be added to ensure that users can only see tasks created by or owned by them.
  • We will need to add some calculated fields. First, we will add the Expenses table and link it to tasks. We will add "Total Price" calculated field. Expenses data view field will be added on the Tasks form. We will add business rules to calculate the Total Price field, and display some aggregates on the Tasks form.
  • Then, we will need to add many-to-many fields. First, we will add "Tags" and "TaskTags" tables and models. Then, we will add a "Tags" field into the tasks form. This field will first be configured as a checkbox list. We will add several records in-line. Then, we will convert the field to a basket style drop down list. Finally, we will remove the now redundant Categories table.
  • Adding a status bar will help the user. First, we will add a static lookup field "Status" to the "Tasks" table. Then, we will change the business rules to automatically modify the "Status" value. Finally, we will enter a status bar definition for each value of the Status field to visually communicate the state of tasks to the users.
  • Customize forms to enhance the workflow of your users. Learn rapid development of responsive forms that work on any device with any screen size. Master the form design with field flow, tabs, multi-column categories, and custom layouts. Start by changing a flow of fields after a brief introduction of responsive forms. Group in categories, configure categories to display as tabs. Configure a modal popup. Try your hand with custom form layouts.
  • Organize navigation between the single page apps of your universal business application with Quick Launch icons and menu. Drag and drop pages in the navigation hierarchy, set a few icons to populate the Quick Launch bar, and move the menu from the toolbar to the sidebar.
  • Set up a cloud to deploy the app. Our app is ready for production. Learn how to set up Microsoft Azure Cloud for publishing from the app generator. This episode explains how to sign up for an account and provides step-by-step instruction for Azure Active Directory configuration.
  • Add a database to your cloud. An application deployed to Microsoft Azure is typically configured as Web App. The deployment infrastructure of Web App includes an Internet-facing App Service and Database Server. In this episode we will set up a database server and transfer development database schema to the cloud database.
  • Learn to deploy your app as an "app service" to service both web and mobile users. App Service is an Internet facing server that reads and writes data by making SQL queries to the database engine in the cloud. We will set up our app service in the "Standard" tier with SSL, multiple deployment slots, and on-demand performance with auto scaling.
  • Learn the staging-production pipeline to enhance your productivity. Deploy changed app to Staging slot for a live preview. Instantly swap Staging and Production versions of application directly from the app generator.
  • Learn to store binary data outside of the database. Large photos and documents can run up the database size quickly. Such objects known as BLOBs (Large Binary Objects) are frequently stored in the external file system or attached storage. We will show you how to set up external storage of attachments in the file system and Microsoft Azure.
Don't hesitate. Jump right in!
 
Thursday, October 26, 2017PrintSubscribe
DotNetNuke + Code On Time = RAD for Business

DotNetNuke Portal and Code On Time apps are great together!

Create an online presence for your business or organization with the help of DNN in minutes. Build powerful data-driven apps for your portal and fully integrate them in the DotNetNuke portal with Single Sign On (SSO). Present data directly in the portal pages or access them offline, online, and on-premises. Use the power of DotNetNuke tokens in the business logic and access control rules of your apps.

App created with Code On Time is integrated in the instance of DotNetNuke Portal.

Rapid Application Development (RAD) tools available in Code On Time will help you build the apps that can be integrated with a DNN portal even if your app is running on its own server.

The introductory video demonstrates an app integrated into a DotNetNuke instance running in Microsoft Azure cloud. The app data can be presented in the online portal, access directly, or execute in offline mode on a mobile device.

This is possible without writing a single line of code. Simply install Cloud On Time Connector for DNN extension in your portal, configure an OAuth endpoint page, and create a corresponding SaaS (Software-as-a-Service) registration record in your app.

The in-depth review of Rapid Application Development for DotNetNuke with Code on Time takes through the various aspects of integration enhanced with the video tutorials.

The tutorial covers the following subjects:

  • Configuring DNN Portal in Azure
  • Creating a Sample App with Code On Time
  • Configuring DNN for Open Authentication
  • Advanced Features (Roles and DotNetNuke tokens)
  • Rapid Application Development and Data Model Builder
  • Server-Side Technology of Code On Time apps
  • Application Programming Interfaces (APIs)
  • Data Access
  • Business Rules
  • Server Deployment
  • Client-Side Technology
  • User Inteface Design (Forms and Navigation)
  • Data Binding
  • Client Deployment

Apps created with Code On Time can also integrate with other content management systems such as SharePoint Online in Office 365.

App created with Code On Time is integrated in SharePoint Online.
Continue to Rich Text in Touch UI