based on ref: http://www.servicenowguru.com/system-ui/ui-macros/adding-referenced-records-leaving-form/
(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:
notes:
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
condition to hide/show the + icon
<j:if test="${(gs.getUser().getDepartmentID() == (gs.getProperty('hmcts.department')))&& 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')))&& 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>
Comments
Post a Comment