Name
global.FxCurrencyConfigFieldChoiceListGenerator
Description
No description available
Script
var FxCurrencyConfigFieldChoiceListGenerator = Class.create();
FxCurrencyConfigFieldChoiceListGenerator.prototype = {
initialize: function(numLevels) {
this.numLevels = numLevels || 3;
},
process: function(targetTable) {
var fields = this.generate(this.numLevels, targetTable);
var choiceList = new GlideChoiceList();
for (var i = 0; i < fields.length; ++i)
choiceList.add(fields[i].name, fields[i].label);
return choiceList;
},
generate: function(numLevels, targetTable) {
var fields = [];
this._addFields(numLevels, fields, targetTable);
fields.sort(function(first, second) {
return String.localeCompare(first.label, second.label);
});
return fields;
},
shouldAddField: function(ed) {
return !ed.isReference();
},
shouldRecurse: function(ed) {
return ed.isReference();
},
_addFields: function(level, fields, tableName, prefix) {
var td = GlideTableDescriptor.get(tableName);
if (!td.isValid())
return;
var eds = td.getSchemaList();
for (var i = 0; i < eds.size(); ++i) {
var ed = eds.get(i);
var name = (prefix) ? prefix + '.' + ed.getName() : ed.getName() + '';
if (this.shouldAddField(ed)) {
var label = ed.getLabel() + ' [' + name + ']';
fields.push({"name" : name, "label" : label});
}
if (this.shouldRecurse(ed) && level > 0) {
this._addFields(level - 1, fields, ed.getReference(), name);
}
}
},
type: 'FxCurrencyConfigFieldChoiceListGenerator'
};
Sys ID
50788cc1f3c333009f6f301e73612b40