Many of the questions that came up on the forums were things we anticipated. In these cases the response was a simple “Just do this“. In some cases bugs were found that prevented the APIs or configuration options from working as intended. Where practical these bugs were fixed. Sometimes when I saw what the solution looked like I realized that there should be an easier or more robust way. And finally some questions pointed us to things we hadn’t thought of or fully thought out. Where possible these things were added in 5.1.1 and otherwise recorded for future consideration.
In working through these use cases we decided that some of the IG widget methods were stable enough to use so we added doc comments to the widget.interactiveGrid.js file for them. There are still a number of them that are marked as internal use only that you should avoid. As a reminder all these IG related APIs and options are not documented or supported. They may change from one release to the next.
A big reason for delaying the fourth part of my How to Hack Interactive Grid series is so that it could be based on 5.1.1. I will also go back and update the first three parts to reflect the 5.1.1 improvements.
Here is a brief summary of the improvements. You will need to read the source doc comments for details.
- A getToolbar method was added to the IG widget and recordView widget.
- A findGroup method was added to the toolbar widget and ids were added to IG toolbar control groups.
- A toolbar control such as a button can override the icon in the action with null to remove the icon.
- The IG default toolbar added id properties to sub-menu entries and a toolbarFind method was added to the default toolbar array returned by copyDefaultToolbar.
- There is a minor change in behavior for getTotalRecords and a new getServerTotalRecords method was added.
- New notifications addData and instanceRename were added.
- A fetchAll method was added
IG Widget Related:
- The grid view now has properties for row actions and selection actions menus (rowActionMenu$ and selActionMenu$).
- Added getSelectedRecords and setSelectedRecords methods.
- Added getCurrentView method.
- The viewchange event now has a created Boolean property.
- New events reportsettingschange and save were added.
- The IG apex.region interface is created before events are fired.
IG Configuration Related:
- Allows setting column options with defaultGridColumnOptions object.
- The grid view options columnSort, reorderColumns, and resizeColumns are now controlled by config.views.grid.features sort, reorderColumns, and resizeColumns.
- Extra model options can be set with config.defaultModelOptions.
- A stretchColumns option was added to config.views.grid.features. It is used to set the value for noStretch column config if not already specified.
- The config.views.grid.features highlight, controlBreak, aggregate are now hooked up.