Some minor new things in APEX 18.2

Here is an update for 18.2 from my little corner of APEX.

JavaScript API Documentation

Check out the latest JavaScript API documentation. I think you’ll agree it is a big improvement compared to 18.1 but it is still labeled “Pre-General Availability”. This means that it is not complete and at the level of quality that we require for our documentation. We have been working on expanding API coverage and converting the documentation to be generated with JSDoc since 18.1. It is a source of frustration for me, and I’m sure many of you, that it is taking so long to complete. I won’t bother with excuses but will say that great progress has been made and I hope it is useful now, and completed in the next release.

A reasonable question is “how far off is it and can I rely on it in its current state?”. Whats missing completely is the apex.storage namespace and the apex.da and apex.message namespaces are incomplete but you can refer to the old JavaScript APIs chapter of the API Reference for these APIs. The interactiveGrid widget is incomplete. This may seem like a huge limitation given that it was the new Interactive Grid in 5.1 that motivated this documentation effort in the first place. But keep in mind that Interactive Grid is made up of many parts. The interactiveGrid widget is just the tip of the API ice burg. To configure and control the Interactive Grid region you may be using actions, items, menus, models and the grid, recordView, and tableModelView widgets, which are all documented. The rest of the material is complete but has not received adequate review. There were also a few other existing APIs that we wanted to document but didn’t have time for. With this in mind I think it is reasonable and beneficial to make use of this new preliminary documentation. Feel free to report issues.

Interactive Grid

There is no major new functionality for 18.2 Interactive Grid. The focus for 18.2 was on stability. Twenty one bugs were fixed. See the release notes for the list.

Here are some internal improvements that may be of interest.

  • There is a new activatecell event.
  • Variable height column headers. You no longer need a custom CSS rule to set the height of the column headers when the column header text is broken onto multiple lines using for example <br>.
  • The grid view now responds to model highlight metadata changes. This means if you have JavaScript code that manipulates the highlight metadata you don’t need to refresh the grid view. You do need to call the model metadataChanged method.

I intend to release an updated Interactive Grid Cookbook with new examples soon.

Inline Dialog and Inline Popup improvements

There still isn’t a predefined Inline Popup region in Universal Theme but I’m still hopeful it will be added in the future. However it is now easier to define an Inline Popup region. I have updated my previous post with the new simpler instructions for 18.2.

A number of bugs and other issues have been fixed so that Charts and Interactive Grids can be put in inline dialog or inline popup regions. The main issue that got fixed was the inline dialog and popup regions now implement the needed calls to apex.widget.util.visibilityChange as discussed here so that Charts and IG are properly initialized when the region becomes visible. For Interactive Grid some issues related to the column header menu also had to be fixed so that it now works while in a dialog/popup.

To put an IG in an inline region, make sure the Heading: Fixed To = Region. Also probably want to set Lazy Loading to Yes. No point in loading data until it will be seen. If the IG is editable you probably want to remove the Save button from the toolbar. More details and examples will be available in the upcoming IG Cookbook.

The popup widget now supports having the parentElement option set after initialization. This is useful when the same popup needs to be opened under different elements at different times.

There are new, currently undocumented, APIs for opening and closing inline dialog or popup regions.

  • apex.theme.openRegion("staticid");
  • apex.theme.closeRegion("sataticid");

If you use these from a DA JavaScript action you can use

    apex.theme.openRegion(this.affectedElements);

or

    apex.theme.closeRegion(this.affectedElements);

and Set the Affected Elements type = Region and choose the Inline Popup or Dialog region to open or close. A nice thing about these APIs is that it doesn’t matter if the region is a dialog or popup. The alternative is to use the underlying widget methods such as $("selector").dialog("open") or $("selector").popup("open").

I hope you enjoy the APEX 18.2 release.

Leave a Reply

Your email address will not be published. Required fields are marked *