Using glide modal to call a UI page

anirban300
Kilo Guru

Hi Everyone,

I have to add two more fields in the dialogue box apart from the 4 shown below (Number, Short description,...). This is being populated by a UI action which uses glide modal to call a UI page. But in the UI page I am not able to understand how the fields are being called.

find_real_file.png

 

UI Page Code:

<?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="sysparm_rec_sys_id" expression="RP.getWindowProperties().get('sysparm_rec_sys_id')" />
<g:evaluate var="sysparm_caller" expression="RP.getWindowProperties().get('sysparm_caller')" />
<g:evaluate var="sysparm_business_user" expression="RP.getWindowProperties().get('sysparm_business_user')" />
<g:evaluate var="sysparm_u_service" expression="RP.getWindowProperties().get('sysparm_u_service')" />
<g:evaluate var="sysparm_call_category" expression="RP.getWindowProperties().get('sysparm_call_category')" />
<g:evaluate var="jvar_sysparm_call_category" jelly="true">
var table = RP.getParameterValue('sysparm_call_category');
table;
</g:evaluate>
<g:evaluate var="jvar_userlang" jelly="true">
var language = gs.getSession().getLanguage();
language;
</g:evaluate>
<g:evaluate var="jvar_defaulttab" jelly="true">
var defaulttab = gs.getProperty("relatedinfodialog.call.defaulttab");
defaulttab;
</g:evaluate>
<g:evaluate var="jvar_showcalltab" jelly="true">
var showcalltab = gs.getProperty("relatedinfodialog.call.showcalltab");
showcalltab;
</g:evaluate>
<g:evaluate var="jvar_showincidenttab" jelly="true">
var showincidenttab = gs.getProperty("relatedinfodialog.call.showincidenttab");
showincidenttab;
</g:evaluate>
<g:evaluate var="jvar_showproblemtab" jelly="true">
var showproblemtab = gs.getProperty("relatedinfodialog.call.showproblemtab");
showproblemtab;
</g:evaluate>
<g:evaluate var="jvar_showreqitemtab" jelly="true">
var showreqitemtab = gs.getProperty("relatedinfodialog.call.showreqitemtab");
showreqitemtab;
</g:evaluate>
<div>
<ul class="nav nav-tabs" id="tabs">
<j:if test="${jvar_showcalltab == true}">
<g:evaluate var="jvar_call" jelly="true">
var callQuery = "opened_at>javascript:gs.daysAgo(30)^sys_id!=" + jelly.sysparm_rec_sys_id;
callQuery += "^u_caller=" + jelly.sysparm_caller + "^ORu_customer=" + jelly.sysparm_business_user;
callQuery;
</g:evaluate>
<g:evaluate var="jvar_calllabel" jelly="true">
var label = "";
var gr = new GlideRecord('sys_documentation');
gr.addQuery('name', 'u_call')
gr.addQuery('language', '${jvar_userlang}');
gr.addNullQuery('element');
gr.query();
if (gr.next()){
label = gr.getValue('plural');
}
label;
</g:evaluate>
<g:evaluate var="jvar_callcount" jelly="true">
var count = new GlideAggregate('u_call');
count.addEncodedQuery("${jvar_call}");
count.addAggregate('COUNT');
count.query();
var tasks = 0;
if(count.next())
tasks = count.getAggregate('COUNT');
tasks;
</g:evaluate>
<li><a href="#call" data-toggle="tab">${jvar_calllabel} (<span id="u_call_counter">${jvar_callcount}</span>)</a></li>
</j:if>
<j:if test="${jvar_sysparm_call_category == 'Incident' || jvar_sysparm_call_category == 'Question'}">
<j:if test="${jvar_showincidenttab == true}">
<g:evaluate var="jvar_incident" jelly="true">
var incQuery = "";
if (jelly.sysparm_call_category != "RFC" &amp;&amp; jelly.sysparm_call_category != "Complaint") {
incQuery = "active=true^opened_at>javascript:gs.daysAgo(7)^u_service=" + jelly.sysparm_u_service;
if (jelly.sysparm_call_category == "Incident") {
incQuery += "^category=Incident";
}
if (jelly.sysparm_call_category == "Question") {
incQuery += "^category=Question";
}
}
incQuery;
</g:evaluate>
<g:evaluate var="jvar_incidentlabel" jelly="true">
var label = "";
var gr = new GlideRecord('sys_documentation');
gr.addQuery('name', 'incident')
gr.addQuery('language', '${jvar_userlang}');
gr.addNullQuery('element');
gr.query();
if (gr.next()){
label = gr.getValue('plural');
}
label;
</g:evaluate>
<g:evaluate var="jvar_incidentcount" jelly="true">
var count = new GlideAggregate('incident');
count.addEncodedQuery("${jvar_incident}");
count.addAggregate('COUNT');
count.query();
var tasks = 0;
if(count.next())
tasks = count.getAggregate('COUNT');
tasks;
</g:evaluate>
<li><a href="#incident" data-toggle="tab">${jvar_incidentlabel} (<span id="incident_counter">${jvar_incidentcount}</span>)</a></li>
</j:if>
</j:if>
<j:if test="${jvar_sysparm_call_category != 'RFC'}">
<j:if test="${jvar_showproblemtab == true}">
<g:evaluate var="jvar_problem" jelly="true">
var prbQuery = "";
if (jelly.sysparm_call_category != "RFC") {
prbQuery = "active=true^known_error=true^u_service=" + jelly.sysparm_u_service;
if (jelly.sysparm_call_category == "Incident" || jelly.sysparm_call_category == 'Question') {
prbQuery += "^u_problem_category!=CSI action";
}
if (jelly.sysparm_call_category == "Complaint") {
prbQuery += "^u_problem_category=CSI action";
}
}
prbQuery;
</g:evaluate>
<g:evaluate var="jvar_problemlabel" jelly="true">
var label = "";
var gr = new GlideRecord('sys_documentation');
gr.addQuery('name', 'problem')
gr.addQuery('language', '${jvar_userlang}');
gr.addNullQuery('element');
gr.query();
if (gr.next()){
label = gr.getValue('plural');
}
label;
</g:evaluate>
<g:evaluate var="jvar_problemcount" jelly="true">
var count = new GlideAggregate('problem');
count.addEncodedQuery("${jvar_problem}");
count.addAggregate('COUNT');
count.query();
var tasks = 0;
if(count.next())
tasks = count.getAggregate('COUNT');
tasks;
</g:evaluate>
<li><a href="#problem" data-toggle="tab">${jvar_problemlabel} (<span id="problem_counter">${jvar_problemcount}</span>)</a></li>
</j:if>
</j:if>
<j:if test="${jvar_showreqitemtab == true}">
<g:evaluate var="jvar_reqitem" jelly="true">
var reqItemQuery = "opened_at>javascript:gs.daysAgo(30)^opened_by=" + jelly.sysparm_caller + "^ORopened_by=" + jelly.sysparm_business_user;
reqItemQuery += "^ORu_requested_for=" + jelly.sysparm_caller + "^ORu_requested_for=" + jelly.sysparm_business_user;
reqItemQuery;
</g:evaluate>
<g:evaluate var="jvar_reqitemlabel" jelly="true">
var label = "";
var gr = new GlideRecord('sys_documentation');
gr.addQuery('name', 'sc_req_item')
gr.addQuery('language', '${jvar_userlang}');
gr.addNullQuery('element');
gr.query();
if (gr.next()){
label = gr.getValue('plural');
}
label;
</g:evaluate>
<g:evaluate var="jvar_reqitemcount" jelly="true">
var count = new GlideAggregate('sc_req_item');
count.addEncodedQuery("${jvar_reqitem}");
count.addAggregate('COUNT');
count.query();
var tasks = 0;
if(count.next())
tasks = count.getAggregate('COUNT');
tasks;
</g:evaluate>
<li><a href="#reqitem" data-toggle="tab">${jvar_reqitemlabel} (<span id="sc_req_item_counter">${jvar_reqitemcount}</span>)</a></li>
</j:if>
</ul>
<div class="tab-content">
<div class="tab-pane" id="call">
<div id="iframe_call">
</div>
</div>
<div class="tab-pane" id="incident">
<div id="iframe_incident">
</div>
</div>
<div class="tab-pane" id="problem">
<div id="iframe_problem">
</div>
</div>
<div class="tab-pane" id="reqitem">
<div id="iframe_reqitem">
</div>
</div>
</div>
</div>
<script>
$j("ul.nav-tabs a").click(function () {
var activetab = this.getAttribute("href");
var activemodule = activetab.slice(1);
var spq = "";
var spt = "";
if (activemodule == "call") {
spq = "sysparm_query=${jvar_call}";
spt = "sysparm_table=u_call";
}
if (activemodule == "incident"){
spq = "sysparm_query=${jvar_incident}";
spt = "sysparm_table=incident";
}
if (activemodule == "problem") {
spq = "sysparm_query=${jvar_problem}";
spt = "sysparm_table=problem";
}
if (activemodule == "reqitem"){
spq = "sysparm_query=${jvar_reqitem}";
spt = "sysparm_table=sc_req_item";
}
var iframe_src = "/ITGSM_records.do?sysparm_view=related_info${AMP}sysparm_nostack=yes${AMP}"+spq+"${AMP}"+spt+"${AMP}sysparm_entity_type=call";

$j(".nav-tabs li").removeClass("active");
$j(this).parent().addClass("active");
$j(".tab-pane").removeClass("active");
$j("#iframe_"+activemodule).empty();

$j("<iframe>")
.attr("src",iframe_src)
.attr("width","100%")
.attr("height","500")
.attr("style","border:none;")
.appendTo("#iframe_"+activemodule)
.attr("</iframe>");
$j(activetab).addClass("active");
});
$j(document).ready(function() {
$j("a[href*=${jvar_defaulttab}]").parent().addClass("active");
$j("ul.nav-tabs li.active a").trigger('click');
});
</script>

