Though there were major architectural changes in QueryBuilder 2, basic usage remains the same. The only big change is about callbacks: there are no more callbacks ! everything is done via events, which also changed a bit.
In the following I will illustrate how to convert each 1.4 callback to 2.0 events.
onValidationError
1.4.x
$ ( ' #builder ' ). queryBuilder ({
/* ... */
onValidationError : function ( $rule , error , value , filter , operator ) {
if ( filter == ' name ' ) {
$rule . something ();
}
}
});
// OR
$ ( ' #builder ' ). queryBuilder ({
filters : [{
id : ' name ' ,
onValidationError : function ( $rule , error , value , filter , operator ) {
$rule . something ();
}
}]
});
2.x
$ ( ' #builder ' ). queryBuilder ({
/* ... */
});
$ ( ' #builder ' ). on ( ' validationError.queryBuilder ' , function ( e , node , error , value ) {
// node is a Rule or a Group
if ( node . filter && node . filter . id == ' name ' ) {
node . $el . something ();
}
});
onAfterAddGroup
1.4.x
$ ( ' #builder ' ). queryBuilder ({
/* ... */
onAfterAddGroup : function ( $group ) {
$group . something ();
}
});
2.x
$ ( ' #builder ' ). queryBuilder ({
/* ... */
});
$ ( ' #builder ' ). on ( ' afterAddGroup.queryBuilder ' , function ( e , group ) {
group . $el . something ();
});
onAfterAddRule
1.4.x
$ ( ' #builder ' ). queryBuilder ({
/* ... */
onAfterAddRule : function ( $rule ) {
$rule . something ();
}
});
2.x
$ ( ' #builder ' ). queryBuilder ({
/* ... */
});
$ ( ' #builder ' ). on ( ' afterAddRule.queryBuilder ' , function ( e , rule ) {
rule . $el . something ();
});
1.4.x
$ ( ' #builder ' ). queryBuilder ({
filters : [{
id : ' name ' ,
onAfterCreateRuleInput : function ( $rule , filter ) {
$rule . something ();
}
}]
});
2.x
$ ( ' #builder ' ). queryBuilder ({
/* ... */
});
$ ( ' #builder ' ). on ( ' afterCreateRuleInput.queryBuilder ' , function ( e , rule ) {
if ( rule . filter . id == ' name ' ) {
node . $el . something ();
}
});
onAfterChangeOperator
1.4.x
$ ( ' #builder ' ). queryBuilder ({
filters : [{
id : ' name ' ,
onAfterChangeOperator : function ( $rule , filter , operator ) {
if ( operator == ' equal ' ) {
$rule . something ();
}
}
}]
});
2.x
$ ( ' #builder ' ). queryBuilder ({
/* ... */
});
$ ( ' #builder ' ). on ( ' afterUpdateRuleOperator.queryBuilder ' , function ( e , rule ) {
if ( rule . filter . id == ' name ' && rule . operator . type == ' equal ' ) {
node . $el . something ();
}
});
onAfterSetValue
1.4.x
$ ( ' #builder ' ). queryBuilder ({
filters : [{
id : ' name ' ,
onAfterSetValue : function ( $rule , value , filter , operator ) {
$rule . something ( value );
}
}]
});
2.x
$ ( ' #builder ' ). queryBuilder ({
/* ... */
});
$ ( ' #builder ' ). on ( ' afterSetRuleValue.queryBuilder ' , function ( e , rule , value ) {
if ( rule . filter . id == ' name ' ) {
node . $el . something ( value );
}
});