Customizing the display of referenced entities

CaosDB WebUI supports the customized display of referenced entities using the ext_references module. The BUILD_MODULE_EXT_RESOLVE_REFERENCES build variable has to be set to ENABLED (see Getting Started with the Web Interface) in order to use this module.

You may then define your own JavaScript module to define how references to specific Records should be resolved. The module has to be located at a directory which is known to CaosDB WebUI; we recommend caosdb-webui/src/ext/js. Set the value of the BUILD_EXT_REFERENCES_CUSTOM_RESOLVER build variable to the name of this module. The module has to have a resolve function which takes an entity id as its only parameter and returns a reference_info object with the resolved custom reference as a text property. So the basic structure of the module should look like

var my_reference_resolver = new function () {
    // Has to be called ``resolve`` and has to take exactly one
    // string parameter: the id of the referenced entity.
    this.resolve = async function (id) {
        /*
         * find the string that the reference should be resolved to,
         * e.g., from the value of the entity's properties.
         */
        return {"text": new_reference_text}
    }
}

An example is located in caosdb-webui/src/core/js/reference_resolver/caosdb_default_person.js. It resolves any reference to a Person Record to the value of its firstname and lastname properties separated by a space and is active by default.