Name

sn_customerservice.CaseTaskUtils

Description

No description available

Script

var CaseTaskUtils = Class.create();
CaseTaskUtils.prototype = {
  initialize: function() {},
  
  CASE_TABLE : CSMCaseTaskManagementConstants.CASE_TABLE,

  addUserToContributorList: function(caseId, userId) {
      userId += "";
      caseId += "";
      var updateCaseRecord = false;
      var caseGr = new GlideRecord(this.CASE_TABLE);
      if (caseGr.get(caseId)) {
          var ep = new GlideScriptedExtensionPoint().getExtensions(CSMCaseTaskManagementConstants.CASE_TASK_EXTENSION_POINT);
          for (var i = 0; i < ep.length; i++) {
              var point = ep[i];
              updateCaseRecord = updateCaseRecord || point.canUserBeAddedToContributorList(userId);
          }
          if (updateCaseRecord) {
              if (caseGr.contributor_users.nil())
                  caseGr.contributor_users = userId;
              else {
                  var contributor_array = caseGr.contributor_users.toString().split(",");
                  if (contributor_array.indexOf(userId) == -1) {
                      contributor_array.push(userId);
                      caseGr.contributor_users = contributor_array.join();
                  }
              }
              caseGr.update();
          }
      }
  },

  removeUserFromContributorList: function(caseId, userId) {
      userId += "";
      caseId += "";
      var updateCaseRecord = false;
      var caseGr = new GlideRecord(this.CASE_TABLE);
      if (caseGr.get(caseId)) {
          var ep = new GlideScriptedExtensionPoint().getExtensions(CSMCaseTaskManagementConstants.CASE_TASK_EXTENSION_POINT);
          for (var i = 0; i < ep.length; i++) {
              var point = ep[i];
              updateCaseRecord = updateCaseRecord || point.canUserBeRemovedFromContributorList(caseId, userId);
          }

          if (updateCaseRecord) {
              var contributors = caseGr.contributor_users.toString().split(",");
              var contributor_index = contributors.indexOf(userId);
              if (contributor_index > -1) {
                  contributors.splice(contributor_index, 1);
                  caseGr.contributor_users = contributors.join();
                  caseGr.update();
              }
          }
      }
  },

  addGroupToContributorList: function(caseId, groupId) {
      groupId += "";
      caseId += "";
      var updateCaseRecord = true;
      var caseGr = new GlideRecord(this.CASE_TABLE);
      if (caseGr.get(caseId)) {
          var ep = new GlideScriptedExtensionPoint().getExtensions(CSMCaseTaskManagementConstants.CASE_TASK_EXTENSION_POINT);
          for (var i = 0; i < ep.length; i++) {
              var point = ep[i];
              updateCaseRecord = updateCaseRecord && point.canGroupBeAddedToContributorList(groupId);

          }
          if (updateCaseRecord) {
              if (caseGr.contributor_groups.nil())
                  caseGr.contributor_groups = groupId;
              else {
                  var contributor_group_array = caseGr.contributor_groups.toString().split(",");
                  if (contributor_group_array.indexOf(groupId) == -1) {
                      contributor_group_array.push(groupId);
                      caseGr.contributor_groups = contributor_group_array.join();
                  }
              }
              caseGr.update();
          }
      }
  },

  removeGroupFromContributorList: function(caseId, groupId) {
      groupId += "";
      caseId += "";
      var updateCaseRecord = false;
      var caseGr = new GlideRecord(this.CASE_TABLE);
      if (caseGr.get(caseId)) {
          var ep = new GlideScriptedExtensionPoint().getExtensions(CSMCaseTaskManagementConstants.CASE_TASK_EXTENSION_POINT);
          for (var i = 0; i < ep.length; i++) {
              var point = ep[i];
              updateCaseRecord = updateCaseRecord || point.canGroupBeRemovedFromContributorList(caseId, groupId);
          }
          if (updateCaseRecord) {
              var contributorGroups = caseGr.contributor_groups.toString().split(",");
              var contributorGroup_index = contributorGroups.indexOf(groupId);
              if (contributorGroup_index > -1) {
                  contributorGroups.splice(contributorGroup_index, 1);
                  caseGr.contributor_groups = contributorGroups.join();
                  caseGr.update();
              }
          }
      }
  },

  type: 'CaseTaskUtils'
};

Sys ID

724e25470f9610105bc5e7b1d4767ef1

Offical Documentation

Official Docs: