Name
global.ScrumAjaxDataUpdateCheckerStory
Description
ScrumAjaxDataUpdateCheckerStory
Script
var ScrumAjaxDataUpdateCheckerStory = Class.create();
ScrumAjaxDataUpdateCheckerStory.prototype = Object.extendsObject(AbstractAjaxDataUpdateChecker, {
getNewValues: function(itemID){
var complete = "3";
var draft = "-6";
var ready = "1";
var work_in_progress = "2";
var cancelled = "4";
var counts = {};
counts[complete] = 0;
counts[draft] = 0;
counts[ready] = 0;
counts[work_in_progress] = 0;
counts["blocked"] = 0;
var totalCount = 0;
var gr = new GlideRecord("rm_scrum_task");
gr.addQuery('parent', itemID);
gr.query();
while (gr.next()){
if (gr.state != cancelled){
counts[""+gr.state] = counts[""+gr.state] + 1;
if (gr.blocked)
counts["blocked"] = counts["blocked"] + 1;
totalCount++;
}
}
var blockedString = "false";
var blockedReason = "";
if (counts["blocked"] == totalCount){
blockedString = "true";
blockedReason = gs.getMessage("Blocked by Tasks");
}
if (counts[draft] == totalCount)
return [draft, blockedString, blockedReason];
if (counts[ready] == totalCount)
return [ready, blockedString, blockedReason];
if (counts[complete] == totalCount)
return [complete, blockedString, blockedReason];
return [work_in_progress, blockedString, blockedReason];
},
getChangeMessages: function(gr, values){
var result = [];
if (gr.state != values[0])
result[result.length] = gs.getMessage("State");
if ((""+gr.blocked) != values[1])
result[result.length] = gs.getMessage("Blocked Status");
if (gr.blocked_reason != values[2])
result[result.length] = gs.getMessage("Blocked Reason");
return result;
},
getTableName: function(){
return "rm_story";
}
});
Sys ID
10290eb037201000dadaa3549dbe5d50