</j:jelly>

 

 

1 ACCEPTED SOLUTION

-O-
Kilo Patron
Kilo Patron

I think this will do it:

- open the list of requested items
- switch to view "related_info"
- customize the list

I'm just guessing based on line

var iframe_src = "/ITGSM_records.do?sysparm_view=related_info${AMP}sysparm_nostack=yes${AMP}"  + spq + "${AMP}" + spt + "${AMP}sysparm_entity_type=call";

which contains parameter sysparm_view=related_info.

An option is to right-click on the filter text All > Opened > ... - ADMIN and select the "Open new window" menu item:

find_real_file.png

That should open the list in a new window. You will be able to customize the list there.

View solution in original post

7 REPLIES 7

-O-
Kilo Patron
Kilo Patron

I think this will do it:

- open the list of requested items
- switch to view "related_info"
- customize the list

I'm just guessing based on line

var iframe_src = "/ITGSM_records.do?sysparm_view=related_info${AMP}sysparm_nostack=yes${AMP}"  + spq + "${AMP}" + spt + "${AMP}sysparm_entity_type=call";

which contains parameter sysparm_view=related_info.

An option is to right-click on the filter text All > Opened > ... - ADMIN and select the "Open new window" menu item:

find_real_file.png

That should open the list in a new window. You will be able to customize the list there.

Thank you Janos for your reply. Yes I am able to get the related item view but I don't see any "gear box" to customize the fields as shown below. Is there some other way to do this?

find_real_file.png

You need to use the list configuration (right click on the column header area, Configure context menu -> List Layout menu item), not list personalisation (the gear icon):

find_real_file.png

Ankur Bawiskar
Tera Patron
Tera Patron

@anirban300 

Which fields you are talking about?

Are you talking about the tabs from the above image?

Can you explain what is your exact business requirement?

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader