- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-12-2023 01:19 AM - edited ‎01-12-2023 01:23 AM
Hi All,
We created one UI Macro to display the approver's delegates and it's working fine.
But now we want to hide the UI Macro if the approver don't have the delegates.
We gone through the old threads and tried few possibilities to hide the macro, But no luck.
Can anyone please help us hide the Marco using onLoad client script.
Ui Macro Script:
Name: delegates_approver
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:evaluate var="jvar_guid" expression="gs.generateGUID(this);" />
<j:set var="jvar_n" value="show_incidents_${jvar_guid}:${ref}"/>
<g:reference_decoration id="${jvar_n}" field="${ref}"
onclick="showRelatedList('${ref}'); "
title="${gs.getMessage('Show delegates')}" class="btn btn-ref btn-default hide_hosted_asset_flag" image="images/icons/tasks.gifx" icon="icon-tree-right"/>
<script>
function showRelatedList(reference) {
var w = new GlideDialogWindow('show_list');
w.setTitle('Delegate Users');
w.setPreference('table', 'sys_user_delegate_list');
w.setPreference('sysparm_view', 'default');
//Set the query for the list
var approver = g_form.getValue('approver');
var usr = 'user=' + approver + '^approvals=true' + '^delegate.active=true';
w.setPreference('sysparm_query', usr);
w.render();
}
</script>
</j:jelly>
Hi @RaghavSh
Could you please help us here.
Advance thanks.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-13-2023 06:42 AM
@ar1 the code worked perfectly fine for me pasting it again:
client:
function onLoad() {
//Type appropriate comment here, and begin script below
alert('one');
//var usr = g_form.getReference('approver');
var gr = new GlideAjax('approverDelegationsCheck');
gr.addParam('sysparm_name','getDelegates');
gr.addParam('sysparm_usr',g_form.getValue('approver'));
gr.getXML(callbackfunction);
} // this bracket is the onload function bracket, it should close here , check your code.
function callbackfunction(response)
{
var answer = response.responseXML.documentElement.getAttribute("answer");
alert(answer);
if(answer==0){
alert('inside loop');
gel("test").style.display="none"; //make sure isolate script of your client script is false
}
}
SI:
var approverDelegationsCheck = Class.create();
approverDelegationsCheck.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getDelegates: function()
{
gs.log("raghav111");
var usr = this.getParameter('sysparm_usr');
var app = new GlideRecord('sys_user_delegate');
app.addQuery('user',usr);
app.addQuery('approvals',true);
app.query();
return app.getRowCount();
// while(app.next())
// {
// var delUsr = app.getValue('delegate');
// //var delUsr = app.getRowCount();
// return delUsr;
// }
},
type: 'approverDelegationsCheck'
});
I think you should paste the screenshots of codes. Also I have put logs, check if you are getting this log or any error when you load the approval page.
Raghav
MVP 2023
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-13-2023 04:05 AM
@ar1 remove or comment the below query from the code and try.
delegate.addQuery("starts<=javascript:gs.endOfToday()^ends>=javascript:gs.beginningOfToday()");
Please mark as correct answer if this solves your issue.
ServiceNow Community Rising Star, Class of 2023
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-13-2023 04:03 AM
@ar1 Did you try this?
ServiceNow Community Rising Star, Class of 2023
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-13-2023 05:17 AM
Hi Jaheer,
Yes we tried, we removed the above mentioned line, but no luck.
The icon is not showing even though if the approver have the delegates.
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-13-2023 05:27 AM
@ar1 Sorry there was some issue in the code. Try below code
ServiceNow Community Rising Star, Class of 2023
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-13-2023 05:43 AM
Hi Jaheer,
Many thanks for the support.
We tried your recent code but still it's not working.
Did you check the same script in your PDI.
Advance thanks.