Name
sn_grc.RelatedListTemplateFilter
Description
Implements extension point global.RelatedListItemCandidateFilter
Script
var RelatedListTemplateFilter = Class.create();
RelatedListTemplateFilter.prototype = {
initialize: function(tableName, parentFieldName, parentRecordSysId, referencedFieldName) {
this.tableName = tableName;
this.parentFieldName = parentFieldName;
this.parentRecordSysId = parentRecordSysId;
this.referencedFieldName = referencedFieldName;
},
getFilterQuery: function() {
var m2m = new GlideRecord(this.tableName);
m2m.addQuery(this.parentFieldName, this.parentRecordSysId);
m2m.query();
var existingTemplates = [];
while (m2m.next()) {
existingTemplates.push(m2m.getValue(this.referencedFieldName));
}
var contentGr = new GlideRecord('sn_grc_item');
contentGr.get(this.parentRecordSysId);
var unselectedList=[];
var gr = new GlideRecord('sn_grc_m2m_ind_temp_cont');
gr.addQuery('content', contentGr.getValue('content'));
gr.addQuery('indicator_template', 'NOT IN', existingTemplates);
gr.query();
while(gr.next())
unselectedList.push(gr.getValue('indicator_template'));
var type = contentGr.getValue('sys_class_name') == 'sn_risk_risk'?'category=Risk Indicator Template^':'category:Compliance Indicator Template^';
var query = type+"active=true^sys_idIN" + unselectedList.join(",");
return query;
},
handles: function(thing) {
return thing == "TEMPLATE_FILTER";
},
type: 'RelatedListTemplateFilter'
};
Sys ID
cd9d270573a12010ec95d11ee2f6a7ee