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

Offical Documentation

Official Docs: