Performance Improvements

Performance improvements for page reloads

Platform is now supporting more AJAX requests instead of full page reloads. This improves the performance on the client side (faster load and less data transferred) and on the server side (better scalability).

The following is the list of actions where Platform now does AJAX requests instead of full page reloads:

  • When navigating top level tabs on the application menu bar
  • When viewing a record (from a record list page to a record view page)
  • When navigating back to the record list view from a record view page
  • When viewing the next and previous record from a record view page
  • When editing a record (Clicking Edit on a record view page). Note: Save is a full page reload.

AJAX requests can be turned off or on for an application with the following JavaScript properties, which you set in a script in the custom sidebar. The script executes once, before the UI starts.

  • rb.newui.options.applicationPage.ajaxNavigation — When set to false, disables page navigation using AJAX requests. When set to true, enables page navigation using AJAX requests. This property applies to all of the above actions for an application.
  • rb.newui.options.objectViewPage.recordNavigationAjax — When set to false, disables page navigation between object records (previous and next) using AJAX requests. When set to true, enables page navigation between object records using AJAX requests.
  • rb.newui.options.tabMenuLink.ajaxNavigation — When set to false, disables navigation between top-level tabs using AJAX requests. When set to true, enables navigation between top-level tabs using AJAX requests.

The following example shows how to set these properties in a script. It enables navigation using AJAX requests except for navigation between records and navigation between top-level tabs.

<script id="executeBeforeUIStarts">
if(rbf_isNewUI()){
   rb.newui.options.applicationPage.ajaxNavigation = true;
   rb.newui.options.objectViewPage.recordNavigationAjax = false;
   rb.newui.options.tabMenuLink.ajaxNavigation =false;
}
</script>	
			

In addition, Platform includes a new event, rb.newui.util.customEvents.rbs_pageRender. This event occurs when the AJAX response has been received from the server and the content has been rendered in the content element. You can handle this event in a JavaScript event handler in a script component to customize the content on the page. See HTML and Script components for more information about script components.

As page loading using AJAX requests introduces a new navigation paradigm in Platform, it will break certain assumptions and practices of customizing a Platform page by adding script components that execute on the document.ready event. In order to be backward compatible and to allow you to absorb this change, page navigation using AJAX requests is disabled by default in the Platform release for existing customers. You should enable it in your test environments and identify any custom script issues when adopting the new page navigation approach. You will need to rectify all such issues immediately as page navigation using AJAX will be enabled by default in the 4.1 release.

For new customers (Platform 4.0 and later), page navigation using AJAX requests is enabled by default.

List in Selector pages is sized to fill the available space

As part of the enhanced suppport for mobile devices, a list on a Selector page is sized to fill the available space by default. Administrators can override this by specifying a height for the list. The height can be specified in the Properties drop-down for the list component in the page editor using the following units:
  • px — The height of the list in pixels
  • em — The height of the list, where the unit is the font size of the container (which is the parent element)
  • rem — The height of the list, where the unit is the font size of the root element (which is the html element; see Custom CSS for examples of rules that use the html element.)
  • % — The height of the list in relation to the available space on the page without having to scroll (the view port)
  • empty or -1 — The default (height of available space)
If no unit is specified, defaults to px.

Filtering improvements

Two new features improve filtering in applications:

  • Ability to filter list of related records — On record view pages that display a list of related records, users can now filter the list of related records. The screen below shows the new Filter button:

    Filter Related Records

  • New JavaScrip0t flags to control showing/hiding advanced filter features individually:
    • rb.newui.options.filters.showBooleanOperators — Controls whether the control for Boolean operators is shown
    • rb.newui.options.filters.showAdvancedFilterTypes — Controls whether the control for advanced filter types is shown

    The screen below highlights these components:

    Filter UI with Boolean and Advanced Features

    When both properties are false, the entire row is hidden to save vertical space:

    Filter UI No Boolean or Advanced

    Use these flags in custom sidebar code as shown below:

     <script id="executeBeforeUIStarts">
    	rb.newui.options.filters.showBooleanOperators = true;
    	rb.newui.options.filters.showAdvancedFilterTypes = false; 
    </script>
    					

    Note: This code must appear in the custom sidebar. Adding it to the custom header has no effect.

Fields with input masks enforce mask during entry on new and edit pages

Prior to this release, input masks on Text and Phone Number fields were applied after the user entered a value (when the field lost focus). Now, on new and edit pages, the input mask is enforced while typing a value into the field. For example, for the Phone Number field below, the format of the input mask appears in the field and the user is not allowed to enter incorrectly formatted data:

Input Mask

Additional OpenEdge SPA credentials

Platform Private Cloud now supports two additional credentials for OpenEdge SPA authentication:

  • Super Admin Credential — Used when data is accessed from batch jobs and delayed triggers
  • Guest User Credential — Used when data is accessed from portals

You configure these credentials when configuring OpenEdge authentication:

OpenEdge SPA

CustomClassFilter provides ability to use custom Java objects in formulas (Private Cloud)

In Platform Private Cloud, you can use custom Java objects in formulas. To do so, you must give Platform permission to use the class(es) by specifying the CustomClassFilter property in the Shared Properties. The value of this property should be a RegEx expression that matches the fully qualified name of the class(es) you want to allow. See Shared Properties for more information about shared properties.

Initial field focus on new/edit page load

On a desktop, when a new record page or edit page is loaded, the first field in the page gets focus. However, this is disabled in tablets and smartphones because focusing displays the keyboard and obstructs the screen view.