A few years ago I created a Name Picker for an XPages project I was working on at the time. The application had several fields that required the selection of users from the address book, but the available options at the time did not fit the bill. In addition, this was the first XPages application for this user base after being firmly entrenched in Notes Client applications for many years. As a result, there was a need to provide some functionality that helped build a bridge from Notes Client to web/XPage applications. Being able to select users from an address book in a similar manner as the Notes Client was a good place to build this bridge.
When I first started building this control, the ExtLib version did not exist yet. Even after ExtLib was released, the environment where this was born did not have ExtLib installed on their servers. In my testing against the ExtLib name picker, this version outperformed it using the 40k entry address book, fakenames.nsf, as well as provides functionality that does not exist in the ExtLib version.
The key features of Dojo Name Picker 1.0 include:
- Ability to choose People, People & Groups, or just Groups.
- Multi Select via a dual column dialog.
- Single Select via a single column dialog.
- Lazy loading of additional entries when scrolling up or down.
- Only creates one dojo dialog widget no matter how many names fields are needed on a form.
- In Firefox and XPiNC the dialog will also display the associated icon for an entry (IE and Chrome do not support option tag background images).
- Ability have the name picker execute a function with the selected value(s) being passed to the function as a parameter.
- Ability to specify a partial refresh target on dialog close.
- No dependency on ExtLib.
- Will work on 8.5.3 and above (will probably work on 8.5.2 but this release has not been tested on that version).
You can test the name picker for yourself via a live demo here.
You can view this project on OpenNTF here.
While I feel this is a good, solid release, there are some improvements I would like to make:
- Bootstrap version (coming soon!) .
- Improved caching.
- Ability to return selected items as a JSON string.
- Ability to define additional fields to pull from the NAB
- Support multiple address books
Thanks for checking it out!