Name
global.SprintPlanningMetaDataService
Description
No description available
Script
var SprintPlanningMetaDataService = Class.create();
SprintPlanningMetaDataService.getSprintsData = function(groupId) {
var sprintsDataJson = {};
var showSprintsWithoutDatesMsg = false;
var sprints = [];
var canStartFlag = true;
var isMultiTaskActive = AgileBoardMetaDataCommonUtil.isMultiTaskActive();
var sprint = new GlideRecord('rm_sprint');
sprint.addQuery('sys_class_name', 'rm_sprint');
sprint.addActiveQuery();
if (JSUtil.notNil(groupId))
sprint.addQuery('assignment_group', groupId);
sprint.orderBy('start_date');
sprint.chooseWindow(0, AgileBoardMetaDataCommonUtil.getMaxSprintLimit(), true);
sprint.query();
sprintsDataJson['sprintCount'] = sprint.getRowCount();
var sprintChoices = AgileBoardMetaDataCommonUtil.getSprintChoices();
while (sprint.next()) {
if (sprint.start_date.nil() || sprint.end_date.nil()) {
showSprintsWithoutDatesMsg = true;
continue;
}
var canChangeState = sprint.state.canWrite();
var sprintObj = {};
var sysId = sprint.getUniqueValue();
var startDate = sprint.start_date.getGlideObject().getLocalDate().getDisplayValue();
var endDate = sprint.end_date.getGlideObject().getLocalDate().getDisplayValue();
var query = '^ORDERBYglobal_rank^sprint=' + sysId;
var actualPoints = sprint.getValue('actual_points');
var storyPoints = sprint.getValue('story_points');
var sprintState = sprint.getValue('state');
if (JSUtil.notNil(groupId)) {
query += '^assignment_group=' + groupId;
}
sprintObj.name = sprint.getDisplayValue('short_description');
sprintObj.group_capacity = sprint.getValue('team_points');
sprintObj.sysId = sysId;
sprintObj.dates = gs.getMessage('{0} - {1}', [startDate, endDate]);
sprintObj.summary = gs.getMessage('List of stories for {0}', [sprintObj.name]);
sprintObj.table = 'rm_story';
sprintObj.view = 'scrum';
sprintObj.listView = isMultiTaskActive ? 'unified_agile_board' : 'agile_board';
sprintObj.query = query;
sprintObj.canComplete = canChangeState && (sprintState === sprintChoices.CURRENT);
sprintObj.isCurrentSprint = (sprintState === sprintChoices.CURRENT);
sprintObj.pageSize = parseInt(gs.getUser().getPreference('rowcount'));
sprintObj.storyPoints = JSUtil.nil(storyPoints) ? 0 : storyPoints;
sprintObj.actual_points = JSUtil.nil(actualPoints) ? 0 : actualPoints;
if (canChangeState && canStartFlag) {
sprintObj.canStartSprint = AgileBoardMetaDataCommonUtil.canStartSprint(sprint);
if (sprintObj.canStartSprint)
canStartFlag = false;
}
sprints.push(sprintObj);
}
sprintsDataJson['sprints'] = sprints;
sprintsDataJson['sprintNullDateMsg'] = showSprintsWithoutDatesMsg;
return sprintsDataJson;
};
SprintPlanningMetaDataService.getSprintPlanningData = function(groupId) {
if (JSUtil.notNil(groupId))
gs.getUser().setPreference('com.snc.agile_board.group_id', groupId);
var storyGr = new GlideRecord('rm_story');
var sprintGr = new GlideRecord('rm_sprint');
var epicGr = new GlideRecord('rm_epic');
var themeGr = new GlideRecord('scrum_theme');
var sprintsDataJson = this.getSprintsData(groupId);
var groups = sprintsDataJson['sprints'];
var query = '^ORDERBYglobal_rank' + AgileBoardMetaDataCommonUtil.getBacklogQueryForGroup(groupId);
var isMultiTaskActive = AgileBoardMetaDataCommonUtil.isMultiTaskActive();
var pageSize = parseInt(gs.getUser().getPreference('rowcount'));
var searchFilterFields = ['short_description', 'number'];
if (isMultiTaskActive)
searchFilterFields.push('original_task.number');
var metadata;
storyGr.initialize();
metadata = {
backlog: {
table: 'rm_story',
view: 'scrum',
listView: isMultiTaskActive ? 'unified_agile_board' : 'agile_board',
query: query,
pageSize: pageSize
},
totalSprintCount: sprintsDataJson['sprintCount'],
maxSprintLimit: AgileBoardMetaDataCommonUtil.getMaxSprintLimit(),
groups: groups,
canWrite: storyGr.canWrite(),
canAddToSprint: storyGr.sprint.canWrite(),
canCreateStory: storyGr.canCreate(),
canCreateSprint: sprintGr.canCreate(),
canCreateEpic: epicGr.canCreate(),
canCreateTheme: themeGr.canCreate(),
showStoryContextMenu: storyGr.canWrite(),
sprintChoices: AgileBoardMetaDataCommonUtil.getSprintChoices(),
listConfig: AgileBoardMetaDataCommonUtil.getSprintPlaningListConfig(),
transformField: isMultiTaskActive ? 'original_task.number' : 'number',
isMultiTaskActive: isMultiTaskActive,
searchFilter: searchFilterFields,
searchPlaceHolder: gs.getMessage('Search'),
showSprintMessageNullDate: sprintsDataJson['sprintNullDateMsg']
};
return metadata;
};
Sys ID
d8db4ec05b26030036c32c1cf0f91aca