Name

sn_devstudio.FileTypeListControlHandler

Description

Handle the sys_ui_list_control type.

Script

var FileTypeListControlHandler = function(appId, appExplorerStructure) {
  var filesByNavKey = loadFiles();
  
  function loadFiles() {
  	var gr = new GlideRecord('sys_ui_list_control');
  	if(appId) {
  		gr.addQuery('sys_scope', appId);
  		gr.orderBy('sys_name');
  		gr.query();
  	}
  	
  	var filesByNavKey = {};
  	while (gr.next()) {
  		var file = fileForRecord(gr);
  		
  		var navigationKey = gr.getValue('sys_class_name');
  		if (!filesByNavKey[navigationKey])
  			filesByNavKey[navigationKey] = [];
  		filesByNavKey[navigationKey].push(file);
  	}
  	return filesByNavKey;
  }
  
  function fileForRecord(record) {
  	var sysId = record.getUniqueValue();
  	var name = record.getValue('sys_name');
  	
  	if (!name || name.trim() === '')
  		name = sysId;
  	
  	var recordType = record.getValue('sys_class_name');
  	var label = record.getValue('label');
  	
  	if (!label || label.trim() === '')
  		label = name;
  	
  	return FileTypeFileBuilder.newFile()
  		.withId(recordType + '.' + sysId)
  		.withName(label)
  		.withSysId(sysId)
  		.addCustom('tableName', record.getValue('name'))
  		.build();
  }
  
  function filesForKey(navigationKey) {
  	return filesByNavKey[navigationKey];
  }
  
  return {
  	filesForKey : filesForKey
  };
}

Sys ID

6d70a507c3500200ca27ff9c02d3ae6d

Offical Documentation

Official Docs: