Name
global.TaskPlanningBoardService
Description
No description available
Script
var TaskPlanningBoardService = Class.create();
TaskPlanningBoardService.prototype = {
initialize: function(gRequest) {
this.gRequest = gRequest;
this.assignmentGroupId = gRequest.getParameter("sysparm_assignment_group_id");
this.filterSearchKey = gRequest.getParameter("sysparm_search_key");
this.filterPageLimit = parseInt(gRequest.getParameter('sysparm_page_limit'));
this.filterPageNumber = parseInt(gRequest.getParameter('sysparm_page_number'));
},
getAssignmentGroups: function(){
var glideRecord = new GlideRecord('sys_user_group');
glideRecord.addNotNullQuery('sys_id');
glideRecord.addQuery("type",'CONTAINS',"1bff3b1493030200ea933007f67ffb6d"); //Agile Team
glideRecord = this._addFilterPageCondition(glideRecord, 'name');
glideRecord.query();
return this._encodeFilterReturnDataForAssignmentGroup(glideRecord,'sys_id','name');
},
getSprintsByAssignmentGroup: function(){
var glideRecord = new GlideRecord('rm_sprint');
glideRecord.addNotNullQuery('sys_id');
glideRecord.addQuery('assignment_group',this.assignmentGroupId);
glideRecord = this._addFilterPageCondition(glideRecord, 'short_description');
glideRecord.query();
return this._encodeFilterReturnData(glideRecord,'sys_id','short_description');
},
_addFilterPageCondition: function(glideRecord, searchField) {
if (this.filterSearchKey)
glideRecord.addQuery(searchField,'CONTAINS',this.filterSearchKey);
if (this.filterPageLimit && this.filterPageNumber)
glideRecord.chooseWindow((this.filterPageNumber - 1)*this.filterPageLimit, this.filterPageNumber*this.filterPageLimit);
glideRecord.orderBy(searchField);
return glideRecord;
},
_encodeFilterReturnDataForAssignmentGroup: function(glideRecord, idField, displayField) {
var data = [];
while(glideRecord.next()) {
var d = {};
d.id = glideRecord.getValue(idField);
d.text = glideRecord[displayField].getDisplayValue();
var sprint = new GlideRecord('rm_sprint');
sprint.addNotNullQuery('sys_id');
sprint.addQuery('assignment_group',d.id);
sprint.addQuery('state',"2"); // 'Current' status
sprint.orderBy('start_date');
sprint.query();
if(sprint.next()){
d.sprintId = sprint.getValue('sys_id');
d.sprintText = sprint.getValue('short_description');
}
else{
sprint = new GlideRecord('rm_sprint');
sprint.addNotNullQuery('sys_id');
sprint.addQuery('assignment_group',d.id);
sprint.addQuery('active','true');
sprint.orderBy('start_date');
sprint.query();
if(sprint.next()){
d.sprintId = sprint.getValue('sys_id');
d.sprintText = sprint.getValue('short_description');
}
}
data.push(d);
}
var count = glideRecord.getRowCount();
return (new JSON()).encode({
data: data,
total: count
});
},
_encodeFilterReturnData: function(glideRecord, idField, displayField) {
var data = [];
while(glideRecord.next()) {
var d = {};
d.id = glideRecord.getValue(idField);
d.text = glideRecord[displayField].getDisplayValue();
data.push(d);
}
var count = glideRecord.getRowCount();
return (new JSON()).encode({
data: data,
total: count,
searchKey : this.filterSearchKey
});
},
type: 'TaskPlanningBoardService'
};
Sys ID
a90ad4c60bbe2200d3fced3ab4673a98