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