# core.customizeInstances
Extend a definition instance viewer capabilities by implementing a range of customizations, such as controlling the instance's display, determining field visibility, adjusting box sizes, and more.
# Usage:
core.customizeInstances("<definition-name>", function (instance, presenter) {
...
})
Arguments:
Argument | Description | Required |
---|---|---|
definition-name | Refers to the name of the specific definition to which you want to apply the customization. | YES |
function | Callback function responsible to implement the new functionality | YES |
Function arguments:
Argument | Description |
---|---|
instance | The instance model. |
presenter | The instance presenter |
# Examples:
The code snippet in this example introduces a new button when editing a Ticket's instance. When clicked, it will automatically change the value of the 'State' field to 'Done' and save the instance.
cob.custom.customize.push(function (core, utils, ui) {
const DEFINITION = "Tickets";
core.customizeInstances(DEFINITION, function(instance, presenter) {
if (!instance.isNew()) {
const closeBtn = "<button class='js-close-btn btn btn-small btn-primary' style='margin-top: 20px;'><i class='icon-ok mr-1'></i><span>Close</span></button>";
document.querySelector(".js-sidenav-btn-container").insertAdjacentHTML("beforeend", closeBtn);
document.querySelector(".js-close-btn").addEventListener("click", () => {
presenter.findFieldPs((fp) => fp.field.fieldDefinition.name === "State")[0].setValue("Done");
presenter.saveInstance(() => {
core.navigateBack();
});
});
}
});
});
