Add an add/edit user UI Macro to a form

 based on ref:

(note this is a very old article so there may be better ways of doing this!)

this adds a little + icon next to the caller field:


Show add/edit user macro icon on a reference field

Activate by:

– Setting the active field in this macro to true

– Adding the attribute to a dictionary field: ref_contributions=_add_edit_user_modified

sys property:

the UI Macro:

condition to hide/show the + icon

<j:if test="${(gs.getUser().getDepartmentID() == (gs.getProperty('hmcts.department')))&amp;&amp; gs.hasRole('itil_edit')}">

Full XML - view to set highlighted in green (view can be specified under system UI> views):

<?xml version="1.0" encoding="utf-8" ?> <j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null"> <j:if test="${(gs.getUser().getDepartmentID() == (gs.getProperty('xxx.department')))&amp;&amp; gs.hasRole('itil_edit')}"> <g:evaluate var="jvar_guid" expression="gs.generateGUID(this);" /> <j:set var="jvar_n" value="add_edit_user_${jvar_guid}:${ref}"/> <a> <span id="${jvar_n}" onclick="addEditUserPop('${ref}')" class="btn btn-default icon-add-circle" title="${gs.getMessage('Add/Edit User')}" alt="${gs.getMessage('Add/Edit User')}"> </span> </a> <script> //OnClick function for UI macro function addEditUserPop(reference){ var s = reference.split('.'); var referenceField = s[1]; var v = g_form.getValue(referenceField); //If user field is empty then pop open an 'Add User' dialog if(v == ''){ var dialog = new GlideDialogForm('Add User', 'sys_user', setUserField); dialog.setSysID('-1'); //Pass in -1 to create a new record } //Else pop open an 'Edit User' dialog for the populated user record else{ var dialog = new GlideDialogForm('Edit User', 'sys_user', setUserField); dialog.setSysID(v); //Pass in reference sys_id to edit record } // dialog.addParm('sysparm_view', 'default'); //Specify a form view dialog.addParm('sysparm_view', 'user_add_edit'); //Specify a form view dialog.addParm('sysparm_form_only', 'true'); //Remove related lists dialog.render(); //Open the dialog //Callback function executed from dialog submit function setUserField(action, sys_id, table, displayValue){ //Set the user field with the popup user g_form.setValue(referenceField, sys_id); } } </script> </j:if> </j:jelly>


Popular posts from this blog

GlideRecord setValue

URL link in addInfoMessage