Name
sn_grc.RelatedListIndicatorTemplateFilter
Description
Implements extension point global.RelatedListItemCandidateFilter
Script
var RelatedListIndicatorTemplateFilter = Class.create();
RelatedListIndicatorTemplateFilter.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 existingIndicatorTemplates = [];
while (m2m.next()) {
existingIndicatorTemplates.push(m2m.getValue(this.referencedFieldName));
}
var gr = new GlideRecord("sn_grc_content");
gr.get(this.parentRecordSysId);
var query = "";
switch (gr.getValue("sys_class_name")) {
case "sn_risk_definition":
query = "category=Risk Indicator Template^";
break;
default:
query = "category=Compliance Indicator Template^";
}
query += "active=true^sys_idNOT IN" + existingIndicatorTemplates;
return query;
},
handles: function(thing) {
return thing == "INDICATOR_TEMPLATE_FILTER";
},
type: 'RelatedListIndicatorTemplateFilter'
};
Sys ID
c00e9ba2531620103b1cddeeff7b12f5