From 730064dc0a88999cabbe9b390fb036cefe765542 Mon Sep 17 00:00:00 2001 From: premithk Date: Wed, 7 Feb 2018 14:33:54 +0530 Subject: [PATCH 01/15] plugin for chosen-js --- examples/index.html | 8 +++- src/plugins/bt-selectpicker/plugin.js | 4 +- src/plugins/chosen-selectpicker/plugin.js | 49 +++++++++++++++++++++++ 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 src/plugins/chosen-selectpicker/plugin.js diff --git a/examples/index.html b/examples/index.html index 29730f38..70837579 100644 --- a/examples/index.html +++ b/examples/index.html @@ -11,9 +11,13 @@ + + + + .flag { @@ -116,6 +120,7 @@

Output

+ @@ -140,6 +145,7 @@

Output

+ @@ -172,7 +178,7 @@

Output

'bt-tooltip-errors': { delay: 100 }, 'sortable': null, 'filter-description': { mode: 'bootbox' }, - 'bt-selectpicker': null, + 'chosen-selectpicker': null, 'unique-filter': null, 'bt-checkbox': { color: 'primary' }, 'invert': null, diff --git a/src/plugins/bt-selectpicker/plugin.js b/src/plugins/bt-selectpicker/plugin.js index d9ef2812..2ff72b6b 100644 --- a/src/plugins/bt-selectpicker/plugin.js +++ b/src/plugins/bt-selectpicker/plugin.js @@ -15,9 +15,11 @@ QueryBuilder.define('bt-selectpicker', function(options) { } var Selectors = QueryBuilder.selectors; - + + console.log(options) // init selectpicker this.on('afterCreateRuleFilters', function(e, rule) { + options.liveSearch = true; rule.$el.find(Selectors.rule_filter).removeClass('form-control').selectpicker(options); }); diff --git a/src/plugins/chosen-selectpicker/plugin.js b/src/plugins/chosen-selectpicker/plugin.js new file mode 100644 index 00000000..7235b2ce --- /dev/null +++ b/src/plugins/chosen-selectpicker/plugin.js @@ -0,0 +1,49 @@ +/** + * @class BtSelectpicker + * @memberof module:plugins + * @descriptioon Applies Bootstrap Select on filters and operators combo-boxes. + * @param {object} [options] + * @param {string} [options.container='body'] + * @param {string} [options.style='btn-inverse btn-xs'] + * @param {int|string} [options.width='auto'] + * @param {boolean} [options.showIcon=false] + * @throws MissingLibraryError + */ +QueryBuilder.define('chosen-selectpicker', function(options) { + if (!$.fn.chosen) { + Utils.error('MissingLibrary', ' chosen is required to use "chosen-selectpicker" plugin. Get it here: https://github.com/harvesthq/chosen'); + } + + var Selectors = QueryBuilder.selectors; + + console.log(options) + // init selectpicker + this.on('afterCreateRuleFilters', function(e, rule) { + options.liveSearch = true; + rule.$el.find(Selectors.rule_filter).removeClass('form-control').chosen(); + }); + + this.on('afterCreateRuleOperators', function(e, rule) { + rule.$el.find(Selectors.rule_operator).removeClass('form-control').chosen(); + }); + + // update selectpicker on change + this.on('afterUpdateRuleFilter', function(e, rule) { + rule.$el.find(Selectors.rule_filter).trigger("chosen:updated"); + }); + + this.on('afterUpdateRuleOperator', function(e, rule) { + rule.$el.find(Selectors.rule_operator).trigger("chosen:updated"); + + }); + + this.on('beforeDeleteRule', function(e, rule) { + rule.$el.find(Selectors.rule_filter).chosen('destroy'); + rule.$el.find(Selectors.rule_operator).chosen('destroy'); + }); +}, { + container: 'body', + style: 'btn-inverse btn-xs', + width: 'auto', + showIcon: false +}); From 249a2de255277f64b3466fe3885f23cb7c64a327 Mon Sep 17 00:00:00 2001 From: premithk Date: Fri, 9 Feb 2018 14:58:15 +0530 Subject: [PATCH 02/15] Added chosen to examples bower.json --- examples/bower.json | 5 +++-- src/plugins/bt-selectpicker/plugin.js | 4 +--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/examples/bower.json b/examples/bower.json index 85233d7e..8adda15b 100644 --- a/examples/bower.json +++ b/examples/bower.json @@ -1,8 +1,9 @@ { "name": "jQuery-QueryBuilder-example", - "dependencies" : { + "dependencies": { "seiyria-bootstrap-slider": "latest", "bootswatch-dist": "#slate", - "selectize": "latest" + "selectize": "latest", + "chosen": "^1.8.3" } } diff --git a/src/plugins/bt-selectpicker/plugin.js b/src/plugins/bt-selectpicker/plugin.js index 2ff72b6b..d9ef2812 100644 --- a/src/plugins/bt-selectpicker/plugin.js +++ b/src/plugins/bt-selectpicker/plugin.js @@ -15,11 +15,9 @@ QueryBuilder.define('bt-selectpicker', function(options) { } var Selectors = QueryBuilder.selectors; - - console.log(options) + // init selectpicker this.on('afterCreateRuleFilters', function(e, rule) { - options.liveSearch = true; rule.$el.find(Selectors.rule_filter).removeClass('form-control').selectpicker(options); }); From 921e95c73db277170d3f722b837cdde1b5e2a400 Mon Sep 17 00:00:00 2001 From: premithk Date: Fri, 9 Feb 2018 14:58:56 +0530 Subject: [PATCH 03/15] Removed unwanted select2 references from examples index.html --- examples/index.html | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/examples/index.html b/examples/index.html index 70837579..0f1409cc 100644 --- a/examples/index.html +++ b/examples/index.html @@ -14,11 +14,8 @@ - - - - + .flag { display: inline-block; From 8ffc69a9d061965f1b1c237f3a01113e4aea2748 Mon Sep 17 00:00:00 2001 From: premithk Date: Fri, 9 Feb 2018 15:00:00 +0530 Subject: [PATCH 04/15] Fixed JSDoc and removed unwanted options --- src/plugins/chosen-selectpicker/plugin.js | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/plugins/chosen-selectpicker/plugin.js b/src/plugins/chosen-selectpicker/plugin.js index 7235b2ce..3cc1ec83 100644 --- a/src/plugins/chosen-selectpicker/plugin.js +++ b/src/plugins/chosen-selectpicker/plugin.js @@ -1,12 +1,8 @@ /** - * @class BtSelectpicker + * @class ChosenSelectpicker * @memberof module:plugins - * @descriptioon Applies Bootstrap Select on filters and operators combo-boxes. - * @param {object} [options] - * @param {string} [options.container='body'] - * @param {string} [options.style='btn-inverse btn-xs'] - * @param {int|string} [options.width='auto'] - * @param {boolean} [options.showIcon=false] + * @descriptioon Applies chosen-js Select on filters and operators combo-boxes. + * @param {object} [options] Supports all the options for chosen * @throws MissingLibraryError */ QueryBuilder.define('chosen-selectpicker', function(options) { @@ -16,10 +12,8 @@ QueryBuilder.define('chosen-selectpicker', function(options) { var Selectors = QueryBuilder.selectors; - console.log(options) // init selectpicker this.on('afterCreateRuleFilters', function(e, rule) { - options.liveSearch = true; rule.$el.find(Selectors.rule_filter).removeClass('form-control').chosen(); }); @@ -41,9 +35,4 @@ QueryBuilder.define('chosen-selectpicker', function(options) { rule.$el.find(Selectors.rule_filter).chosen('destroy'); rule.$el.find(Selectors.rule_operator).chosen('destroy'); }); -}, { - container: 'body', - style: 'btn-inverse btn-xs', - width: 'auto', - showIcon: false }); From 9648d307cef1b2874c26a95e9d9d9b3fd2001ce5 Mon Sep 17 00:00:00 2001 From: premithk Date: Fri, 9 Feb 2018 18:25:26 +0530 Subject: [PATCH 05/15] Checking for bootstrap select plugin and exiting --- src/plugins/chosen-selectpicker/plugin.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/plugins/chosen-selectpicker/plugin.js b/src/plugins/chosen-selectpicker/plugin.js index 3cc1ec83..c31f971a 100644 --- a/src/plugins/chosen-selectpicker/plugin.js +++ b/src/plugins/chosen-selectpicker/plugin.js @@ -6,15 +6,25 @@ * @throws MissingLibraryError */ QueryBuilder.define('chosen-selectpicker', function(options) { + + //Checking if bootstrap select is already chosen as a plugin + if($.fn.selectpicker){ + console.warn('Plugin Conflict', 'Bootstrap select is already selected as a plugin. chosen-selectpicker plugin is exiting'); + return; + } + if (!$.fn.chosen) { Utils.error('MissingLibrary', ' chosen is required to use "chosen-selectpicker" plugin. Get it here: https://github.com/harvesthq/chosen'); } var Selectors = QueryBuilder.selectors; - + console.log('Selectors->', QueryBuilder.selectors); + console.log('Selectors->', QueryBuilder.plugins); // init selectpicker this.on('afterCreateRuleFilters', function(e, rule) { rule.$el.find(Selectors.rule_filter).removeClass('form-control').chosen(); + console.log(rule.$el.find(Selectors.rule_filter).children()); + console.log(rule.$el); }); this.on('afterCreateRuleOperators', function(e, rule) { From e7dcf7a5fea6e720eb4bfb69d9133e81cb8877c8 Mon Sep 17 00:00:00 2001 From: premithk Date: Tue, 13 Feb 2018 12:23:50 +0530 Subject: [PATCH 06/15] Code cleanup, WIP --- examples/index.html | 3 ++- src/plugins/chosen-selectpicker/plugin.js | 26 +++++++++++------------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/examples/index.html b/examples/index.html index 0f1409cc..dcb694ce 100644 --- a/examples/index.html +++ b/examples/index.html @@ -175,7 +175,8 @@

Output

'bt-tooltip-errors': { delay: 100 }, 'sortable': null, 'filter-description': { mode: 'bootbox' }, - 'chosen-selectpicker': null, + 'bt-selectpicker': null, + //'chosen-selectpicker': null, 'unique-filter': null, 'bt-checkbox': { color: 'primary' }, 'invert': null, diff --git a/src/plugins/chosen-selectpicker/plugin.js b/src/plugins/chosen-selectpicker/plugin.js index c31f971a..69419b4b 100644 --- a/src/plugins/chosen-selectpicker/plugin.js +++ b/src/plugins/chosen-selectpicker/plugin.js @@ -7,42 +7,42 @@ */ QueryBuilder.define('chosen-selectpicker', function(options) { - //Checking if bootstrap select is already chosen as a plugin - if($.fn.selectpicker){ - console.warn('Plugin Conflict', 'Bootstrap select is already selected as a plugin. chosen-selectpicker plugin is exiting'); - return; - } - if (!$.fn.chosen) { Utils.error('MissingLibrary', ' chosen is required to use "chosen-selectpicker" plugin. Get it here: https://github.com/harvesthq/chosen'); } - var Selectors = QueryBuilder.selectors; - console.log('Selectors->', QueryBuilder.selectors); - console.log('Selectors->', QueryBuilder.plugins); // init selectpicker this.on('afterCreateRuleFilters', function(e, rule) { + if($(".form-control").length === 0 || $(".form-control").prop('nodeName') !== 'SELECT') + Utils.error('MissingLibrary', ' chosen is required to use "chosen-selectpicker" plugin. Get it here: https://github.com/harvesthq/chosen'); rule.$el.find(Selectors.rule_filter).removeClass('form-control').chosen(); - console.log(rule.$el.find(Selectors.rule_filter).children()); - console.log(rule.$el); }); this.on('afterCreateRuleOperators', function(e, rule) { + console.log("Length Insidec", $(".form-control").length); + if($(".form-control").length !== 0 && $(".form-control").prop('nodeName') === 'SELECT') rule.$el.find(Selectors.rule_operator).removeClass('form-control').chosen(); }); // update selectpicker on change this.on('afterUpdateRuleFilter', function(e, rule) { + console.log("Length Insideuf", $(".form-control").length); + if($(".form-control").length !== 0 && $(".form-control").prop('nodeName') === 'SELECT') rule.$el.find(Selectors.rule_filter).trigger("chosen:updated"); }); this.on('afterUpdateRuleOperator', function(e, rule) { + console.log("Length Insideu",$(".form-control").length); + if($(".form-control").length !== 0 && $(".form-control").prop('nodeName') === 'SELECT') rule.$el.find(Selectors.rule_operator).trigger("chosen:updated"); }); this.on('beforeDeleteRule', function(e, rule) { - rule.$el.find(Selectors.rule_filter).chosen('destroy'); - rule.$el.find(Selectors.rule_operator).chosen('destroy'); + console.log("Length Insidea", $(".form-control").length); + if($(".form-control").length !== 0 && $(".form-control").prop('nodeName') === 'SELECT') { + rule.$el.find(Selectors.rule_filter).chosen('destroy'); + rule.$el.find(Selectors.rule_operator).chosen('destroy'); + } }); }); From 0f261784ccc5c4b87c922b95c4db03f9b5eba1b6 Mon Sep 17 00:00:00 2001 From: premithk Date: Tue, 20 Feb 2018 15:10:47 +0530 Subject: [PATCH 07/15] Checking for bt-select already added as a plugin and raising an error --- examples/index.html | 4 ++-- src/plugins/chosen-selectpicker/plugin.js | 16 ++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/examples/index.html b/examples/index.html index dcb694ce..0aad9747 100644 --- a/examples/index.html +++ b/examples/index.html @@ -175,8 +175,8 @@

Output

'bt-tooltip-errors': { delay: 100 }, 'sortable': null, 'filter-description': { mode: 'bootbox' }, - 'bt-selectpicker': null, - //'chosen-selectpicker': null, + //'bt-selectpicker': null, + 'chosen-selectpicker': null, 'unique-filter': null, 'bt-checkbox': { color: 'primary' }, 'invert': null, diff --git a/src/plugins/chosen-selectpicker/plugin.js b/src/plugins/chosen-selectpicker/plugin.js index 69419b4b..f3a01d9b 100644 --- a/src/plugins/chosen-selectpicker/plugin.js +++ b/src/plugins/chosen-selectpicker/plugin.js @@ -10,36 +10,32 @@ QueryBuilder.define('chosen-selectpicker', function(options) { if (!$.fn.chosen) { Utils.error('MissingLibrary', ' chosen is required to use "chosen-selectpicker" plugin. Get it here: https://github.com/harvesthq/chosen'); } + + if (this.settings.plugins['bt-selectpicker']) { + Utils.error('Conflict', 'chosen-selectpicker have a conflict with bt-selectpicker. Please chose only one of the plugins'); + } + + var Selectors = QueryBuilder.selectors; // init selectpicker this.on('afterCreateRuleFilters', function(e, rule) { - if($(".form-control").length === 0 || $(".form-control").prop('nodeName') !== 'SELECT') - Utils.error('MissingLibrary', ' chosen is required to use "chosen-selectpicker" plugin. Get it here: https://github.com/harvesthq/chosen'); rule.$el.find(Selectors.rule_filter).removeClass('form-control').chosen(); }); this.on('afterCreateRuleOperators', function(e, rule) { - console.log("Length Insidec", $(".form-control").length); - if($(".form-control").length !== 0 && $(".form-control").prop('nodeName') === 'SELECT') rule.$el.find(Selectors.rule_operator).removeClass('form-control').chosen(); }); // update selectpicker on change this.on('afterUpdateRuleFilter', function(e, rule) { - console.log("Length Insideuf", $(".form-control").length); - if($(".form-control").length !== 0 && $(".form-control").prop('nodeName') === 'SELECT') rule.$el.find(Selectors.rule_filter).trigger("chosen:updated"); }); this.on('afterUpdateRuleOperator', function(e, rule) { - console.log("Length Insideu",$(".form-control").length); - if($(".form-control").length !== 0 && $(".form-control").prop('nodeName') === 'SELECT') rule.$el.find(Selectors.rule_operator).trigger("chosen:updated"); - }); this.on('beforeDeleteRule', function(e, rule) { - console.log("Length Insidea", $(".form-control").length); if($(".form-control").length !== 0 && $(".form-control").prop('nodeName') === 'SELECT') { rule.$el.find(Selectors.rule_filter).chosen('destroy'); rule.$el.find(Selectors.rule_operator).chosen('destroy'); From c94cc7d436f603d88ceac4861cf2b26805e3139d Mon Sep 17 00:00:00 2001 From: premithk Date: Thu, 22 Feb 2018 13:08:03 +0530 Subject: [PATCH 08/15] Changed the error message --- src/plugins/chosen-selectpicker/plugin.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/chosen-selectpicker/plugin.js b/src/plugins/chosen-selectpicker/plugin.js index f3a01d9b..b86f476b 100644 --- a/src/plugins/chosen-selectpicker/plugin.js +++ b/src/plugins/chosen-selectpicker/plugin.js @@ -8,11 +8,11 @@ QueryBuilder.define('chosen-selectpicker', function(options) { if (!$.fn.chosen) { - Utils.error('MissingLibrary', ' chosen is required to use "chosen-selectpicker" plugin. Get it here: https://github.com/harvesthq/chosen'); + Utils.error('MissingLibrary', 'chosen is required to use "chosen-selectpicker" plugin. Get it here: https://github.com/harvesthq/chosen'); } if (this.settings.plugins['bt-selectpicker']) { - Utils.error('Conflict', 'chosen-selectpicker have a conflict with bt-selectpicker. Please chose only one of the plugins'); + Utils.error('Conflict', 'bt-selectpicker is already selected as the dropdown plugin. Please remove chosen-selectpicker from the plugin list'); } var Selectors = QueryBuilder.selectors; From 3abeb5250e0ee317ddc34858e76479bd9c985b33 Mon Sep 17 00:00:00 2001 From: premithk Date: Thu, 22 Feb 2018 13:36:06 +0530 Subject: [PATCH 09/15] Added tests for chosen-selectpicker --- bower.json | 3 ++- examples/bower.json | 1 - examples/index.html | 6 +++--- src/plugins/chosen-selectpicker/plugin.js | 8 ++++---- tests/index.html | 3 +++ tests/plugins-gui.module.js | 17 +++++++++++++++++ 6 files changed, 29 insertions(+), 9 deletions(-) diff --git a/bower.json b/bower.json index ab90c4d2..3ee3d7ba 100644 --- a/bower.json +++ b/bower.json @@ -17,7 +17,8 @@ "bootstrap": ">=3.1.0 <4", "moment": ">=2.6.0", "jquery-extendext": ">=0.1.2", - "doT": ">=1.0.3" + "doT": ">=1.0.3", + "chosen": "^1.8.3" }, "devDependencies": { "blanket": "^1.1.0", diff --git a/examples/bower.json b/examples/bower.json index 8adda15b..00d81a39 100644 --- a/examples/bower.json +++ b/examples/bower.json @@ -4,6 +4,5 @@ "seiyria-bootstrap-slider": "latest", "bootswatch-dist": "#slate", "selectize": "latest", - "chosen": "^1.8.3" } } diff --git a/examples/index.html b/examples/index.html index 0aad9747..bbfbe7b7 100644 --- a/examples/index.html +++ b/examples/index.html @@ -8,10 +8,10 @@ + - @@ -117,7 +117,7 @@

Output

- + @@ -175,7 +175,7 @@

Output

'bt-tooltip-errors': { delay: 100 }, 'sortable': null, 'filter-description': { mode: 'bootbox' }, - //'bt-selectpicker': null, + // 'bt-selectpicker': null, 'chosen-selectpicker': null, 'unique-filter': null, 'bt-checkbox': { color: 'primary' }, diff --git a/src/plugins/chosen-selectpicker/plugin.js b/src/plugins/chosen-selectpicker/plugin.js index b86f476b..8a866bed 100644 --- a/src/plugins/chosen-selectpicker/plugin.js +++ b/src/plugins/chosen-selectpicker/plugin.js @@ -10,7 +10,7 @@ QueryBuilder.define('chosen-selectpicker', function(options) { if (!$.fn.chosen) { Utils.error('MissingLibrary', 'chosen is required to use "chosen-selectpicker" plugin. Get it here: https://github.com/harvesthq/chosen'); } - + if (this.settings.plugins['bt-selectpicker']) { Utils.error('Conflict', 'bt-selectpicker is already selected as the dropdown plugin. Please remove chosen-selectpicker from the plugin list'); } @@ -28,15 +28,15 @@ QueryBuilder.define('chosen-selectpicker', function(options) { // update selectpicker on change this.on('afterUpdateRuleFilter', function(e, rule) { - rule.$el.find(Selectors.rule_filter).trigger("chosen:updated"); + rule.$el.find(Selectors.rule_filter).trigger('chosen:updated'); }); this.on('afterUpdateRuleOperator', function(e, rule) { - rule.$el.find(Selectors.rule_operator).trigger("chosen:updated"); + rule.$el.find(Selectors.rule_operator).trigger('chosen:updated'); }); this.on('beforeDeleteRule', function(e, rule) { - if($(".form-control").length !== 0 && $(".form-control").prop('nodeName') === 'SELECT') { + if ($('.form-control').length !== 0 && $('.form-control').prop('nodeName') === 'SELECT') { rule.$el.find(Selectors.rule_filter).chosen('destroy'); rule.$el.find(Selectors.rule_operator).chosen('destroy'); } diff --git a/tests/index.html b/tests/index.html index 43b6b05f..ad4e8766 100644 --- a/tests/index.html +++ b/tests/index.html @@ -8,6 +8,7 @@ + #qunit-modulefilter-container { float:none; } @@ -22,6 +23,7 @@ + @@ -46,6 +48,7 @@ + diff --git a/tests/plugins-gui.module.js b/tests/plugins-gui.module.js index 85f9a7bd..00a131a1 100644 --- a/tests/plugins-gui.module.js +++ b/tests/plugins-gui.module.js @@ -94,6 +94,23 @@ $(function(){ ); }); + /** + * Test chosen-selectpicker + */ + QUnit.test('chosen-selectpicker', function(assert) { + $b.queryBuilder({ + plugins: ['chosen-selectpicker'], + filters: basic_filters, + rules: basic_rules + }); + + assert.ok( + $b.find('.chosen-single').length == 8, + 'Should have initialized chosen on all filters and operators selectors' + ); + }); + + /** * Test bt-tooltip-errors */ From 54781d3f02d5c48b8c566a9df23517eb803473e3 Mon Sep 17 00:00:00 2001 From: premithk Date: Tue, 27 Feb 2018 11:40:42 +0530 Subject: [PATCH 10/15] Removed chosen as explicit dependency and moved to examples/bower.json --- bower.json | 1 - examples/bower.json | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index 3ee3d7ba..dd494c1f 100644 --- a/bower.json +++ b/bower.json @@ -18,7 +18,6 @@ "moment": ">=2.6.0", "jquery-extendext": ">=0.1.2", "doT": ">=1.0.3", - "chosen": "^1.8.3" }, "devDependencies": { "blanket": "^1.1.0", diff --git a/examples/bower.json b/examples/bower.json index 00d81a39..3e4cb19e 100644 --- a/examples/bower.json +++ b/examples/bower.json @@ -4,5 +4,6 @@ "seiyria-bootstrap-slider": "latest", "bootswatch-dist": "#slate", "selectize": "latest", + "chosen": "^1.8.3", } } From c3def048e243867ad3842830a9833e3364605b94 Mon Sep 17 00:00:00 2001 From: premithk Date: Tue, 27 Feb 2018 11:41:20 +0530 Subject: [PATCH 11/15] Removed an unwanted check in chosen-plugin --- src/plugins/chosen-selectpicker/plugin.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/plugins/chosen-selectpicker/plugin.js b/src/plugins/chosen-selectpicker/plugin.js index 8a866bed..efe6bc22 100644 --- a/src/plugins/chosen-selectpicker/plugin.js +++ b/src/plugins/chosen-selectpicker/plugin.js @@ -36,9 +36,7 @@ QueryBuilder.define('chosen-selectpicker', function(options) { }); this.on('beforeDeleteRule', function(e, rule) { - if ($('.form-control').length !== 0 && $('.form-control').prop('nodeName') === 'SELECT') { - rule.$el.find(Selectors.rule_filter).chosen('destroy'); - rule.$el.find(Selectors.rule_operator).chosen('destroy'); - } + rule.$el.find(Selectors.rule_filter).chosen('destroy'); + rule.$el.find(Selectors.rule_operator).chosen('destroy'); }); }); From 5fac869a16de001b13a5e1d43c1d3838efca5c89 Mon Sep 17 00:00:00 2001 From: premithk Date: Tue, 27 Feb 2018 21:17:41 +0530 Subject: [PATCH 12/15] Moved chosen to dev-dependencies --- bower.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bower.json b/bower.json index dd494c1f..3df17779 100644 --- a/bower.json +++ b/bower.json @@ -17,7 +17,7 @@ "bootstrap": ">=3.1.0 <4", "moment": ">=2.6.0", "jquery-extendext": ">=0.1.2", - "doT": ">=1.0.3", + "doT": ">=1.0.3" }, "devDependencies": { "blanket": "^1.1.0", @@ -27,7 +27,8 @@ "awesome-bootstrap-checkbox": "^0.3.0", "sql-parser": "^1.1.0", "bind-polyfill": "~1.0.0", - "interact": "^1.3.2" + "interact": "^1.3.2", + "chosen": "^1.8.3" }, "keywords": [ "jquery", From cccec0f7aef513a28bf50498b94cde5ee9f04f1a Mon Sep 17 00:00:00 2001 From: premithk Date: Tue, 27 Feb 2018 21:14:23 +0530 Subject: [PATCH 13/15] Removed chosen from examples bower.json --- examples/bower.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/bower.json b/examples/bower.json index 3e4cb19e..7b844df2 100644 --- a/examples/bower.json +++ b/examples/bower.json @@ -3,7 +3,6 @@ "dependencies": { "seiyria-bootstrap-slider": "latest", "bootswatch-dist": "#slate", - "selectize": "latest", - "chosen": "^1.8.3", + "selectize": "latest" } } From eb2322e52457fa2438570c20170a916b974048dd Mon Sep 17 00:00:00 2001 From: premithk Date: Fri, 2 Mar 2018 00:34:45 +0530 Subject: [PATCH 14/15] Actually passing the options to chosen --- src/plugins/chosen-selectpicker/plugin.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/chosen-selectpicker/plugin.js b/src/plugins/chosen-selectpicker/plugin.js index efe6bc22..3e72e72f 100644 --- a/src/plugins/chosen-selectpicker/plugin.js +++ b/src/plugins/chosen-selectpicker/plugin.js @@ -19,11 +19,11 @@ QueryBuilder.define('chosen-selectpicker', function(options) { // init selectpicker this.on('afterCreateRuleFilters', function(e, rule) { - rule.$el.find(Selectors.rule_filter).removeClass('form-control').chosen(); + rule.$el.find(Selectors.rule_filter).removeClass('form-control').chosen(options); }); this.on('afterCreateRuleOperators', function(e, rule) { - rule.$el.find(Selectors.rule_operator).removeClass('form-control').chosen(); + rule.$el.find(Selectors.rule_operator).removeClass('form-control').chosen(options); }); // update selectpicker on change From f88e07639e681e55110b7d862728ac056239a986 Mon Sep 17 00:00:00 2001 From: premithk Date: Tue, 6 Mar 2018 14:34:05 +0530 Subject: [PATCH 15/15] Checking for chosen-selectpicker already added as a plugin and raising an error --- src/plugins/bt-selectpicker/plugin.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/bt-selectpicker/plugin.js b/src/plugins/bt-selectpicker/plugin.js index d9ef2812..724f7a00 100644 --- a/src/plugins/bt-selectpicker/plugin.js +++ b/src/plugins/bt-selectpicker/plugin.js @@ -14,6 +14,10 @@ QueryBuilder.define('bt-selectpicker', function(options) { Utils.error('MissingLibrary', 'Bootstrap Select is required to use "bt-selectpicker" plugin. Get it here: http://silviomoreto.github.io/bootstrap-select'); } + if (this.settings.plugins['chosen-selectpicker']) { + Utils.error('Conflict', 'chosen-selectpicker is already selected as the dropdown plugin. Please remove bt-selectpicker from the plugin list'); + } + var Selectors = QueryBuilder.selectors; // init selectpicker