Name
global.AgileBoardVTBHelper
Description
No description available
Script
var AgileBoardVTBHelper = Class.create();
AgileBoardVTBHelper.prototype = {
initialize: function() {
},
getBoardConfiguration: function(config, owner) {
var vtbBoard = GlideVTBBoardBuilder.guided(config.tableName, config.laneField)
.withOwner(owner)
.withFilter(config.filter)
.withName(config.name)
.withExcludeChildTableLanes(true);
if (JSUtil.notNil(config.swimLaneField))
vtbBoard.withSwimLaneField(config.swimLaneField)
.withSwimLaneFilter(config.swimLaneFilter);
if (!gs.nil(config.showEmptyLane))
vtbBoard.showEmptyValueLane();
if (!gs.nil(config.laneFilter))
vtbBoard.withLaneFilter(config.laneFilter);
return vtbBoard;
},
createBoard: function(config, owner) {
var vtbBoard = this.getBoardConfiguration(config, owner);
if(config.hidePicker)
vtbBoard.hideBoardPicker();
for(var i = 0; i< config.members.length;i++) {
vtbBoard.addMember(config.members[i]);
}
var boardId = vtbBoard.create();
return boardId;
},
getSysChoices : function(tableName, column) {
var choices = new GlideSysChoice(tableName, column);
var recChoices = choices.getChoices();
return recChoices;
},
trimBoardNameForGroup: function(groupName) {
var name = gs.getMessage("{0}: {1}", [groupName, 'Current Sprint']);
return this.trimBoardName(name);
},
trimBoardName: function(name) {
var tableDescriptor = new GlideTableDescriptor('vtb_board');
var elementDecriptor = tableDescriptor.getElementDescriptor('name');
var maxLength = elementDecriptor.getLength();
if(maxLength < name.length) {
name = name.substring(0, maxLength - 3) + '...';
}
return name;
},
findBoardOwner: function(groupId, members, roleNames) {
if(members.length === 0)
return gs.getUserID();
for (var j = 0; j < roleNames.length; j++) {
if(gs.hasRole(roleNames[j]))
return gs.getUserID();
}
var roleMap = {};
var roleGr = new GlideRecord('sys_user_role');
roleGr.addQuery('name', 'IN', roleNames.join(','));
roleGr.query();
while(roleGr.next()){
roleMap[roleGr.getValue('name')] = roleGr.getValue('sys_id');
}
for(var i = 0; i < roleNames.length; i++) {
var member = this._findRoleMember(roleNames[i], members, roleMap);
if(JSUtil.notNil(member))
return member;
}
return members[0];
},
_findRoleMember: function(role, members, roleMap) {
var member = new GlideRecord("sys_user_has_role");
member.orderBy('user');
member.addQuery('user', 'IN', members.join(','));
member.addQuery('role', roleMap[role]);
member.setLimit(1);
member.query();
if(member.next()) {
return member.user;
}
return null;
},
type: 'AgileBoardVTBHelper'
};
AgileBoardVTBHelper.isGroupMember = function(groupId, userId) {
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group', groupId);
gr.addQuery('user', userId);
gr.query();
return (gr.hasNext());
};
Sys ID
22793aa55b20130036c32c1cf0f91af0