Touch UI

Blog
Touch UI
Wednesday, February 8, 2017PrintSubscribe
Customizing the Menu in Touch UI

The menu offers the user access to the pages in your application. The default location of the menu is in the toolbar at the top of the screen. Top level pages will be displayed as tabs in the toolbar. Nested pages can be accessed by pressing on the parent tab. Page icons will be displayed in the dropdown menu. The Quick Launch area of the sidebar will display up to five page icons, if any have been defined. The user can view a full list of pages by pressing the “Apps” icon (three by three grid of dots).

The site menu displayed in the application toolbar at the top of the screen.

If the screen width is insufficient to display the full menu, then the remaining options will be grouped under a “More” option.

If the screen is too narrow to display all menu options, a "More" option will be displayed.

If it is not possible to fit three or more pages, then the menu will be hidden.

The menu is hidden on very small devices.

The user can still access the full menu by pressing the hamburger icon in the top left corner. If any page icons are defined, then a grid of these icons will be displayed in the menu panel.

The menu panel will display a grid of page icons.

The full site map will be displayed if no page icons are defined, or when the user presses “More” in the menu panel.

The full site menu is visible in the menu panel.

Moving the Menu to the Sidebar

Depending on project requirements, it may be desirable to move the menu from the toolbar to the sidebar. One way of changing the location is to change “Menu Location” property under the Touch UI section of the Features page in the Project Wizard.

The other way to change the menu location is to set the ui.menu.location property in the “~/WebSite/touch-settings.json” file to “sidebar”. We will use this technique.

Start the app generator. Press on the project name, and press “Open” to reveal the project folder in File Explorer. Navigate to the WebSite folder, and double-click the “touch-settings.json” file to open in your default text editor. It is recommended to use Visual Studio or other editor that supports syntax highlighting and validation.

Opening the "touch-settings.json" file under the WebSite folder of the project directory.

Replace or merge the contents of the file with the following:

{
  "ui": {
    "menu": {
      "location": "sidebar",
      "apps": {
        "tiles": null,
        "location": null
      }
    }
  }
}

The ui.menu.location property has been set to “sidebar”.

Switch back to the browser, and refresh the app. The menu will now be rendered in the sidebar.

The Touch UI menu rendered in the sidebar.

Changing the Location of the “Apps” Icon

The “Apps” icon offers access to the full site menu. By default, it is displayed in the Quick Launch area of the sidebar.

The "Apps" icon is displayed in the Quick Launch area of the sidebar.

The “Apps” icon location can be changed using the ui.menu.apps.location property. The default value, shown in the picture above, is “sidebar”. The icon can also be placed in the toolbar. Make the following change to your touch-settings.json file:

{
  "ui": {
    "menu": {
      "location": "sidebar",
      "apps": {
        "tiles": null,
        "location": "toolbar"
      }
    }
  }
}

Save the file, and refresh the web page. The result of the change can be seen below. Notice that an additional page icon is now displayed in the Quick Launch area.

The "Apps" icon is rendered in the toolbar.

Disabling the “Apps” grid

Activating the “Apps” icon, or opening the menu panel on a small device, will show a grid of page icons. The rest of the pages can be accessed by pressing the “More” button.

The "Apps" icon will display an "Apps" grid if any page icons are available.

The “Apps” grid can be disabled by setting the ui.menu.apps.tiles property to “false”. Make the corresponding change to your touch-settings.json file:

{
  "ui": {
    "menu": {
      "location": "sidebar",
      "apps": {
        "tiles": false,
        "location": "toolbar"
      }
    }
  }
}

Save the file, and refresh the app. Press the “Apps” icon in the sidebar or toolbar. The full site menu will be shown, bypassing the “Apps” grid.

Disabling tiles will bypass the "Apps" grid.

Sunday, February 5, 2017PrintSubscribe
View Icons

Icons can be assigned to views in order to better communicate the purpose of a particular form at a glance.

Customers edit form with a custom icon.

By default, view headers will display the view label, description, and the first field value. The background will be a solid color.

Standard customers form with no icon.

Scrolling down will move the header text to the toolbar.

Scrolling down in a modal will move the header text to the toolbar.

Let’s assign an icon to the views of Customers controller in the Northwind sample app.

Switch back to the Project Designer. In the Project Explorer, switch to the Controllers tab. Double-click on “Customers / Views / editForm1”.

Editing the "editForm1" view of Customers controller.

Icons can be defined by specifying the icon library and the icon name. Spaces are replaced with dashes.

