Name

sn_sow_problem.SOWProblemRouteUtil

Description

Implements extension point sn_sow_record.SOWRouteUtil

Script

var SOWProblemRouteUtil = Class.create();
SOWProblemRouteUtil.prototype = Object.extendsObject(sn_sow.SOWDefaultRecordRouteUtil, {
  initialize: function() {},

  getOtherRoutes: function(table, sysId) {
      if (sysId != "-1") {
          this.RESULT.relatedListRoutes.push({
              "route": "related_list_collection",
              "fields": {
                  "show": true,
                  "relatedListTabName": "fix_tasks"
              },
              "label": gs.getMessage("Fix Tasks"),
              "options": {}
          });
      }
      return;
  },

  getListsForRelatedListTab: function(relatedLists, table, tabName) {
      if (!relatedLists)
          return;
      var improvementIntiativesList = "REL:55cc7d9e73131300ed1831ff2ef6a7c9";
      var excludeLists = ["problem_task.problem"],
          lists = [];
      var fixTasks = gs.getProperty("problem.fix.records", "change_request.parent,rm_defect.parent,rm_release.parent,rm_enhancement.parent,sn_cim_register.source_id");
      if (fixTasks.includes("sn_cim_register.source_id")) {
          fixTasks = fixTasks.replace("sn_cim_register.source_id", improvementIntiativesList);
      }
      fixTasks = fixTasks.split(",");
      var fixTaskLists = [];
      if (fixTasks.length > 0) {
          fixTaskLists = relatedLists.filter(function(rl) {
              return fixTasks.indexOf(rl.value) > -1;
          });
          // Adding these to the exclude list so that they do not repeat on the related_list tab
          for (var i = 0; i < fixTaskLists.length; i++) {
              excludeLists.push(fixTaskLists[i].value);
          }
      }

      if (tabName === 'fix_tasks') {
          lists = fixTaskLists;
      } else if (tabName === 'related_list') {
          lists = relatedLists.filter(function(rl) {
              return excludeLists.indexOf(rl.value) === -1;
          });
      }

      return lists;
  },

  handles: function(table, sysId) {
      return table == "problem";
  },

  type: 'SOWProblemRouteUtil'
});

Sys ID

fea38b53eb723010e69783402a52281b

Offical Documentation

Official Docs: