0

Jquery Querybuilder 用のカスタム プラグインを作成しましたが、ファイル querybuilder-standalone 自体からルールの構造を編集した場合にのみ機能します。

私が作成したプラグインは、プラグインの not-group のようなボタンを各ルール内に追加します。このプラグインの機能は、この 'field = "value"' のような入力をこの 'UPPER( field ) = "VALUE"' に変換することです。このソリューションの問題点は、このクエリを再利用するには、クエリ ビルダーでルール自体の構造を変更する必要があることです。私が行う必要がある編集は次のとおりです。

元のコードは、ファイル query-builder.standalone.js の 2242 行にあります。

if (model.filter) {
    model.filter.to_upper = item.to_upper; /* <---This is the line I added myself */
    model.operator = self.getOperatorByType(item.operator, !options.allow_invalid);
    if (!model.operator) {
       model.operator = self.getOperators(model.filter)[0];
    }
}

この:

6215 行と 6232 行の間の元のコード

var id = self.getSQLFieldID(field, value);
//The following line us the code I need
var to_upper = data.to_upper;
/**
* Modifies the rule generated from the SQL expression
* @event changer:sqlToRule
* @memberof module:plugins.SqlSupport
* @param {object} rule
* @param {object} AST
* @returns {object}
*/
var rule = self.change('sqlToRule', {
   id: id,
   field: field,
   operator: opVal.op,
   value: opVal.val,
   //The following line us the code I need
   to_upper: to_upper
}, data);

「to_upper」は、デフォルトで false に設定し、関連するボタンがクリックされたときに true に設定するプロパティです。

これらのコードを query-builder 自体に追加せずにこれを行うにはどうすればよいですか?

4

1 に答える 1