From 8d8f2a5154b4436312d9cfd60e772e6b617a874e Mon Sep 17 00:00:00 2001
From: Stephen Jones
Date: Thu, 15 Sep 2016 15:01:09 -0400
Subject: [PATCH 1/2] add ogc-filter plugin
---
bower.json | 11 +-
dist/css/query-builder.dark.css | 35 +-
dist/css/query-builder.dark.min.css | 2 +-
dist/css/query-builder.default.css | 35 +-
dist/css/query-builder.default.min.css | 2 +-
dist/i18n/query-builder.ar.js | 3 +-
dist/i18n/query-builder.az.js | 3 +-
dist/i18n/query-builder.cs.js | 3 +-
dist/i18n/query-builder.en.js | 3 +-
dist/i18n/query-builder.fr.js | 3 +-
dist/i18n/query-builder.pl.js | 3 +-
dist/i18n/query-builder.ru.js | 3 +-
dist/i18n/query-builder.tr.js | 3 +-
dist/i18n/query-builder.ua.js | 3 +-
dist/i18n/query-builder.zh-CN.js | 3 +-
dist/js/query-builder.js | 1142 +++----------------
dist/js/query-builder.min.js | 4 +-
dist/js/query-builder.standalone.js | 1328 +++++------------------
dist/js/query-builder.standalone.min.js | 4 +-
dist/scss/default.scss | 5 -
tests/index.html | 1 +
21 files changed, 420 insertions(+), 2179 deletions(-)
diff --git a/bower.json b/bower.json
index 104ba6c1..8a3d289c 100644
--- a/bower.json
+++ b/bower.json
@@ -1,11 +1,9 @@
{
"name": "jQuery-QueryBuilder",
"version": "2.3.3",
- "authors": [{
- "name": "Damien \"Mistic\" Sorel",
- "email": "contact@git.strangeplanet.fr",
- "homepage": "http://www.strangeplanet.fr"
- }],
+ "authors": [
+ "[object Object]"
+ ],
"description": "jQuery plugin for user friendly query/filter creator",
"main": [
"dist/js/query-builder.js",
@@ -47,6 +45,7 @@
"composer.json",
"package.json",
"Gruntfile.js",
- "CONTRIBUTING.md"
+ "CONTRIBUTING.md",
+ "test"
]
}
diff --git a/dist/css/query-builder.dark.css b/dist/css/query-builder.dark.css
index 614972c2..ce092c67 100644
--- a/dist/css/query-builder.dark.css
+++ b/dist/css/query-builder.dark.css
@@ -4,7 +4,7 @@
* Licensed under MIT (http://opensource.org/licenses/MIT)
*/
-.query-builder .rules-group-container, .query-builder .rule-container, .query-builder .rule-placeholder {
+.query-builder .rules-group-container, .query-builder .rule-container {
position: relative;
margin: 4px 0;
border-radius: 5px;
@@ -15,7 +15,7 @@
.query-builder .rule-container .rule-filter-container,
.query-builder .rule-container .rule-operator-container,
-.query-builder .rule-container .rule-value-container, .query-builder .error-container, .query-builder .drag-handle {
+.query-builder .rule-container .rule-value-container, .query-builder .error-container {
display: inline-block;
margin: 0 5px 0 0;
vertical-align: middle;
@@ -95,34 +95,3 @@
.query-builder .rules-list > *:last-child::after {
display: none;
}
-
-.query-builder .error-container + .tooltip .tooltip-inner {
- color: #F22 !important;
-}
-
-.query-builder p.filter-description {
- margin: 5px 0 0 0;
- background: rgba(0, 170, 255, 0.2);
- border: 1px solid #346F7B;
- color: #AAD1E4;
- border-radius: 5px;
- padding: 2.5px 5px;
- font-size: .8em;
-}
-
-.query-builder .rules-group-header [data-invert] {
- margin-left: 5px;
-}
-
-.query-builder .drag-handle {
- cursor: move;
- vertical-align: middle;
- margin-left: 5px;
-}
-.query-builder .dragged {
- opacity: .5;
-}
-.query-builder .rule-placeholder {
- border: 1px dashed #BBB;
- opacity: .7;
-}
diff --git a/dist/css/query-builder.dark.min.css b/dist/css/query-builder.dark.min.css
index f81dbb9d..e928d323 100644
--- a/dist/css/query-builder.dark.min.css
+++ b/dist/css/query-builder.dark.min.css
@@ -4,4 +4,4 @@
* Licensed under MIT (http://opensource.org/licenses/MIT)
*/
-.query-builder .rule-container,.query-builder .rule-placeholder,.query-builder .rules-group-container{position:relative;margin:4px 0;border-radius:5px;padding:5px;border:1px solid #111;background:rgba(40,40,40,.9)}.query-builder .drag-handle,.query-builder .error-container,.query-builder .rule-container .rule-filter-container,.query-builder .rule-container .rule-operator-container,.query-builder .rule-container .rule-value-container{display:inline-block;margin:0 5px 0 0;vertical-align:middle}.query-builder .rules-group-container{padding:10px 10px 6px;border:1px solid #00164A;background:rgba(50,70,80,.5)}.query-builder .rules-group-header{margin-bottom:10px}.query-builder .rules-group-header .group-conditions .btn.readonly:not(.active),.query-builder .rules-group-header .group-conditions input[name$=_cond]{display:none}.query-builder .rules-group-header .group-conditions .btn.readonly{border-radius:3px}.query-builder .rules-list{list-style:none;padding:0 0 0 15px;margin:0}.query-builder .rule-value-container{border-left:1px solid #DDD;padding-left:5px}.query-builder .rule-value-container label{margin-bottom:0;font-weight:400}.query-builder .rule-value-container label.block{display:block}.query-builder .rule-value-container input[type=number],.query-builder .rule-value-container input[type=text],.query-builder .rule-value-container select{padding:1px}.query-builder .error-container{display:none;cursor:help;color:red}.query-builder .has-error{background-color:#322;border-color:#800}.query-builder .has-error .error-container{display:inline-block!important}.query-builder .rules-list>::after,.query-builder .rules-list>::before{content:'';position:absolute;left:-10px;width:10px;height:calc(50% + 4px);border-color:#222;border-style:solid}.query-builder .rules-list>::before{top:-4px;border-width:0 0 2px 2px}.query-builder .rules-list>::after{top:50%;border-width:0 0 0 2px}.query-builder .rules-list>:first-child::before{top:-12px;height:calc(50% + 14px)}.query-builder .rules-list>:last-child::before{border-radius:0 0 0 4px}.query-builder .rules-list>:last-child::after{display:none}.query-builder .error-container+.tooltip .tooltip-inner{color:#F22!important}.query-builder p.filter-description{margin:5px 0 0;background:rgba(0,170,255,.2);border:1px solid #346F7B;color:#AAD1E4;border-radius:5px;padding:2.5px 5px;font-size:.8em}.query-builder .rules-group-header [data-invert]{margin-left:5px}.query-builder .drag-handle{cursor:move;vertical-align:middle;margin-left:5px}.query-builder .dragged{opacity:.5}.query-builder .rule-placeholder{border:1px dashed #BBB;opacity:.7}
\ No newline at end of file
+.query-builder .rule-container,.query-builder .rules-group-container{position:relative;margin:4px 0;border-radius:5px;padding:5px;border:1px solid #111;background:rgba(40,40,40,.9)}.query-builder .error-container,.query-builder .rule-container .rule-filter-container,.query-builder .rule-container .rule-operator-container,.query-builder .rule-container .rule-value-container{display:inline-block;margin:0 5px 0 0;vertical-align:middle}.query-builder .rules-group-container{padding:10px 10px 6px;border:1px solid #00164A;background:rgba(50,70,80,.5)}.query-builder .rules-group-header{margin-bottom:10px}.query-builder .rules-group-header .group-conditions .btn.readonly:not(.active),.query-builder .rules-group-header .group-conditions input[name$=_cond]{display:none}.query-builder .rules-group-header .group-conditions .btn.readonly{border-radius:3px}.query-builder .rules-list{list-style:none;padding:0 0 0 15px;margin:0}.query-builder .rule-value-container{border-left:1px solid #DDD;padding-left:5px}.query-builder .rule-value-container label{margin-bottom:0;font-weight:400}.query-builder .rule-value-container label.block{display:block}.query-builder .rule-value-container input[type=number],.query-builder .rule-value-container input[type=text],.query-builder .rule-value-container select{padding:1px}.query-builder .error-container{display:none;cursor:help;color:red}.query-builder .has-error{background-color:#322;border-color:#800}.query-builder .has-error .error-container{display:inline-block!important}.query-builder .rules-list>::after,.query-builder .rules-list>::before{content:'';position:absolute;left:-10px;width:10px;height:calc(50% + 4px);border-color:#222;border-style:solid}.query-builder .rules-list>::before{top:-4px;border-width:0 0 2px 2px}.query-builder .rules-list>::after{top:50%;border-width:0 0 0 2px}.query-builder .rules-list>:first-child::before{top:-12px;height:calc(50% + 14px)}.query-builder .rules-list>:last-child::before{border-radius:0 0 0 4px}.query-builder .rules-list>:last-child::after{display:none}
\ No newline at end of file
diff --git a/dist/css/query-builder.default.css b/dist/css/query-builder.default.css
index 8391656b..f8e03c2e 100644
--- a/dist/css/query-builder.default.css
+++ b/dist/css/query-builder.default.css
@@ -4,7 +4,7 @@
* Licensed under MIT (http://opensource.org/licenses/MIT)
*/
-.query-builder .rules-group-container, .query-builder .rule-container, .query-builder .rule-placeholder {
+.query-builder .rules-group-container, .query-builder .rule-container {
position: relative;
margin: 4px 0;
border-radius: 5px;
@@ -15,7 +15,7 @@
.query-builder .rule-container .rule-filter-container,
.query-builder .rule-container .rule-operator-container,
-.query-builder .rule-container .rule-value-container, .query-builder .error-container, .query-builder .drag-handle {
+.query-builder .rule-container .rule-value-container, .query-builder .error-container {
display: inline-block;
margin: 0 5px 0 0;
vertical-align: middle;
@@ -95,34 +95,3 @@
.query-builder .rules-list > *:last-child::after {
display: none;
}
-
-.query-builder .error-container + .tooltip .tooltip-inner {
- color: #F99 !important;
-}
-
-.query-builder p.filter-description {
- margin: 5px 0 0 0;
- background: #D9EDF7;
- border: 1px solid #BCE8F1;
- color: #31708F;
- border-radius: 5px;
- padding: 2.5px 5px;
- font-size: .8em;
-}
-
-.query-builder .rules-group-header [data-invert] {
- margin-left: 5px;
-}
-
-.query-builder .drag-handle {
- cursor: move;
- vertical-align: middle;
- margin-left: 5px;
-}
-.query-builder .dragged {
- opacity: .5;
-}
-.query-builder .rule-placeholder {
- border: 1px dashed #BBB;
- opacity: .7;
-}
diff --git a/dist/css/query-builder.default.min.css b/dist/css/query-builder.default.min.css
index c5a5d29e..9a7634d1 100644
--- a/dist/css/query-builder.default.min.css
+++ b/dist/css/query-builder.default.min.css
@@ -4,4 +4,4 @@
* Licensed under MIT (http://opensource.org/licenses/MIT)
*/
-.query-builder .rule-container,.query-builder .rule-placeholder,.query-builder .rules-group-container{position:relative;margin:4px 0;border-radius:5px;padding:5px;border:1px solid #EEE;background:rgba(255,255,255,.9)}.query-builder .drag-handle,.query-builder .error-container,.query-builder .rule-container .rule-filter-container,.query-builder .rule-container .rule-operator-container,.query-builder .rule-container .rule-value-container{display:inline-block;margin:0 5px 0 0;vertical-align:middle}.query-builder .rules-group-container{padding:10px 10px 6px;border:1px solid #DCC896;background:rgba(250,240,210,.5)}.query-builder .rules-group-header{margin-bottom:10px}.query-builder .rules-group-header .group-conditions .btn.readonly:not(.active),.query-builder .rules-group-header .group-conditions input[name$=_cond]{display:none}.query-builder .rules-group-header .group-conditions .btn.readonly{border-radius:3px}.query-builder .rules-list{list-style:none;padding:0 0 0 15px;margin:0}.query-builder .rule-value-container{border-left:1px solid #DDD;padding-left:5px}.query-builder .rule-value-container label{margin-bottom:0;font-weight:400}.query-builder .rule-value-container label.block{display:block}.query-builder .rule-value-container input[type=number],.query-builder .rule-value-container input[type=text],.query-builder .rule-value-container select{padding:1px}.query-builder .error-container{display:none;cursor:help;color:red}.query-builder .has-error{background-color:#FDD;border-color:#F99}.query-builder .has-error .error-container{display:inline-block!important}.query-builder .rules-list>::after,.query-builder .rules-list>::before{content:'';position:absolute;left:-10px;width:10px;height:calc(50% + 4px);border-color:#CCC;border-style:solid}.query-builder .rules-list>::before{top:-4px;border-width:0 0 2px 2px}.query-builder .rules-list>::after{top:50%;border-width:0 0 0 2px}.query-builder .rules-list>:first-child::before{top:-12px;height:calc(50% + 14px)}.query-builder .rules-list>:last-child::before{border-radius:0 0 0 4px}.query-builder .rules-list>:last-child::after{display:none}.query-builder .error-container+.tooltip .tooltip-inner{color:#F99!important}.query-builder p.filter-description{margin:5px 0 0;background:#D9EDF7;border:1px solid #BCE8F1;color:#31708F;border-radius:5px;padding:2.5px 5px;font-size:.8em}.query-builder .rules-group-header [data-invert]{margin-left:5px}.query-builder .drag-handle{cursor:move;vertical-align:middle;margin-left:5px}.query-builder .dragged{opacity:.5}.query-builder .rule-placeholder{border:1px dashed #BBB;opacity:.7}
\ No newline at end of file
+.query-builder .rule-container,.query-builder .rules-group-container{position:relative;margin:4px 0;border-radius:5px;padding:5px;border:1px solid #EEE;background:rgba(255,255,255,.9)}.query-builder .error-container,.query-builder .rule-container .rule-filter-container,.query-builder .rule-container .rule-operator-container,.query-builder .rule-container .rule-value-container{display:inline-block;margin:0 5px 0 0;vertical-align:middle}.query-builder .rules-group-container{padding:10px 10px 6px;border:1px solid #DCC896;background:rgba(250,240,210,.5)}.query-builder .rules-group-header{margin-bottom:10px}.query-builder .rules-group-header .group-conditions .btn.readonly:not(.active),.query-builder .rules-group-header .group-conditions input[name$=_cond]{display:none}.query-builder .rules-group-header .group-conditions .btn.readonly{border-radius:3px}.query-builder .rules-list{list-style:none;padding:0 0 0 15px;margin:0}.query-builder .rule-value-container{border-left:1px solid #DDD;padding-left:5px}.query-builder .rule-value-container label{margin-bottom:0;font-weight:400}.query-builder .rule-value-container label.block{display:block}.query-builder .rule-value-container input[type=number],.query-builder .rule-value-container input[type=text],.query-builder .rule-value-container select{padding:1px}.query-builder .error-container{display:none;cursor:help;color:red}.query-builder .has-error{background-color:#FDD;border-color:#F99}.query-builder .has-error .error-container{display:inline-block!important}.query-builder .rules-list>::after,.query-builder .rules-list>::before{content:'';position:absolute;left:-10px;width:10px;height:calc(50% + 4px);border-color:#CCC;border-style:solid}.query-builder .rules-list>::before{top:-4px;border-width:0 0 2px 2px}.query-builder .rules-list>::after{top:50%;border-width:0 0 0 2px}.query-builder .rules-list>:first-child::before{top:-12px;height:calc(50% + 14px)}.query-builder .rules-list>:last-child::before{border-radius:0 0 0 4px}.query-builder .rules-list>:last-child::after{display:none}
\ No newline at end of file
diff --git a/dist/i18n/query-builder.ar.js b/dist/i18n/query-builder.ar.js
index e8444c65..9b4d7ead 100644
--- a/dist/i18n/query-builder.ar.js
+++ b/dist/i18n/query-builder.ar.js
@@ -72,8 +72,7 @@ QueryBuilder.regional['ar'] = {
"datetime_exceed_max": "التاريخ أكبر من الأقصى المسموح به",
"boolean_not_valid": "ليست قيمة منطقية ثنائية",
"operator_not_multiple": "العامل ليس متعدد القيَم"
- },
- "invert": "قَلْبُ"
+ }
};
QueryBuilder.defaults({ lang_code: 'ar' });
diff --git a/dist/i18n/query-builder.az.js b/dist/i18n/query-builder.az.js
index 69e710f2..7fd02509 100644
--- a/dist/i18n/query-builder.az.js
+++ b/dist/i18n/query-builder.az.js
@@ -71,8 +71,7 @@ QueryBuilder.regional['az'] = {
"datetime_exceed_max": "{0} əvvəl olmalıdır",
"boolean_not_valid": "Loqik olmayan",
"operator_not_multiple": "{0} operatoru çoxlu məna daşımır"
- },
- "invert": "invert"
+ }
};
QueryBuilder.defaults({ lang_code: 'az' });
diff --git a/dist/i18n/query-builder.cs.js b/dist/i18n/query-builder.cs.js
index fa5b8039..d48735a1 100644
--- a/dist/i18n/query-builder.cs.js
+++ b/dist/i18n/query-builder.cs.js
@@ -71,8 +71,7 @@ QueryBuilder.regional['cs'] = {
"datetime_exceed_max": "Musí být do {0}",
"boolean_not_valid": "Nelogické",
"operator_not_multiple": "Operátor {0} nepodporuje mnoho hodnot"
- },
- "invert": "invertní"
+ }
};
QueryBuilder.defaults({ lang_code: 'cs' });
diff --git a/dist/i18n/query-builder.en.js b/dist/i18n/query-builder.en.js
index c77da5d5..c048967e 100644
--- a/dist/i18n/query-builder.en.js
+++ b/dist/i18n/query-builder.en.js
@@ -72,8 +72,7 @@ QueryBuilder.regional['en'] = {
"datetime_exceed_max": "Must be before {0}",
"boolean_not_valid": "Not a boolean",
"operator_not_multiple": "Operator {0} cannot accept multiple values"
- },
- "invert": "Invert"
+ }
};
QueryBuilder.defaults({ lang_code: 'en' });
diff --git a/dist/i18n/query-builder.fr.js b/dist/i18n/query-builder.fr.js
index e7c7e5b0..6039db97 100644
--- a/dist/i18n/query-builder.fr.js
+++ b/dist/i18n/query-builder.fr.js
@@ -72,8 +72,7 @@ QueryBuilder.regional['fr'] = {
"datetime_exceed_max": "Doit être avant {0}",
"boolean_not_valid": "N'est pas un booléen",
"operator_not_multiple": "L'opérateur {0} ne peut utiliser plusieurs valeurs"
- },
- "invert": "Inverser"
+ }
};
QueryBuilder.defaults({ lang_code: 'fr' });
diff --git a/dist/i18n/query-builder.pl.js b/dist/i18n/query-builder.pl.js
index 9b5608dc..0f9d31c5 100644
--- a/dist/i18n/query-builder.pl.js
+++ b/dist/i18n/query-builder.pl.js
@@ -72,8 +72,7 @@ QueryBuilder.regional['pl'] = {
"datetime_exceed_max": "Musi być przed {0}",
"boolean_not_valid": "Niepoprawna wartość logiczna",
"operator_not_multiple": "Operator {0} nie przyjmuje wielu wartości"
- },
- "invert": "Odwróć"
+ }
};
QueryBuilder.defaults({ lang_code: 'pl' });
diff --git a/dist/i18n/query-builder.ru.js b/dist/i18n/query-builder.ru.js
index 0ee2091d..6f123992 100644
--- a/dist/i18n/query-builder.ru.js
+++ b/dist/i18n/query-builder.ru.js
@@ -69,8 +69,7 @@ QueryBuilder.regional['ru'] = {
"datetime_exceed_max": "Должно быть, до {0}",
"boolean_not_valid": "Не логическое",
"operator_not_multiple": "Оператор {0} не поддерживает много значений"
- },
- "invert": "Инвертировать"
+ }
};
QueryBuilder.defaults({ lang_code: 'ru' });
diff --git a/dist/i18n/query-builder.tr.js b/dist/i18n/query-builder.tr.js
index dd9f9a2b..e2571b8a 100644
--- a/dist/i18n/query-builder.tr.js
+++ b/dist/i18n/query-builder.tr.js
@@ -72,8 +72,7 @@ QueryBuilder.regional['tr'] = {
"datetime_exceed_max": "{0} Tarihinden daha öncesi olmalı.",
"boolean_not_valid": "Değer Doğru/Yanlış(bool) olmalı",
"operator_not_multiple": "Operatör {0} birden fazla değer kabul etmiyor"
- },
- "invert": "Ters Çevir"
+ }
};
QueryBuilder.defaults({ lang_code: 'tr' });
diff --git a/dist/i18n/query-builder.ua.js b/dist/i18n/query-builder.ua.js
index fd060991..5ce89c93 100644
--- a/dist/i18n/query-builder.ua.js
+++ b/dist/i18n/query-builder.ua.js
@@ -71,8 +71,7 @@ QueryBuilder.regional['ua'] = {
"datetime_exceed_max": "Повинне бути, до {0}",
"boolean_not_valid": "Не логічне",
"operator_not_multiple": "Оператор {0} не підтримує багато значень"
- },
- "invert": "інвертувати"
+ }
};
QueryBuilder.defaults({ lang_code: 'ua' });
diff --git a/dist/i18n/query-builder.zh-CN.js b/dist/i18n/query-builder.zh-CN.js
index e7b7859c..4851349f 100644
--- a/dist/i18n/query-builder.zh-CN.js
+++ b/dist/i18n/query-builder.zh-CN.js
@@ -72,8 +72,7 @@ QueryBuilder.regional['zh-CN'] = {
"datetime_exceed_max": "必须在{0}之前",
"boolean_not_valid": "不是布尔值",
"operator_not_multiple": "选项{0}无法接受多个值"
- },
- "invert": "倒置"
+ }
};
QueryBuilder.defaults({ lang_code: 'zh-CN' });
diff --git a/dist/js/query-builder.js b/dist/js/query-builder.js
index f63bf7b9..cdde1f1c 100644
--- a/dist/js/query-builder.js
+++ b/dist/js/query-builder.js
@@ -5,7 +5,7 @@
*/
// Languages: en
-// Plugins: bt-checkbox, bt-selectpicker, bt-tooltip-errors, change-filters, filter-description, invert, mongodb-support, sortable, sql-support, unique-filter
+// Plugins: ogc-filter, sql-support
(function(root, factory) {
if (typeof define == 'function' && define.amd) {
define(['jquery', 'doT', 'jQuery.extendext'], factory);
@@ -273,6 +273,8 @@ QueryBuilder.DEFAULTS = {
default_group_flags: {
condition_readonly: false,
+ no_add_rule: false,
+ no_add_group: false,
no_delete: false
},
@@ -829,7 +831,10 @@ QueryBuilder.prototype.addRule = function(parent, data, flags) {
this.createRuleFilters(model);
if (this.settings.default_filter || !this.settings.display_empty_filter) {
- model.filter = this.getFilterById(this.settings.default_filter || this.filters[0].id);
+ model.filter = this.change('getDefaultFilter',
+ this.getFilterById(this.settings.default_filter || this.filters[0].id),
+ model
+ );
}
return model;
@@ -1027,6 +1032,12 @@ QueryBuilder.prototype.applyGroupFlags = function(group) {
group.$el.find('>' + Selectors.group_condition).prop('disabled', true)
.parent().addClass('readonly');
}
+ if (flags.no_add_rule) {
+ group.$el.find(Selectors.add_rule).remove();
+ }
+ if (flags.no_add_group) {
+ group.$el.find(Selectors.add_group).remove();
+ }
if (flags.no_delete) {
group.$el.find(Selectors.delete_group).remove();
}
@@ -1337,7 +1348,8 @@ QueryBuilder.prototype.setRules = function(data) {
data.rules.forEach(function(item) {
var model;
- if (item.rules && item.rules.length > 0) {
+
+ if (item.rules !== undefined) {
if (self.settings.allow_groups !== -1 && self.settings.allow_groups < group.level) {
self.reset();
Utils.error('RulesParse', 'No more than {0} groups are allowed', self.settings.allow_groups);
@@ -1352,11 +1364,13 @@ QueryBuilder.prototype.setRules = function(data) {
}
}
else {
- if (item.id === undefined) {
- Utils.error('RulesParse', 'Missing rule field id');
- }
- if (item.operator === undefined) {
- item.operator = 'equal';
+ if (!item.empty) {
+ if (item.id === undefined) {
+ Utils.error('RulesParse', 'Missing rule field id');
+ }
+ if (item.operator === undefined) {
+ item.operator = 'equal';
+ }
}
model = self.addRule(group, item.data);
@@ -1364,13 +1378,16 @@ QueryBuilder.prototype.setRules = function(data) {
return;
}
- model.filter = self.getFilterById(item.id);
- model.operator = self.getOperatorByType(item.operator);
- model.flags = self.parseRuleFlags(item);
+ if (!item.empty) {
+ model.filter = self.getFilterById(item.id);
+ model.operator = self.getOperatorByType(item.operator);
- if (model.operator.nb_inputs !== 0 && item.value !== undefined) {
- model.value = item.value;
+ if (model.operator.nb_inputs !== 0 && item.value !== undefined) {
+ model.value = item.value;
+ }
}
+
+ model.flags = self.parseRuleFlags(item);
}
});
@@ -1837,6 +1854,8 @@ QueryBuilder.prototype.parseGroupFlags = function(group) {
if (group.readonly) {
$.extend(flags, {
condition_readonly: true,
+ no_add_rule: true,
+ no_add_group: true,
no_delete: true
});
}
@@ -1949,8 +1968,13 @@ QueryBuilder.templates.filterSelect = '\
';
QueryBuilder.templates.operatorSelect = '\
+{{? it.operators.length === 1 }} \
+ \
+{{= it.lang.operators[it.operators[0].type] || it.operators[0].type }} \
+ \
+{{?}} \
{{ var optgroup = null; }} \
-