Name
global.ProjectTopTaskValidator
Description
Top Task Validator for Project Management Diagnosis
Script
var ProjectTopTaskValidator = Class.create();
ProjectTopTaskValidator.prototype = {
initialize: function(projectData) {
this.projectData = projectData;
this.invalidTasksUnderThisTopTask = [];
this.tasksWithInvalidTopPortfolio = [];
this.tasksWithInvalidTopProgram = [];
this.validateThisTopTasksChildren();
this.tasksWithInvalidTopPortfolio = [];
this.validateTopPortfolio();
this.tasksWithInvalidTopProgram = [];
this.validateTopProgram();
},
validateThisTopTasksChildren: function() {
var tasks = this.projectData.getTasks();
var taskSysIdes = tasks['sys_ids'];
var topTaskId = this.projectData.getTopTaskId();
for (var i = 0; i < taskSysIdes.length; i++) {
if(tasks[taskSysIdes[i]].top_task != topTaskId) {
this.invalidTasksUnderThisTopTask.push(tasks[taskSysIdes[i]]);
}
}
},
validateTopPortfolio: function() {
var tasks = this.projectData.getTasks();
var taskSysIdes = tasks['sys_ids'];
var topPortfolioId = this.projectData.getTopPortfolioId();
for (var i = 0; i < taskSysIdes.length; i++) {
if(tasks[taskSysIdes[i]].top_portfolio != topPortfolioId) {
this.tasksWithInvalidTopPortfolio.push(tasks[taskSysIdes[i]]);
}
}
},
validateTopProgram: function() {
var tasks = this.projectData.getTasks();
var taskSysIdes = tasks['sys_ids'];
var topProgramId = this.projectData.getTopProgramId();
for (var i = 0; i < taskSysIdes.length; i++) {
if(tasks[taskSysIdes[i]].top_program != topProgramId) {
this.tasksWithInvalidTopProgram.push(tasks[taskSysIdes[i]]);
}
}
},
isTopTaskValid: function() {
var topTaskId = this.projectData.getTopTaskId();
var topTask = this.projectData.getTasks()[topTaskId];
if ( JSUtil.nil(topTask.parent) )
return true;
else
return false;
},
getInvalidTasksForThisTopTasks: function() {
return this.invalidTasksUnderThisTopTask;
},
getTasksWithInvalidTopPortfolio: function() {
return this.tasksWithInvalidTopPortfolio;
},
getTasksWithInvalidTopProgram: function() {
return this.tasksWithInvalidTopProgram;
},
invalidTasksPresent: function() {
if ( this.invalidTasksUnderThisTopTask.length > 0 )
return true;
else
return false;
},
tasksWithInvalidTopPortfolioPresent: function() {
if ( this.tasksWithInvalidTopPortfolio.length > 0 )
return true;
else
return false;
},
tasksWithInvalidTopProgramPresent: function() {
if ( this.tasksWithInvalidTopProgram.length > 0 )
return true;
else
return false;
},
type: 'ProjectTopTaskValidator'
};
Sys ID
c83e498f9f31220088265bb0657fcf90