Skip to content

Commit 6665e9b

Browse files
committed
Fix #689 : default flags not honored
1 parent 02b6177 commit 6665e9b

File tree

2 files changed

+17
-25
lines changed

2 files changed

+17
-25
lines changed

src/core.js

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ QueryBuilder.prototype.setRoot = function(addRule, data, flags) {
352352
this.model.root.model = this.model;
353353

354354
this.model.root.data = data;
355-
this.model.root.__.flags = $.extend({}, this.settings.default_group_flags, flags);
355+
this.model.root.flags = $.extend({}, this.settings.default_group_flags, flags);
356356
this.model.root.condition = this.settings.default_condition;
357357

358358
this.trigger('afterAddGroup', this.model.root);
@@ -397,7 +397,7 @@ QueryBuilder.prototype.addGroup = function(parent, addRule, data, flags) {
397397
var model = parent.addGroup($group);
398398

399399
model.data = data;
400-
model.__.flags = $.extend({}, this.settings.default_group_flags, flags);
400+
model.flags = $.extend({}, this.settings.default_group_flags, flags);
401401
model.condition = this.settings.default_condition;
402402

403403
/**
@@ -538,11 +538,8 @@ QueryBuilder.prototype.addRule = function(parent, data, flags) {
538538
var $rule = $(this.getRuleTemplate(rule_id));
539539
var model = parent.addRule($rule);
540540

541-
if (data !== undefined) {
542-
model.data = data;
543-
}
544-
545-
model.__.flags = $.extend({}, this.settings.default_rule_flags, flags);
541+
model.data = data;
542+
model.flags = $.extend({}, this.settings.default_rule_flags, flags);
546543

547544
/**
548545
* Just after adding a rule
@@ -639,6 +636,8 @@ QueryBuilder.prototype.createRuleFilters = function(rule) {
639636
* @param {Rule} rule
640637
*/
641638
this.trigger('afterCreateRuleFilters', rule);
639+
640+
this.applyRuleFlags(rule);
642641
};
643642

644643
/**
@@ -677,6 +676,8 @@ QueryBuilder.prototype.createRuleOperators = function(rule) {
677676
* @param {QueryBuilder.Operator[]} operators - allowed operators for this rule
678677
*/
679678
this.trigger('afterCreateRuleOperators', rule, operators);
679+
680+
this.applyRuleFlags(rule);
680681
};
681682

682683
/**
@@ -735,6 +736,8 @@ QueryBuilder.prototype.createRuleInput = function(rule) {
735736
rule.value = self.getRuleInputValue(rule);
736737
rule._updating_value = false;
737738
}
739+
740+
this.applyRuleFlags(rule);
738741
};
739742

740743
/**
@@ -846,15 +849,10 @@ QueryBuilder.prototype.applyRuleFlags = function(rule) {
846849
var flags = rule.flags;
847850
var Selectors = QueryBuilder.selectors;
848851

849-
if (flags.filter_readonly) {
850-
rule.$el.find(Selectors.rule_filter).prop('disabled', true);
851-
}
852-
if (flags.operator_readonly) {
853-
rule.$el.find(Selectors.rule_operator).prop('disabled', true);
854-
}
855-
if (flags.value_readonly) {
856-
rule.$el.find(Selectors.rule_value).prop('disabled', true);
857-
}
852+
rule.$el.find(Selectors.rule_filter).prop('disabled', flags.filter_readonly);
853+
rule.$el.find(Selectors.rule_operator).prop('disabled', flags.operator_readonly);
854+
rule.$el.find(Selectors.rule_value).prop('disabled', flags.value_readonly);
855+
858856
if (flags.no_delete) {
859857
rule.$el.find(Selectors.delete_rule).remove();
860858
}
@@ -878,10 +876,9 @@ QueryBuilder.prototype.applyGroupFlags = function(group) {
878876
var flags = group.flags;
879877
var Selectors = QueryBuilder.selectors;
880878

881-
if (flags.condition_readonly) {
882-
group.$el.find('>' + Selectors.group_condition).prop('disabled', true)
883-
.parent().addClass('readonly');
884-
}
879+
group.$el.find('>' + Selectors.group_condition).prop('disabled', flags.condition_readonly)
880+
.parent().toggleClass('readonly', flags.condition_readonly);
881+
885882
if (flags.no_add_rule) {
886883
group.$el.find(Selectors.add_rule).remove();
887884
}

src/public.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,6 @@ QueryBuilder.prototype.setRules = function(data, options) {
348348

349349
this.clear();
350350
this.setRoot(false, data.data, this.parseGroupFlags(data));
351-
this.applyGroupFlags(this.model.root);
352351

353352
/**
354353
* Modifies data before the {@link QueryBuilder#setRules} method
@@ -391,8 +390,6 @@ QueryBuilder.prototype.setRules = function(data, options) {
391390
return;
392391
}
393392

394-
self.applyGroupFlags(model);
395-
396393
add(item, model);
397394
}
398395
}
@@ -433,8 +430,6 @@ QueryBuilder.prototype.setRules = function(data, options) {
433430
}
434431
}
435432

436-
self.applyRuleFlags(model);
437-
438433
/**
439434
* Modifies the Rule object generated from the JSON
440435
* @event changer:jsonToRule

0 commit comments

Comments
 (0)