Name

global.AgileBoardMetaDataCommonUtil

Description

No description available

Script

var AgileBoardMetaDataCommonUtil = Class.create();

AgileBoardMetaDataCommonUtil.basePreferencePrefix = 'com.snc.agile_board.';

AgileBoardMetaDataCommonUtil.maxSprintLimit = 10;

AgileBoardMetaDataCommonUtil.getMaxSprintLimit = function() {

  return this.maxSprintLimit;
};

AgileBoardMetaDataCommonUtil.getTabTitles = function() {

  return new JSON().encode({
  	BACKLOG_PLANNING: gs.getMessage('Backlog Planning'),
  	SPRINT_PLANNING: gs.getMessage('Sprint Planning'),
  	SPRINT_TRACKING: gs.getMessage('Sprint Tracking'),
  	PROGRAM_BACKLOG: gs.getMessage('Scrum Program Backlog'),
  	PROGRAM_BOARD: gs.getMessage('Scrum Program Board')
  });
};

AgileBoardMetaDataCommonUtil.isMultiTaskActive = function() {

  return pm.isActive('com.snc.sdlc.agile.multi_task');
};

AgileBoardMetaDataCommonUtil.isScrumProgramActive = function() {

  return pm.isActive('com.snc.sdlc.scrum_program');
};

AgileBoardMetaDataCommonUtil.isTestMgmtActive = function() {

  return pm.isActive('com.snc.test_management.2.0');
};

AgileBoardMetaDataCommonUtil.getPreference = function(pKey) {

  return gs.getPreference(this.basePreferencePrefix + '' + pKey);
};

AgileBoardMetaDataCommonUtil.setDefaultPreference = function(pKey) {

  var result = this.getPreference(pKey);

  if(result == null) {
  	gs.getUser().savePreference(this.basePreferencePrefix + pKey, true);
  	return true;
  } else {
  	return this.getBooleanPreference(pKey);
  }
};

AgileBoardMetaDataCommonUtil.getBooleanPreference = function(pKey, pVal) {

  return gs.getBooleanPreference(this.basePreferencePrefix + '' + pKey, pVal);
};

AgileBoardMetaDataCommonUtil.getBacklogListConfig = function() {

  return {
  	'epic.short_description': this.getBooleanPreference('backlog.config.epic.short_description', true),
  	'product.name': this.getBooleanPreference('backlog.config.product.name', false),
  	'assignment_group.name': this.getBooleanPreference('backlog.config.assignment_group.name', false),
  	'release.short_description': this.getBooleanPreference('backlog.config.release.short_description', false)
  };
};

AgileBoardMetaDataCommonUtil.getSprintPlaningListConfig = function() {

  return {
  	'epic.short_description': this.getBooleanPreference('sprint_planning.config.epic.short_description', true),
  	'product.name': this.getBooleanPreference('sprint_planning.config.product.name', false),
  	'assignment_group.name': false,
  	'release.short_description': this.getBooleanPreference('sprint_planning.config.release.short_description', false)
  };
};

AgileBoardMetaDataCommonUtil.getBacklogQueryForGroup = function(groupId) {
  var query = '^sys_class_name=rm_story^active=true^sprintISEMPTY';
  if(this.isMultiTaskActive())
  	query += '^original_task.active=true';
  if(JSUtil.notNil(groupId))
  	query += '^assignment_group=' + groupId;
  return query;
};

AgileBoardMetaDataCommonUtil.getSprintChoices = function() {

  return {
      DRAFT: '-6',
      PLANNING: '1',
      CURRENT: '2',
      COMPLETE: '3',
      CANCELLED: '4'
  };
};

AgileBoardMetaDataCommonUtil.canStartSprint = function(sprint){

  var sprintChoices = this.getSprintChoices();
  var sprintState = sprint.getValue('state');
  if (sprintState === sprintChoices.DRAFT || sprintState === sprintChoices.PLANNING) {
  	var count = new GlideAggregate('rm_sprint');
  	count.addQuery('sys_class_name', 'rm_sprint');
  	count.addQuery('state', sprintChoices.CURRENT);
  	count.addQuery('assignment_group', sprint.assignment_group);
  	count.addAggregate('COUNT');
  	count.query();
  	var currentSprints = 0;
  	if (count.next())
  		currentSprints = parseInt(count.getAggregate('COUNT'));

  	return (currentSprints === 0);
  }
  return false;
};

Sys ID

8625bd775bd2030036c32c1cf0f91af4

Offical Documentation

Official Docs: