Name

global.MyCompany

Description

No description available

Script

var MyCompany = Class.create();

MyCompany.prototype = Object.extendsObject(AbstractAjaxProcessor, {
process: function() {
    var item = this.newItem();
    item.setAttribute("banner_text", this.getBannerText());
    item.setAttribute("banner_image", this.getBannerSrc());
},

getBannerText: function() {
   return this.getReference("banner_text", "glide.product.description");
},

getBannerSrc: function() {
   var useConcourse = gs.getPreference("use.concourse", "false");
   if (useConcourse == "false")
     return this.getReference("banner_image", "glide.product.image");
   else
     return this.getReference("banner_image_light", "glide.product.image.light");
},

getReference: function(fieldName, fallbackProperty) {
    var company = user.getCompanyRecord();
    var s = this.recurseFind(company, fieldName, 0);

    if (s)
        return s;

    company = this.getPrimaryCompany();
    if (company) {
        var field = company.getElement(fieldName);
        var s = new String(field.getDisplayValue());
    if (s.length > 0)
        return s;
    }

    return gs.getProperty(fallbackProperty);
},

getPrimaryCompany: function() {
    var gr = new GlideRecord("core_company");
    gr.addQuery("primary", "true");
    gr.query();

    if (gr.next())
        return gr;

    return null;
},

recurseFind: function(company, fieldName, depth) {
    if (!company || company.toString().length == 0)
       return null;

    var field = company.getElement(fieldName);
    var temp = new String(field.getDisplayValue(0));

    if (temp.length > 0)
        return temp;

    if (company.parent.isNil())
        return null;

    var id = company.parent.toString();
    company = new GlideRecord('core_company');
    company.get(id);
    depth++;

    if (depth > 10) {
        gs.print("Possible recursive company loop with user " + user.name);
        return null;
    }

    return this.recurseFind(company, fieldName, depth);
},

type: "MyCompany"
});

Sys ID

f75e26d10a0a0bb9004e4e1c45d1f871

Offical Documentation

Official Docs: