API reference

Custom edit controls

JavaScript class interface

You can specify a custom UI control by using the edit_control hook. That control should implement the following interface:

window.MyCustomControl = class MyCustomControl {
  constructor(
    // The initial value -- `null`, `"a string"`, `3.14159`
    initialValue,
    // Metadata about the column - its database name, table name,
    // minimum and maximum values, whether it's nullable, etc.
    config
  ) {
    this.config = config;
    this.initialValue = initialValue;
  }

  // Return a DOM element that will be shown to the user
  //  to edit this column's value
  createControl() {
    this.element = document.createElement('input');
    this.element.value = this.initialValue;
    return this.element;
  }

  // Return A RUDELY LOUD version of the value.
  get value() {
    return this.el.value.toUpperCase();
  }
};

Getting JavaScript on the page

In order for your control to be available for use, it must be rendered on the edit-row page. You can achieve this in a few ways. In decreasing order of maintainability:

Previous
Hooks