Assign an icon to the view in the Tags property, and press OK to save.

Property Value
Tags material-icon-group

Double-click on “Customers / Views / createForm1”. Assign an icon to this view as well.

Property Value
Tags material-icon-group-add

On the toolbar, press Browse. Navigate to the Customers page, and select a customer. The header will display the new icon on the left side. The background will show a large greyed out version of the same icon.

The Customers editForm1 view with a custom icon

Scrolling down will reveal a smaller version of the icon.

The icon is also displayed in the modal toolbar.

Close the form, and press the New icon. The create form will display the assigned icon as well. The picture below shows the create form on a smaller device or window.

The view header shows the custom icon on smaller screens.

Sunday, February 5, 2017PrintSubscribe
DotNetNuke Factory and DotNetNuke SaaS

DotNetNuke (DNN) is a popular content management system build with Microsoft ASP.NET technology with the loyal following. Developers love the ease of customization and native support for Microsoft Development Tools. Nevertheless it is difficult to build complex user interface when large number of data entry screens is required. Code On Time application generator provides DotNetNuke Factory project designed to produce native DNN module with complex data entry screens created directly from your database.

Applications for DNN created with Code On Time have a Classical (Desktop) user interface and cannot run outside of the portal on their own. Over the past years we have developed a new powerful user interface called Touch UI. This user interface relies on the pages with special structure to enable execution on both mobile and desktop devices. It is impossible to plug such pages into the DNN portal without disrupting its core functionality.

Our product used to offer SharePoint Factory project designed to create native web parts for this portal in the fashion very similar to DotNetNuke Factory. In fact, some core capabilities were shared between the two. Microsoft has greatly changed SharePoint portal starting with SharePoint 2013. It became impossible to incorporate custom web parts directly in the pages of this portal. Instead, developers have to create dedicated applications, which run in a completely isolated environment frequently on a different physical server. The output of the custom code is displayed in an <iframe> element allocated on the SharePoint page for the purpose of integration. The custom code must use OAuth protocol for authentication if access to the host site data such as current user is required.

Starting with release 8.5.12.0 we are retiring SharePoint Factory project and make it possible to integrate any Web Site Factory or Web App Factory project in Software-as-a-Service mode into SharePoint Online (http://sharepoint.com), SharePoint 2013, and above. A free web part from Microsoft Office Store (https://store.office.com/en-us/app.aspx?assetid=WA104380704) makes it easy to integrate Code On Time apps in SharePoint sites (http://codeontime.com/learn/sharepoint/add-in/configuration).

We will bring Touch UI and SaaS integration technology to DotNetNuke users in release 8.5.13.0.

Developers will create either Web Site Factory or Web App Factory project on top of their database. The database will have its own security system to maintain users and roles. The following will be performed when application is ready for integration:

    1. Application will be deployed to either dedicated server or on the machine where DNN portal is running.

    2. Developer will generate a secret key stored in the application database.

    3. Developer will install a Data Connector for Cloud On Time module into the portal and have it configured on portal page.
        1. The module will be placed on the page of the portal.

        2. The secret key generated in step #2 will be specified in the module properties.

        3. URL of the application page or its root address must be specified.

        4. Optional DNN tokens can be listed in the Data Connector configuration.

      1. Data Connector will communicate with the the application instance when the page is rendered by the portal on the server:
          1. Connector will make a server-to-server request to the application passing the encrypted secret key, name of the user, roles, and  optional values of DNN tokens.

          2. Application will confirm the secret key, process tokens, and return login token to the Data Connector.

          3. If the portal user does not exist in the application database, then the user with the same name and random password is created.

          4. User roles in the application database are synchronized with the portal roles.

          5. Data Connector will render an <iframe> element in the output of the page with the login token in the URL pointing to application page.

        1. The page with the <iframe> will be rendered by the web browser on the client device.

        2. Application will perform single-sign-on for the current user with the help of the login token in the URL of the <iframe>.

          Universal Business Applications created with Code On Time and Cloud On Time will work both on their own and also in SaaS mode within DotNetNuke, Microsoft SharePoint Online, and Google G-Suite. If a hosted UBA is accessed directly, then the hosting environment will perform user authentication, which makes possible using apps on mobile devices outside of the host environment.

          Code On Time will continue to ship with DotNetNuke Factory. If developers have existing projects of this type, then they may choose to continue creating native DNN Factory apps with Classical user interface.

          Continue to Page Icons