fields: { text: 'Game', value: 'Id' },
data: function () {
return {
isLabel: false,
labelFields: { text: "text", value: "text" },
valueFields: { text: "text", value: "value" },
}
}
dropdownTemplate: {
create: () => {
return createElement("input", { attrs: { type: "text" } });
},
destroy: (args) => {
let dropdownlist = getComponent(
document.getElementById(args.elementId),
"dropdownlist"
);
if (dropdownlist) dropdownlist.destroy();
},
write: (args) => {
let ds =
args.field === "assigned_roles.id"
? this.roleOptions
: this.jobOptions;
let dropDownObj = new DropDownList({
dataSource: ds,
value: args.values,
fields: this.isLabel ? this.labelFields : this.valueFields,
allowFiltering: true,
filtering: function (e) {
var query = new Query();
query =
e.text != ""
? query.where("text", "contains", e.text, true)
: query;
e.updateData(ds, query);
},
change: (e) => {
this.$refs.querybuilder.$el.ej2_instances[0].notifyChange(
e.itemData.value,
e.element
);
},
});
dropDownObj.appendTo("#" + args.elements.id);
loadRuleByTextlabels() {
this.isLabel = true;
console.log("Load by labels");
this.$refs.querybuilder.ej2Instances.setRulesFromSql(
"assigned_roles.id = 'manager' AND job_description_user.job_description_id != 'Chief Sales Officer'"
);
},
loadRuleByValues() {
this.isLabel = false;
console.log("Load by values");
this.$refs.querybuilder.ej2Instances.setRulesFromSql(
"assigned_roles.id = 1 AND job_description_user.job_description_id != 'cso'"
); |