Name
sn_change_cab.CABAbstractDefMeetSNC
Description
SNC Class containing common components for CAB Meetings and definitions. Customize using CABAbstractDefMeet
Script
var CABAbstractDefMeetSNC = Class.create();
CABAbstractDefMeetSNC.prototype = Object.extendsObject(CAB, {
initialize: function(_gr, _gs) {
CAB.prototype.initialize.apply(this, arguments);
this._cabDomUtil = new global.CABDomainUtil(this._gr);
},
getManager: function() {
return this._gr.getValue("manager");
},
getAllBoardMembers: function() {
var memberIds = this.getBoardMembers();
var groupMemberIds = this.getBoardGroupsMembers();
var delegateIds = this.getDelegates();
return new global.ArrayUtil().union(memberIds, groupMemberIds, delegateIds);
},
getBoardMembers: function() {
var userIds = [];
if (this._gr.board_members.nil())
return userIds;
var userGr = new GlideRecord("sys_user");
userGr.addActiveQuery();
userGr.addQuery("sys_id", "IN", this._gr.getValue("board_members"));
userGr.query();
while (userGr.next())
userIds.push(userGr.getUniqueValue());
return userIds;
},
// return an array of "sys_user" ids compiled from the groups specified in the
// board_groups list field
getBoardGroupsMembers: function() {
var userIds = [];
if (this._gr.board_groups.nil())
return userIds;
var groupMembers = new GlideAggregate("sys_user_grmember");
groupMembers.addQuery("group", "IN", this._gr.getValue("board_groups"));
groupMembers.addQuery("group.active", true);
groupMembers.addQuery("user.active", true);
groupMembers.groupBy("user");
groupMembers.query();
while (groupMembers.next())
userIds.push(groupMembers.getValue("user"));
return userIds;
},
getDelegates: function() {
if (this._gr.delegates.nil())
return [];
return this._gr.delegates.split(",");
},
// Determines if the current record is in the currently selected domain.
isInSelectedDomain: function() {
return this._cabDomUtil.isInSelectedDomain();
},
type: 'CABAbstractDefMeetSNC'
});
Sys ID
0466d2a9eb2022002a7a666cd206fefc