Name

global.ConsoleDomainHelper

Description

No description available

Script

var ConsoleDomainHelper = Class.create();
ConsoleDomainHelper.prototype = {
  initialize: function() {
  },
  
  isSysDefaults: function(elementName) {
  	if(elementName.startsWith("sys_"))
  		return true;
  	var defaults = ['number'];
  	return defaults.indexOf(elementName) > -1;
  },
  
  handleDisplayColumnOverride: function(displayColumn) {
  	var consoleId = displayColumn.pm_console;
  	var consoleTableRecord = new GlideRecord('pm_console_table');
  	consoleTableRecord.addQuery('pm_console', consoleId);
  	consoleTableRecord.query();
  	while(consoleTableRecord.next()) {
  		var consoleColumnRecord = new GlideRecord('pm_console_column');
  		consoleColumnRecord.addQuery('pm_console_table',consoleTableRecord.sys_id);
  		consoleColumnRecord.addQuery('pm_console_display_column',displayColumn.sys_overrides);
  		consoleColumnRecord.query();
  		while(consoleColumnRecord.next()) {
  			var newConsoleColumnRecord = new GlideRecord('pm_console_column');
  			newConsoleColumnRecord.initialize();
  			var skipFields = ['pm_console_display_column'];
  			this.cloneRecord(consoleColumnRecord, newConsoleColumnRecord, skipFields);
  			newConsoleColumnRecord.pm_console_display_column = displayColumn.sys_id;
  			var newConsoleColumnId = newConsoleColumnRecord.insert();
  			if(consoleColumnRecord.getValue("advanced") == 'true' || consoleColumnRecord.getValue("advanced") == '1')
  				this.createConsoleAdvancedColumn(consoleColumnRecord.sys_id, newConsoleColumnId);
  		}
  	}
  },
  
  handleConsoleColumnOverride: function(consoleColumn) {
  	if(consoleColumn.getValue("advanced") == 'true' || consoleColumn.getValue("advanced") == '1')
  		this.createConsoleAdvancedColumn(consoleColumn.sys_overrides, consoleColumn.sys_id);
  },
  
  isColumnAggregate: function(consoleColumnGr){
  	var gr,table,type,currencyField = true;
  	var consoleColumn = new GlideRecord('pm_console_column');
  	consoleColumn.addQuery('pm_console_display_column',consoleColumnGr.getValue('pm_console_display_column'));
  	consoleColumn.query();
  	while(consoleColumn.next()){
  		 table = consoleColumn.getValue('table');
  		
  		if(table){
  			gr = new GlideRecord(table);
  		    type = gr.getElement(consoleColumn.getValue('column')).getED().getInternalType();
  			if(type != 'currency' && type != 'decimal' && type != 'number'){
  				currencyField = false;
  				break;
  			}
  		}
  	}
  	return currencyField;
  },
  
  createConsoleAdvancedColumn: function(consoleColumnId, newConsoleColumnId) {
  	var consoleAdvancedColumn = new GlideRecord('pm_console_column_advanced');
  	consoleAdvancedColumn.get('pm_console_column',consoleColumnId);
  	while(consoleAdvancedColumn.isValidRecord()) {
  		var newAdvancedConsoleColumn = new GlideRecord('pm_console_column_advanced');
  		newAdvancedConsoleColumn.initialize();
  		var skipFields = ['pm_console_column'];
  		this.cloneRecord(consoleAdvancedColumn, newAdvancedConsoleColumn, skipFields);
  		newAdvancedConsoleColumn.pm_console_column = newConsoleColumnId;
  		return newAdvancedConsoleColumn.insert();
  	}
  },
  
  cloneRecord: function(record, cloneRecord, skipFields) {
  	var elements = record.getElements();
  	for (var i = 0; i < elements.size(); ++i) {
  		var element = elements.get(i);
  		var elementName = element.getName();
  		if(!this.isSysDefaults(elementName) && skipFields.indexOf(elementName) == -1) {
  			cloneRecord[elementName] = record.getValue(elementName);
  		}
  	}
  	return cloneRecord;
  },
  
  type: 'ConsoleDomainHelper'
};

Sys ID

71bf90ed0b223200a6acc93563673ae0

Offical Documentation

Official Docs: