Filtering Features and Notification for Pending Changes

 

Filtering features

This release includes two new filtering features:

  • The ability to hide fields from filter options — When filtering the view on a record list page, users can select fields on which to filter from a drop-down list. You can now set an advanced property, Allow filtering by this field in List Views, on a field. When this property is unchecked, the field will not appear in the drop-down list of fields.

    Advanced Field Properties

  • By default, filter options for a record list include advanced filter options, which include the ability to choose between Standard, Expression, and Formula filters, as well as to choose whether All (AND) or Any (OR) of the filter conditions are met. You can now hide these advanced filter options for record list components in the page editor — A new property on this component, Hide Advanced Filters, controls whether these options appear on the page:

    Hide Advanced Filters

    When this property is checked, the advanced filter options highlighted below will not appear on the page:

    Advanced Filter Options

Notification when user navigates from page with pending changes

If a user modifies a record on a new, edit, or status change page and attempts to leave the page by navigating away or closing it before saving the changes, a Confirm Navigation dialog will appear. This dialog gives the user a chance to return to the page and save their changes.

Confirm Navigation Dialog

This feature is not available on quick create pages.

You can control whether users are notified using the following:

  • The property rb.newui.options.notify.onLeavingDirtyPage — This property has the value true by default. To disable the notifications, set its value to false. See onLeavingDirtyPage for details.
  • The PageContext class method addDirtyPageNotifier() — Enables the notifications
  • The PageContext class method removeDirtyPageNotifier() — Disables the notifications

A new PageContext method, isPageDirty(), returns true if the page has an object record form with modifications.

See the newly documented JavaScript object PageContext and client-side method rbf_getPageContext() for more information.

Note: This feature uses a built-in browser feature that is not supported on Safari for the iPad.

rbf_getPicklistCode() and rbf_getPicklistCodes() client-side APIs now work with other field types

These APIs now work with the following field types:

  • rbf_getPicklistCode(): Picklist, Picklist (Multi-Select), Group of Checkboxes, Radio Buttons
  • rbf_getPicklistCodes(): Picklist, Picklist (Multi-Select), Group of Checkboxes

New parameter to rbf_showOrHideField()

The client-side function rbf_showOrHideField() has a new, optional, Boolean parameter named doNotHideResponsiveColumn. This parameter lets you control the responsive behavior on view and edit pages when a field is hidden. The signature of the function is now rbf_showOrHideField(fieldName, showField, doNotHideResponsiveColumn.

The value of the new parameter specifies whether to overwrite the column occupied by the hidden field:

  • When true, Platform hides only the value of the field, not the column itself. The column for the hidden field maintains its position regardless of the screen size.
  • When false, Platform hides both the value of the field and its column. The value in the next column will take its position.
  • When not provided, defaults to false.

See rbf_showOrHideField() for details and examples.

JavaScript files available in uncompressed format

The following JavaScript files are now available in an uncompressed format:

  • Options.js — Contains the default user interface options for the New UI
  • CustomEvents.js — Contains definitions of custom events, event listeners, and event handlers

If you customize the UI with JavaScript, it will be helpful to review the contents of these files. You can find these files at the following locations:

  • Platform Private Cloud: http://localhost:8830/prod1/js/newui/ — For example, to view Options.js when using a tenant running the PAS server, you would use the URL http://localhost:8830/prod1/js/newui/Options.js.
  • Hosted Platform: https://www.rollbase.com/prod1/js/newui/ — For example, to view Options.js, you would use the URL https://app.infiniteblue.com/prod1/js/newui/Options.js.

Performance improvements when using OpenEdge Data Objects

This release introduces the following features that improve performance when using OpenEdge Data Objects from an OpenEdge Data Object Service:

  • Ability to cache OpenEdge Data Objects — Platform now caches Data Objects instead of fetching them from the Data Object Service each time they need to be accessed. A new property on the object definition, Clear Record Cache After, allows you to specify the number of seconds after which to clear the cache.
  • Improved implementation for counting OpenEdge Data Objects — Prior to this release, Platform fetched all records from the Data Object Service to count them when rendering a record list view. This release introduces the capability for Platform to invoke a count operation on the Data Object Service to return the count without fetching the records. Enabling this behavior requires the following:
    • The OpenEdge Data Object Service must implement a count operation that returns the total number of records.
    • You must enable count on the object definition by checking a new property on the object definition, Service Object supports count operation.