diff --git a/.jscsrc b/.jscsrc index ce1e5220..ed1b53fa 100644 --- a/.jscsrc +++ b/.jscsrc @@ -33,5 +33,6 @@ "catch" ], "requireEarlyReturn": false, - "validateCommentPosition": false + "validateCommentPosition": false, + "validateLineBreaks": null } \ No newline at end of file diff --git a/src/core.js b/src/core.js index 6944c9a3..54faabec 100644 --- a/src/core.js +++ b/src/core.js @@ -264,6 +264,14 @@ QueryBuilder.prototype.bindEvents = function() { }); } + if (this.settings.allow_close == 1) { + // delete builder button + this.$el.on('click.queryBuilder', Selectors.close_builder, function() { + var $querybuilder = $(this).closest(Selectors.query_builder); + $querybuilder.queryBuilder('destroy'); + }); + } + // model events this.model.on({ 'drop': function(e, node) { diff --git a/src/defaults.js b/src/defaults.js index b6c5a5eb..a2011081 100644 --- a/src/defaults.js +++ b/src/defaults.js @@ -40,7 +40,8 @@ QueryBuilder.modifiable_options = [ 'allow_groups', 'allow_empty', 'default_condition', - 'default_filter' + 'default_filter', + 'allow_close' ]; /** @@ -49,6 +50,7 @@ QueryBuilder.modifiable_options = [ * @readonly */ QueryBuilder.selectors = { + query_builder: '.query-builder', group_container: '.rules-group-container', rule_container: '.rule-container', filter_container: '.rule-filter-container', @@ -72,7 +74,8 @@ QueryBuilder.selectors = { add_rule: '[data-add=rule]', delete_rule: '[data-delete=rule]', add_group: '[data-add=group]', - delete_group: '[data-delete=group]' + delete_group: '[data-delete=group]', + close_builder: '[data-delete=builder]' }; /** @@ -130,6 +133,7 @@ QueryBuilder.DEFAULTS = { display_errors: true, allow_groups: -1, allow_empty: false, + allow_close: false, conditions: ['AND', 'OR'], default_condition: 'AND', inputs_separator: ' , ', diff --git a/src/i18n/en.json b/src/i18n/en.json index 15bbb139..8e6d9027 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -6,6 +6,7 @@ "add_group": "Add group", "delete_rule": "Delete", "delete_group": "Delete", + "close_builder": "Close", "conditions": { "AND": "AND", diff --git a/src/template.js b/src/template.js index 004d4693..ee600b53 100644 --- a/src/template.js +++ b/src/template.js @@ -15,6 +15,11 @@ QueryBuilder.templates.group = '\ {{= it.translate("delete_group") }} \ \ {{?}} \ + {{? it.settings.allow_close && it.level==1 }} \ + \ + {{?}} \ \