js/FilterLeaf.js
function cleanUpAndMoveOn(evt) {
    var el = evt.target;

    // remove `error` CSS class, which may have been added by `FilterLeaf.prototype.invalid`
    el.classList.remove('filter-tree-error');

    // set or remove 'warning' CSS class, as per el.value
    FilterNode.setWarningClass(el);

    if (el === this.view.column) {
        // rebuild operator list according to selected column name or type, restoring selected item
        makeOpMenu.call(this, el.value);
    }

    if (el.value) {
        // find next sibling control, if any
        if (!el.multiple) {
            while ((el = el.nextElementSibling) && (!('name' in el) || el.value.trim() !== '')); // eslint-disable-line curly
        }

        // and click in it (opens select list)
        if (el && el.value.trim() === '') {
            el.value = ''; // rid of any white space
            FilterNode.clickIn(el);
        }
    }

    // forward the event to the application's event handler
    if (this.eventHandler) {
        this.eventHandler(evt);
    }
}
function cleanUpAndMoveOn(evt) {
    var el = evt.target;

    // remove `error` CSS class, which may have been added by `FilterLeaf.prototype.invalid`
    el.classList.remove('filter-tree-error');

    // set or remove 'warning' CSS class, as per el.value
    FilterNode.setWarningClass(el);

    if (el === this.view.column) {
        // rebuild operator list according to selected column name or type, restoring selected item
        makeOpMenu.call(this, el.value);
    }

    if (el.value) {
        // find next sibling control, if any
        if (!el.multiple) {
            while ((el = el.nextElementSibling) && (!('name' in el) || el.value.trim() !== '')); // eslint-disable-line curly
        }

        // and click in it (opens select list)
        if (el && el.value.trim() === '') {
            el.value = ''; // rid of any white space
            FilterNode.clickIn(el);
        }
    }

    // forward the event to the application's event handler
    if (this.eventHandler) {
        this.eventHandler(evt);
    }
}
function cleanUpAndMoveOn ( evt ) { var el = evt . target ; // remove `error` CSS class, which may have been added by `FilterLeaf.prototype.invalid` el . classList . remove ( 'filter-tree-error' ) ; // set or remove 'warning' CSS class, as per el.value FilterNode . setWarningClass ( el ) ; if ( el === this . view . column ) { // rebuild operator list according to selected column name or type, restoring selected item makeOpMenu . call ( this , el . value ) ; } if ( el . value ) { // find next sibling control, if any if ( ! el . multiple ) { while ( ( el = el . nextElementSibling ) && ( ! ( 'name' in el ) || el . value . trim ( ) !== '' ) ) ; // eslint-disable-line curly } // and click in it (opens select list) if ( el && el . value . trim ( ) === '' ) { el . value = '' ; // rid of any white space FilterNode . clickIn ( el ) ; } } // forward the event to the application's event handler if ( this . eventHandler ) { this . eventHandler ( evt ) ; } }
`change` event handler for all form controls.
Rebuilds the operator drop-down as needed.
Removes error CSS class from control.
Adds warning CSS class from control if blank; removes if not blank.
Adds warning CSS class from control if blank; removes if not blank.
Moves focus to next non-blank sibling control.
@this {FilterLeaf}
change event handler for all form controls . Rebuilds the operator drop - down as needed . Removes error CSS class from control . Adds warning CSS class from control if blank ; removes if not blank . Adds warning CSS class from control if blank ; removes if not blank . Moves focus to next non - blank sibling control .