Display VIP flag on REQ, RITM and SCTASK forms for 'Requested For'

gs7
Tera Contributor

Hello everyone,

I have a requirement to display VIP flag for 'Requested for' for Request. This flag should be displayed on REQ, RITM and SCTASK form.

I referred to the below community and created client script on REQ and RITM and Script include, but i see the flag only on REQ form and not on RITM and SCTASK form. 

https://community.servicenow.com/community?id=community_question&sys_id=7700a12fdb32afc011762183ca9619f4

Looking for any help on this.

Below are the scripts.

Client script on sc_request table :-

function onLoad() {

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: ""
});
}
}

 

Client Script on sc_req_item table :-

function onLoad() {
//Type appropriate comment here, and begin script below

var callerLabel = $('label.sc_req_item.request.requested_for');
var callerField = $('sys_display.sc_req_item.request.requested_for');
if (!callerLabel || !callerField)
return;


var number = g_form.getValue('number');

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_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 (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 Include :- (Client callable checked in)

var isVIP = Class.create();
isVIP.prototype = Object.extendsObject(AbstractAjaxProcessor, {

vip: function(){
var number = this.getParameter('sysparm_numnber');
var gr = new GlideRecord("sc_req_item");
gr.addQuery("number", number);
gr.query();
if (gr.next()) {
return gr.request.requested_for.vip;
}
},

type: 'isVIP'
});

1 ACCEPTED SOLUTION

I'm glad to hear that you are now able to view the icon on the 3 forms. 

To show the icon on the RITM and SCTASK table list views, assuming the list layout of each contains Request.Requested for, all you need to do is change the Value of the Style that you created to show the icon on the sc_request table, and it will show on all 3 tables!

javascript:current.requested_for.vip==true||current.request.requested_for.vip==true;

View solution in original post

17 REPLIES 17

gs7
Tera Contributor

Well was able to display the icon on Request list view by creating a style on the table, but not on RITM and SCTASK table list view.

I'm glad to hear that you are now able to view the icon on the 3 forms. 

To show the icon on the RITM and SCTASK table list views, assuming the list layout of each contains Request.Requested for, all you need to do is change the Value of the Style that you created to show the icon on the sc_request table, and it will show on all 3 tables!

javascript:current.requested_for.vip==true||current.request.requested_for.vip==true;

Thank you, was able to figure this out.

Hi Geetika / Brad,

My requirement is also to show VIP flag to Requested for field in Request & Requested Item's form view. In List view for both Request & Requested Item, 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 please?

Quick reply will be much appreciated!!!

 

gs7
Tera Contributor

Hi Manish,

 

Did you try the below :-

 

Client Script on REQ (sc_request):- (Isolate script set to 'FALSE')

function onLoad() {


    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: ""
        });
    }
}

Client Script in RITM(sc_req_item) :- (Isolate script set to 'FALSE')

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;

    var number = g_form.getValue('number');
    var ga = new GlideAjax("isVip");
    ga.addParam("sysparm_name", "vip_ritm");
    ga.addParam("sysparm_numnber", number);
    ga.getXML(vipCallBack);
}

function vipCallBack(response) {
    var answer = response.responseXML.documentElement.getAttribute("answer");
    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 (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: ""
        });
    }
}

Client Script on SCTASK (sc_task) :- (Isolate script set to 'FALSE')

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_sctask");
	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: ""});
	}

}

Script Include :- (Client Callable set to True)

var isVip = Class.create();
isVip.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    vip_ritm: function() {
        var number = this.getParameter('sysparm_numnber');
        var gr = new GlideRecord("sc_req_item");
        gr.addQuery("number", number);
        gr.query();
        if (gr.next()) {
            return gr.request.requested_for.vip.toString();
        }
    },
	
	vip_sctask: function() {
        var number = this.getParameter('sysparm_numnber');
        var gr = new GlideRecord("sc_req_item");
        gr.addQuery("sys_id", number);
        gr.query();
        if (gr.next()) {
            return gr.request.requested_for.vip.toString();
        }
    },
    type: 'isVip'
});