Name

global.AbstractList

Description

No description available

Script

gs.include("PrototypeServer");

var AbstractList = Class.create();

AbstractList.prototype = {
  SYS_USER : 'sys_user',
  NAME : 'name',
  VIEW : 'view',
  PARENT : 'parent',
  SYS_UI_LIST : 'sys_ui_list',
  RELATIONSHIP : 'relationship',
  DOMAIN : 'sys_domain',
  NOT_FOUND_ID: "-1",

  initialize : function(table, view, viewName) {
      this.tableName = table;
      this.view = view;
      this.parentName = '';
      this.relationshipID = '';
      this.user = gs.getUserID();
      this.defaultViewID = new GlideScriptViewManager("").getID();
      this.domainID = GlideDomainSupport.getCurrentDomainValueOrGlobal();

      // mobile always gets the mobile view, regardless of what we asked for
      if (GlideMobileExtensions.getDeviceType() == 'mobile')
          this.viewName = 'Mobile';

      if (viewName)
          this.viewName = viewName.toLowerCase();
  },

  setParent : function(parent) {
      this.parentName = parent;
  },

  setRelationshipID : function(relID) {
      this.relationshipID = relID;
  },

  addParentQuery : function(gr) {
      if (this.parentName != '')
          gr.addQuery(this.PARENT, this.parentName);
      else
          gr.addNullQuery(this.PARENT);
  },

  addRelationshipQuery : function(gr) {
      if (this.relationshipID != '')
          gr.addQuery(this.RELATIONSHIP, this.relationshipID);
      else
          gr.addNullQuery(this.RELATIONSHIP);
  },

  domainQuery : function(gr, domainID) {
      GlideDomainSupport.queryLowestLevelDomain(gr,domainID);
  },

  getParents : function() {
      var answer = this._getParentArray(this.tableName);

      if (!GlidePluginManager.isRegistered('com.glideapp.staged_tables'))
          return answer;

      var s = new StagingEngine();
      var staged = s.getStagedTable(this.tableName);
      if (staged == null)
          return answer;

      var merged = new Array();
      merged.push(staged);
      var list = this._getParentArray(staged);
      if (list == null || answer == null)
          return merged;

      var maxlength = list.length;
      if (maxlength < answer.length)
          maxlength = answer.length;

      for (var i = 0; i < maxlength; i++) {
          if (i < answer.length)
              merged.push(answer[i]);

          if (i < list.length)
              merged.push(list[i]);
      }

      return merged;
  },

  _getParentArray : function(tableName) {
      var list = GlideDBObjectManager.getActionTables(tableName);
      if (list == null || list.size() < 2)
          return null;

      var answer = new Array();
      for (var i = 1; i < list.size(); i++)
          answer[i-1] = list.get(i);

      return answer;
  }
}        

Sys ID

7dd76e39c0a8016400e1a1086761d0cd

Offical Documentation

Official Docs: