Live Editing with Websockets

This is the premier feature of the release. The ability to perform live collaboration and see data changes in real time. Enabling this new feature is just a single click away.

In this release we are introducing a new addon to introduce live editing capability of the grid, tree grid, and editable list views. You will be able to see realtime changes and a realtime visualization of other users modifying data in the same view of data you are viewing. Just like you can with Google spreadsheets..

For some businesses the difference between knowing something now vs in 1 minute from now can have a huge impact. It can save lives, it can give you a competitive advantage, it can make you more money. This is what you get with FOEX Live, seeing your data changes in realtime and being able to immediately respond and make decisions based on these changes.

FOEX Live Editing - Grid Demo

Click to see the demo video

FOEX Live Editing - Tree Grid

Click to see the demo video

FOEX Live Editing - Drag & Drop List View(s)

Click to see the demo video

(Click to see the demo video)

Inactivity Timeout

We have introduced an improvement to both the Timer and Message Box plugins to allow developers to easily include an inactivity timeout warning. The Timer plugin has a new inactivity timer option which will be triggered when the user has not moved their mouse or pressed a key for X many seconds.

The "Message Box" improvement provides a progress indicator with a timeout message. The OK button is included to allow the user to prevent the default action from occurring e.g. page reload, session timeout etc. Since the "Message Box" allows you to define PLSQL you can use this setting in conjunction with the application Idle timeout to prevent the APEX session from timing out as well. Or you could use the "No/Cancel/Timeout" PLSQL to log the user out e.g.

apex_authentication.logout(:SESSION, :APP_ID);

Debounce & Throttle Dynamic Actions

In this release we are adding some additional dynamic actions to provide some missing functionality in APEX, which is the ability to deal with actions that fire to frequently e.g. you probably don't want your actions to fire a keyup event action (when the user is typing) until they have stopped typing for say 1 second. These new actions we are adding are Debounce & Throttle.

What's the difference between Debounce and Throttle?

Debouncing enforces that a function not be called again until a certain amount of time has passed without it being called. As in "execute this action only if 500 milliseconds have passed without it being called."

Throttling enforces a maximum number of times a function can be called over time. As in "execute this action at most once every 500 milliseconds."

The inseresting thing about these actions is that they only apply to proceeding actions, so you can define actions before them that will fire every time the event fires, thus giving you much more flexibility. Note: the only requirement when using these actions is, you must set "Wait For Result" to "Yes"


Other Enhancements

Thanks to the continued use of FOEX from a growing customer base we receive requests for enhancements and improvments. Whilst we can't implement every request we receive (for different reasons) the following improvements have been introduced in this release:

  • New expand/collapse rows functionality for tree/tree grids
  • Deselect Capability in Single Grid Row Selection
  • Allow typing in the grid combo input
  • A new declarative option to "Save all Records" in the grid
  • New actions to suspend/resume auto save on grids, trees, and lists
  • Include changes made to grid rows in the POST Processing Procedure hook
  • Define namespaces for caching e.g. for multiple views of the same page
  • Auto Size content height in the grid row expander
  • Add list support to grid column search menu via the additional config setting:
  • Triggering Event option to locate rows by e.g. Refresh Rows Action
  • Tooltips added to Form navigation buttons without labels
  • Plus a number of other minor improvements and bug fixes