Skip to main content

UI Macro on User form to add/edit an external user

 form view: user_add_edit update to pull in required fields



<?xml version="1.0" encoding="utf-8" ?> <j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null"> <j2:if test="$[current.active == true ]"> <j:if test="${gs.hasRole('user_admin_service_desk') }"> <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> </j2:if> </j:jelly>

Comments

  1. Hello,Whole code i paste on my Ui macro the but the button is not created before my caller field .can you please guide me?

    ReplyDelete
  2. can you share the Whole Process from start ?

    ReplyDelete

Post a Comment

Popular posts from this blog

Get URL Parameter - server side script (portal or classic UI)

Classic UI : var sURL_editparam = gs . action . getGlideURI (). getMap (). get ( ' sysparm_aparameter ' ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); } Portal : var sURL_editparam = $sp . getParameter ( " sysparm_aparameter " ); if ( sURL_editparam == 'true' ) { gs . addInfoMessage ( 'parameter passed ); }

ServiceNow - script include: build up the results as a JSON object (array) - example 2

function call var sCurrentGroupMembers = new <script_include> (). getGroupMembers ( group_sysid ); gs . print ( 'sCurrentGroupMembers:' + sCurrentGroupMembers ); var oGroupMembers = JSON . parse ( sCurrentGroupMembers ); gs . print ( JSON . stringify ( oGroupMembers . users )); oNewGroupMember = JSON . parse ( group_members ); var oGroupConfig = getGroupDeltas ( oGroupMembers . users , oNewGroupMember ); gs . print ( JSON . stringify ( oGroupConfig . remove )); gs . print ( JSON . stringify ( oGroupConfig . add )) output : *** Script: sCurrentGroupMembers: {"manager":"3b2649efdb0f8c10cc0652f3f39xxxxx", "email":"", "type":"33a2226edb99c340edfc7cbdae96xxxx", "description":"Created for xyz", "users":[{"user":"3b2649efdb0f8c10cc0652f3f396xxxx"},{"user":"856a8f71db3d73041b4ffc45ae96196a"},{"user":"3752771