Name

global.ScrumAjaxStateDetailsProvider

Description

ScrumAjaxStateDetailsProvider

Script

var ScrumAjaxStateDetailsProvider = Class.create();
ScrumAjaxStateDetailsProvider.prototype = Object.extendsObject(AbstractAjaxProcessor, {
 getStatesData: function() {
    var userLanguage = this.getParameter('sysparm_user_language');
    var table = this.getParameter('sysparm_table');
    var gr = new GlideRecord("sys_choice");
    gr.addQuery("name", table);
    gr.addQuery("element", "state");
    gr.addQuery("language", "en");
    gr.query();
    while (gr.next()){
       var label = gr["label"];
       var value = gr["value"];

       var states;
       if (table == "rm_story")
          states = gs.getProperty("com.snc.sdlc.scrum.pp.progress.story.states").split(",");
       else if (table == "rm_scrum_task")
          states = gs.getProperty("com.snc.sdlc.scrum.pp.progress.task.state").split(",");

       var active = false;
       var index = -1;
       for (var i = 0; i < states.length; i++)
          if (states[i] == value){
             active = true;
             index = i;
          }

       if (active) {
          if (userLanguage != "en") {
             var gr3 = new GlideRecord("sys_choice");
             gr3.addQuery("name", table);
             gr3.addQuery("element", "state");
             gr3.addQuery("language", userLanguage);
             gr3.addQuery("value", value);
             gr3.query();
             if (gr3.next())
                label = gr3["label"];
          }
          var item = this.newItem("state");
          item.setAttribute('label', label);
          item.setAttribute('value', value);
          item.setAttribute('index', index);
       }
    }
 },

 getStateLabel: function(value, userLanguage, table) {
    var gr = new GlideRecord("sys_choice");
    var label = "";
    gr.addQuery("name", table);
    gr.addQuery("element", "state");
    gr.addQuery("language", "en");
    gr.addQuery("value", value);
    gr.query();
    while (gr.next()){
       label = gr["label"];
       if (userLanguage != "en") {
          var gr2 = new GlideRecord("sys_choice");
          gr2.addQuery("name", table);
          gr2.addQuery("element", "state");
          gr2.addQuery("language", userLanguage);
          gr2.addQuery("value", value);
          gr2.query();
          if (gr2.next())
             label = gr2["label"];
       }
    }
    return label;
 },
  
  /**
   * Prevent public access to this processor
   */
  isPublic: function() {
  	return false;
  }
});

Sys ID

ed7c920737201000dadaa3549dbe5d4c

Offical Documentation

Official Docs: