Name

global.PlannedTaskMetadata

Description

Generic Metadata

Script

var PlannedTaskMetadata = Class.create();
PlannedTaskMetadata.prototype = {
  initialize: function(sysClassName, consoleId) {
      this.sysClassName = sysClassName;
      this.consoleId = consoleId;
  },
  
  metadata: function() {
      PPMDebug.log("Into PlannedTaskMetadata.metadata -> " + this.sysClassName + " | " + this.consoleId);
      var tableName = this.sysClassName;
      var title = (new GlideTableDescriptor(tableName)).getLabel();
      var childSysClass = 'planned_task';

      var pmConsole = new PPMConsole(tableName);
      if(!pmConsole.isValid()) {
          tableName = 'planned_task';
          var childTables = pmConsole.getChildTables();
          if(JSUtil.notNil(childTables) && childTables.length > 0) 
              childSysClass = childTables[0];
      }
      PPMDebug.log("tableName -> " + tableName + " | childSysClass -> " + childSysClass);
      
      if(JSUtil.notNil(this.consoleId)) {
          var console = new PlannedTaskCustomConsole(this.consoleId);
          title = console.name();
      }
      
      var columnConfig = (new SNC.PlannedTaskAPI()).entityMetadata(tableName, 'default');
      columnConfig = (new JSON()).decode(columnConfig);
  	
  	var glideSession = gs.getSession();
  	
      var metadata = {
          columnConfig: columnConfig,
          tooltipConfig: ['state', 'start_date', 'end_date', 'duration'],
          workbenchUrl: '#',
          canAddPhase: false,
          timeZone: glideSession.getTimeZoneName(),
          brMode: false,
          calculation_type: "automatic",
          childSysClass: childSysClass,
          title: title,
  		dateFormat: gs.getDateFormat(),
  		dateTimeFormat: gs.getDateTimeFormat(),
  		hideFirstColumnHeaderLabel : true,
  		field_mapping : this.getDateFromConsoleConfig(this.sysClassName)
      };
  	
  	if(GlidePluginManager.isActive('com.snc.financial_planning_pmo')) 
          metadata = this._setFinancialMetadata(metadata);

  	return metadata;
  },
  
  getDateFromConsoleConfig: function (sysClassName) {
      var ppmConsole = new PPMConsole(sysClassName, "default");
      return {
          start_date: ppmConsole.getJSONColumnForColumn('start_date'),
          end_date: ppmConsole.getJSONColumnForColumn('end_date'),
          duration: ppmConsole.getJSONColumnForColumn('duration'),
          wbs: ppmConsole.getJSONColumnForColumn('wbs'),            
          state: ppmConsole.getJSONColumnForColumn('state'),
          assigned_to: ppmConsole.getJSONColumnForColumn('assigned_to')
      };
  },
  
  _setFinancialMetadata: function(metadata) {
      metadata.currencySymbol = PPMCurrencyHelper.defaultCurrencySymbol();
      return metadata;
  },
  
  type: 'PlannedTaskMetadata'
};

Sys ID

f1ed9b749f413200598a5bb0657fcf92

Offical Documentation

Official Docs: