OpenIDM 3.x allows you to create customized templates.
This short example walks you through one such customization, where we need to add an additional field to the default "Add User" page. The additional field will be used to store the employee type (such as fulltime or partime) of the user.
This example also illustrates how easy it is to add additional fields (think of them as columns) in OpenIDM without the need to alter schema or any other system file.
|First we need to identify the file name of the template. The easiest way to do figure out the file name is to use the "Developer" feature of your favorite browser. Today i am using Safari and hence using the "Web Inspector" shows me under "XHRs" the full web path to the template is http://example.com:8080/openidmui/templates/admin/AdminUserRegistrationTemplate.html|
|Now that the template is identified all we need to do is to copy it to the "extension" directory under "ui" but only part of the original path needs to be preserved.Since we are interacting with the end user pages, the original path will be under the "enduser" directory structure as seen in the screen shot on the right. Hence the resulting full path will be openidm/ui/extension/templates/admin. Note how it is relative to the original templates directory.|
|Once the template file is copied, edit it in your favorite editor such as|
|This step is critical because you have to ensure that your browser does not serve the modified page from its cache. Otherwise you will obviously not see the change.|
In Safari first "Disable Caches" and then "Empty Cache" and then reload the page. And voila, you should see the new "Employee Type" text box.
|Go ahead and add a new user with "Employee Type" filled in. Once you create the user if you probably need to view them also and hence you will need to customize the AdminUserProfileTemplate.html in a similar fashion to expose the new field.|
|You can also double check that the value is saved by logging into the OrientDB Studio Console on port 2480 as admin/admin and then looking at the "managed_user" object (table). You should see an additional column called "emptype". |
Yes it is this simple to add a new field to the UI and have it persist in the database! Now if you need to synchronize this new field then you have to add it to your sync.json and make sure that the target's provisioner file is also aware of it.