Name
global.LoadRelatedListsOnSelectAjax
Description
Given the table name, load the visible related lists that will show on Default view.
Script
var LoadRelatedListsOnSelectAjax = Class.create();
LoadRelatedListsOnSelectAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getRelatedLists: function() {
var result;
if(!gs.hasRole("guided_tour_admin")) {
result = this.newItem("result");
result.setAttribute("related_list_key", '');
result.setAttribute("related_list_value", 'No Available Related Lists');
return;
}
var tableName = this.getParameter('jvar_table');
var gr = new GlideRecord('sys_ui_related_list');
var queryString = 'name=' + tableName + '^view=Default view';
gr.addEncodedQuery(queryString);
gr.query();
if (gr.next()) {
var gr2 = new GlideRecord('sys_ui_related_list_entry');
gr2.addQuery('list_id', gr.sys_id);
gr2.orderBy('position');
gr2.query();
while (gr2.next()) {
var listEntry = gr2.getValue('related_list');
result = this.newItem("result");
result.setAttribute("related_list_key", listEntry);
if (listEntry.startsWith('REL:')) {
result.setAttribute("related_list_value", this.getRelationshipName(listEntry));
}
else {
result.setAttribute("related_list_value", this.getDisplayValue(tableName, listEntry));
}
}
}
else {
result = this.newItem("result");
result.setAttribute("related_list_key", '');
result.setAttribute("related_list_value", 'No Available Related Lists');
}
},
getDisplayValue: function(tableName, listEntry) {
var gr = new GlideRecord(tableName);
var listKeys = gr.getRelatedLists().keySet().toArray();
var listValues = gr.getRelatedLists().values().toArray();
for (var i = 0; i < listKeys.length; ++i) {
if (listEntry == listKeys[i]) {
return listValues[i];
}
}
return "";
},
getRelationshipName: function(relatedList) {
var gr = new GlideRecord('sys_relationship');
var sysId = relatedList.split('REL:')[1];
if (gr.get(sysId)) {
return gr.name;
}
return "";
},
type: 'LoadRelatedListsOnSelectAjax'
});
Sys ID
236c149087211200deddb882a2e3ec84