
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-10-2019 07:27 AM
We have been asked to show the VIP flag for requests, similar to what shows for incidents. We have been able to create a style that shows the VIP gif in the list, but we are having trouble getting the gif to show on the forms. Below is the client script that we tried to use, but still not getting the gif to show.
We are currently using London Patch 4
This is the form of the script:
This is the script:
function onLoad() {
var callerLabel = $('label.sc_req_item.request.requested_for');
var callerField = $('sys_display.sc_req_item.request.requested_for');
if (!callerLabel || !callerField)
return;
/*if (!newValue) {
callerLabel.setStyle({backgroundImage: ""});
callerField.setStyle({color: ""});
return;
}*/
g_form.getReference('request.requested_for', vipCallerCallback);
}
function vipCallerCallback(caller) {
var callerLabel = $('label.sc_req_item.request.requested_for').down('label');
var callerField = $('sys_display.sc_req_item.request.requested_for');
if (!callerLabel || !callerField)
return;
//check for VIP status
if (caller.vip == 'true') {
var bgPosition = "95% 55%";
if (document.documentElement.getAttribute('data-doctype') == 'true')
bgPosition = "5% 45%";
callerLabel.setStyle({backgroundImage: "url(images/icons/vip.gif)", backgroundRepeat: "no-repeat", backgroundPosition: bgPosition, paddingLeft: '30px' });
//set callerField color
callerField.setStyle({color: "red"});
} else {
callerLabel.setStyle({backgroundImage: ""});
callerField.setStyle({color: ""});
}
}
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-10-2019 02:16 PM
Here are the scripts for REQ and sc_task
Request client script
function onLoad() {
var callerLabel = $('label.sc_request.requested_for');
var callerField = $('sys_display.sc_request.requested_for');
if (!callerLabel || !callerField)
return;
/*if (!newValue) {
callerLabel.setStyle({backgroundImage: ""});
callerField.setStyle({color: ""});
return;
}*/
g_form.getReference('requested_for', vipCallerCallbackREQ);
}
function vipCallerCallbackREQ(caller) {
var callerLabel = $('label.sc_request.requested_for').down('label');
var callerField = $('sys_display.sc_request.requested_for');
if (!callerLabel || !callerField)
return;
//check for VIP status
if (caller.vip == 'true') {
var bgPosition = "95% 55%";
if (document.documentElement.getAttribute('data-doctype') == 'true')
bgPosition = "5% 45%";
callerLabel.setStyle({backgroundImage: "url(images/icons/vip.gif)", backgroundRepeat: "no-repeat", backgroundPosition: bgPosition, paddingLeft: '30px' });
//set callerField color
callerField.setStyle({color: "red"});
} else {
callerLabel.setStyle({backgroundImage: ""});
callerField.setStyle({color: ""});
}
}
Catalog task client script
function onLoad() {
//Type appropriate comment here, and begin script below
var callerLabel = $('label.sc_task.request_item.request.requested_for');
var callerField = $('sys_display.sc_task.request_item.request.requested_for');
if (!callerLabel || !callerField)
return;
var number = g_form.getValue('request_item');
var ga = new GlideAjax("isVIP");
ga.addParam("sysparm_name", "vip");
ga.addParam("sysparm_numnber", number);
ga.getXML(vipCallBack);
}
function vipCallBack(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
var callerLabel = $('label.sc_task.request_item.request.requested_for').down('label');
var callerField = $('sys_display.sc_task.request_item.request.requested_for');
if (!callerLabel || !callerField)
return;
//check for VIP status
if (answer == 'true') {
var bgPosition = "95% 55%";
if (document.documentElement.getAttribute('data-doctype') == 'true')
bgPosition = "5% 45%";
callerLabel.setStyle({backgroundImage: "url(images/icons/vip.gif)", backgroundRepeat: "no-repeat", backgroundPosition: bgPosition, paddingLeft: '30px' });
//set callerField color
callerField.setStyle({color: "red"});
} else {
callerLabel.setStyle({backgroundImage: ""});
callerField.setStyle({color: ""});
}
}
We also need to make some changes to script include and sc_req_item client so that single script include fits for sc_task as well. Please update the below lines in earlier scripts
Script include update
gr.addQuery("sys_id", number);
Client script update
var number = g_form.getUniqueValue();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-04-2021 04:21 PM
I tried this only my request, request item - it worked. But sc_task, the field color does not change. Any one knows why?
Here is my script,
function onLoad() {
//Type appropriate comment here, and begin script below
var callerLabel = $('label.sc_task.request_item.u_requested_for');
var callerField = $('sys_display.sc_task.request_item.u_requested_for');
if (!callerLabel || !callerField)
return;
var sysID = g_form.getUniqueValue();
var ga = new GlideAjax("isVIP");
ga.addParam("sysparm_name", "vip");
ga.addParam("sysparm_sysid", sysID);
ga.addParam("sysparm_table", "sc_task");
ga.getXML(vipCallBack);
}
function vipCallBack(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
var callerLabel = $('label.sc_task.request_item.u_requested_for').down('label');
var callerField = $('sys_display.sc_task.request_item.u_requested_for');
if (!callerLabel || !callerField)
return;
//check for VIP status
if (answer == 'true') {
var bgPosition = "95% 55%";
if (document.documentElement.getAttribute('data-doctype') == 'true')
bgPosition = "5% 45%";
callerLabel.setStyle({backgroundImage: "url(images/icons/vip.gif)", backgroundRepeat: "no-repeat", backgroundPosition: bgPosition, paddingLeft: '30px' });
//set callerField color
callerField.setStyle({color: "red"});
} else {
callerLabel.setStyle({backgroundImage: ""});
callerField.setStyle({color: ""});
}
}
Script Includes:
==================
var isVIP = Class.create();
isVIP.prototype = Object.extendsObject(AbstractAjaxProcessor, {
vip: function(){
var tableName = this.getParameter('sysparm_table');
var sysID = this.getParameter('sysparm_sysid');
var gr = new GlideRecord(tableName);
gr.addQuery("sys_id", sysID);
gr.query();
if (gr.next()) {
if(tableName=="sc_req_item"){
return gr.request.requested_for.vip;
}
else if(tableName=="sc_task"){
return gr.request_item.request.requested_for.vip;
}
}
},
type: 'isVIP'
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-04-2021 04:23 PM
Okay, in my vipCallBack() function, I had to do the following change then it worked. But not sure if this is the right way. Please correct me!
//var callerField = $('sys_display.sc_task.request_item.u_requested_for');
var callerField = $('sc_task.request_item.u_requested_for_label');
After changing the callerField, I see the field value turning red.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-21-2022 03:28 PM
Hi Rajinisree,
My requirement is to show VIP flag to Requested for field in Request & Requested Item's form view. In List view, it is working fine.
Could you please help / guide me on how to achieve that and what will be the code in Request & Requested Item's onLoad Client script and in Script Include?
Quick reply will be much appreciated!!!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-22-2022 07:42 AM
This is onLoad client script on Request (sc_request). You have to customize as per your requirement.
function onLoad() {
//Type appropriate comment here, and begin script below
var callerLabel = $('label.sc_request.requested_for');
var callerField = $('sys_display.sc_request.requested_for');
if (!callerLabel || !callerField)
return;
g_form.getReference('requested_for', vipCallerCallbackREQ);
}
function vipCallerCallbackREQ(caller) {
var callerLabel = $('label.sc_request.requested_for').down('label');
var callerField = $('sys_display.sc_request.requested_for');
if (!callerLabel || !callerField)
return;
//check for VIP status
if (caller.vip == 'true') {
var bgPosition = "95% 55%";
if (document.documentElement.getAttribute('data-doctype') == 'true')
bgPosition = "5% 45%";
callerLabel.setStyle({backgroundImage: "url(images/icons/vip.gif)", backgroundRepeat: "no-repeat", backgroundPosition: bgPosition, paddingLeft: '30px' });
//set callerField color
callerField.setStyle({color: "red"});
}
else {
callerLabel.setStyle({backgroundImage: ""});
callerField.setStyle({color: ""});
}
}
This is the onLoad on Requested Item
function onLoad() {
//Type appropriate comment here, and begin script below
var callerLabel = $('label.sc_req_item.u_requested_for');
var callerField = $('sys_display.sc_req_item.u_requested_for');
if (!callerLabel || !callerField)
return;
var sysID = g_form.getUniqueValue();
var ga = new GlideAjax("isVIP");
ga.addParam("sysparm_name", "vip");
ga.addParam("sysparm_sysid", sysID);
ga.addParam("sysparm_table", "sc_req_item");
ga.getXML(vipCallBack);
}
function vipCallBack(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
var callerLabel = $('label.sc_req_item.u_requested_for').down('label');
var callerField = $('sys_display.sc_req_item.u_requested_for');
if (!callerLabel || !callerField)
return;
//check for VIP status
if (answer == 'true') {
var bgPosition = "95% 55%";
if (document.documentElement.getAttribute('data-doctype') == 'true')
bgPosition = "5% 45%";
callerLabel.setStyle({backgroundImage: "url(images/icons/vip.gif)", backgroundRepeat: "no-repeat", backgroundPosition: bgPosition, paddingLeft: '30px' });
//set callerField color
callerField.setStyle({color: "red"});
} else {
callerLabel.setStyle({backgroundImage: ""});
callerField.setStyle({color: ""});
}
}
This is the onLoad for SC_Task
function onLoad() {
//Type appropriate comment here, and begin script below
var callerLabel = $('label.sc_task.request_item.u_requested_for');
var callerField = $('sys_display.sc_task.request_item.u_requested_for');
if (!callerLabel || !callerField)
return;
var sysID = g_form.getUniqueValue();
var ga = new GlideAjax("isVIP");
ga.addParam("sysparm_name", "vip");
ga.addParam("sysparm_sysid", sysID);
ga.addParam("sysparm_table", "sc_task");
ga.getXML(vipCallBack);
}
function vipCallBack(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
var callerLabel = $('label.sc_task.request_item.u_requested_for').down('label');
//var callerField = $('sys_display.sc_task.request_item.u_requested_for');
var callerField = $('sc_task.request_item.u_requested_for_label');
if (!callerLabel || !callerField)
return;
//check for VIP status
if (answer == 'true') {
var bgPosition = "95% 55%";
if (document.documentElement.getAttribute('data-doctype') == 'true')
bgPosition = "5% 45%";
callerLabel.setStyle({backgroundImage: "url(images/icons/vip.gif)", backgroundRepeat: "no-repeat", backgroundPosition: bgPosition, paddingLeft: '30px' });
//set callerField color
callerField.setStyle({color: "red"});
} else {
callerLabel.setStyle({backgroundImage: ""});
callerField.setStyle({color: ""});
}
}
This is my script include
var isVIP = Class.create();
isVIP.prototype = Object.extendsObject(AbstractAjaxProcessor, {
vip: function(){
var tableName = this.getParameter('sysparm_table');
var sysID = this.getParameter('sysparm_sysid');
var gr = new GlideRecord(tableName);
gr.addQuery("sys_id", sysID);
gr.query();
if (gr.next()) {
if(tableName=="sc_req_item"){
return gr.request.requested_for.vip;
}
else if(tableName=="sc_task"){
return gr.request_item.request.requested_for.vip;
}
}
},
type: 'isVIP'
});
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-22-2022 01:30 PM
Hi Rajinisree,
Thanks for your response.
Just for my understanding, If I would only need on the Request form then does that mean I have to only write Request's ON LOAD script and not RITM's and script include. If so, then I used it and after first line, I couldn't get any alert at all.
As well as I think I read it before that SN has suggested not to use getReference() function any more and it is not considered as best practice. Do you have running code where it is running in current release of SN like Rome or San Diego.