Name

global.ScrumAjaxAddReleaseTeamMembersProcessor

Description

ScrumAjaxAddReleaseTeamMembersProcessor

Script

var ScrumAjaxAddReleaseTeamMembersProcessor = Class.create();

ScrumAjaxAddReleaseTeamMembersProcessor.prototype = Object.extendsObject(AbstractAjaxProcessor, {

 insertTeamMembers: function (arrUserSysIds, strReleaseTeamSysId) {
    var recScrumReleaseTeamMember = new GlideRecord ("scrum_pp_release_team_member");
    for (var nSlot = 0; nSlot < arrUserSysIds.length; ++nSlot) {
       recScrumReleaseTeamMember.initialize ();
       recScrumReleaseTeamMember.name = arrUserSysIds[nSlot];
       recScrumReleaseTeamMember.default_sprint_points = 0;
       recScrumReleaseTeamMember.team = strReleaseTeamSysId;
       recScrumReleaseTeamMember.generated_by = "System";
       recScrumReleaseTeamMember.sys_domain = this.getTeamsDomain(strReleaseTeamSysId);
       recScrumReleaseTeamMember.insert ();
    }
 },

 getTeamsDomain: function (strReleaseTeamSysId) {
    var recScrumReleaseTeam = new GlideRecord("scrum_pp_team");
    recScrumReleaseTeam.get(strReleaseTeamSysId);
    return recScrumReleaseTeam.getValue('sys_domain');
 },

 getUserSysIdsFromGroup: function (strGroupSysId) {
    var arrUserSysIds = [];
    var recSysUserGrMember = new GlideRecord("sys_user_grmember");
    recSysUserGrMember.addQuery("group", strGroupSysId);
    recSysUserGrMember.query();
    while (recSysUserGrMember.next()) {
       arrUserSysIds.push (recSysUserGrMember.user + "");
    }     
    return arrUserSysIds;
 },
 
 getUserSysIdsFromTeam: function (strReleaseTeamSysId) {
    var arrUserSysIds = [];
    var recScrumReleaseTeamMember = new GlideRecord ("scrum_pp_release_team_member");
    recScrumReleaseTeamMember.addQuery ("team", strReleaseTeamSysId);
    recScrumReleaseTeamMember.query ();
    while (recScrumReleaseTeamMember.next ()) {
       arrUserSysIds.push (recScrumReleaseTeamMember.name + "");
    }
    return arrUserSysIds;
 },

 createReleaseTeamMembers: function () {
    var strTeamSysId = this.getParameter ("sysparm_sys_id");
    var arrGroupSysIds = this.getParameter("sysparm_groups").split(",");
    var arrUserSysIdsFromTeam = this.getUserSysIdsFromTeam (strTeamSysId);

    for (var nSlot = 0; nSlot < arrGroupSysIds.length; ++nSlot) {
       var strGroupSysId = arrGroupSysIds[nSlot];
       var arrUserSysIdsFromGroup = this.getUserSysIdsFromGroup (strGroupSysId);          
       var arrUserSysIds = new ArrayUtil().diff (arrUserSysIdsFromGroup, arrUserSysIdsFromTeam);          
       this.insertTeamMembers (arrUserSysIds, strTeamSysId);
    }
 },
  /**
   * Prevent public access to this processor
   */
  isPublic: function() {
  	return false;
  }
});

Sys ID

5f6bd922ef202000a7450fa3f8225680

Offical Documentation

Official Docs: