bootstrap-multiselect-rails 0.9.5 → 0.9.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6acd5364f0f67d80a816a56989db6645d76be1ed
|
4
|
+
data.tar.gz: 07b741455e2b48fdbd4f459cc8a6b6521a753d7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d258339985da2fa5b61def6e929a3d3b73d13ff2cb84039734832b8cb9114a8403b1557e59624995e01a94c68c9040501cb0a38f10cbc642317e22c58dd8303
|
7
|
+
data.tar.gz: 133830df1b0bf1ed691cfc0e44abb98fbef1a96d67ce41267559c986812838ba8ec2850ee9d520872a244adfbc55a756b262dcc313969c092630d91c9e0f2fd9
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Bootstrap Multiselect Rails
|
2
2
|
|
3
|
-
Easily add [bootstrap-multiselect v0.9.
|
3
|
+
Easily add [bootstrap-multiselect v0.9.9](https://github.com/davidstutz/bootstrap-multiselect.git) to your Rails application using the asset pipeline.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -1,39 +1,33 @@
|
|
1
1
|
/**
|
2
|
-
* bootstrap-multiselect
|
3
|
-
*
|
4
|
-
*
|
2
|
+
* Bootstrap Multiselect v0.9.8 (https://github.com/davidstutz/bootstrap-multiselect)
|
3
|
+
*
|
5
4
|
* Copyright 2012 - 2014 David Stutz
|
6
|
-
*
|
5
|
+
*
|
7
6
|
* Dual licensed under the BSD-3-Clause and the Apache License, Version 2.0.
|
8
7
|
*/
|
9
8
|
!function($) {
|
10
9
|
|
11
10
|
"use strict";// jshint ;_;
|
12
|
-
|
13
|
-
if (Array.prototype.forEach === null || Array.prototype.forEach === undefined) {
|
14
|
-
Array.prototype.forEach = function (func) {
|
15
|
-
var index;
|
16
|
-
for (index = 0; index < this.length; ++index) {
|
17
|
-
func(this[index]);
|
18
|
-
}
|
19
|
-
};
|
20
|
-
}
|
21
11
|
|
22
12
|
if (typeof ko !== 'undefined' && ko.bindingHandlers && !ko.bindingHandlers.multiselect) {
|
23
13
|
ko.bindingHandlers.multiselect = {
|
24
14
|
|
25
15
|
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
|
26
16
|
|
27
|
-
var listOfSelectedItems = allBindingsAccessor().selectedOptions
|
28
|
-
|
17
|
+
var listOfSelectedItems = allBindingsAccessor().selectedOptions;
|
18
|
+
var config = ko.utils.unwrapObservable(valueAccessor());
|
29
19
|
|
30
20
|
$(element).multiselect(config);
|
31
21
|
|
32
22
|
if (isObservableArray(listOfSelectedItems)) {
|
23
|
+
|
24
|
+
// Set the initial selection state on the multiselect list.
|
25
|
+
$(element).multiselect('select', ko.utils.unwrapObservable(listOfSelectedItems));
|
26
|
+
|
33
27
|
// Subscribe to the selectedOptions: ko.observableArray
|
34
28
|
listOfSelectedItems.subscribe(function (changes) {
|
35
29
|
var addedArray = [], deletedArray = [];
|
36
|
-
|
30
|
+
forEach(changes, function (change) {
|
37
31
|
switch (change.status) {
|
38
32
|
case 'added':
|
39
33
|
addedArray.push(change.value);
|
@@ -43,12 +37,14 @@
|
|
43
37
|
break;
|
44
38
|
}
|
45
39
|
});
|
40
|
+
|
46
41
|
if (addedArray.length > 0) {
|
47
42
|
$(element).multiselect('select', addedArray);
|
48
|
-
}
|
43
|
+
}
|
44
|
+
|
49
45
|
if (deletedArray.length > 0) {
|
50
46
|
$(element).multiselect('deselect', deletedArray);
|
51
|
-
}
|
47
|
+
}
|
52
48
|
}, null, "arrayChange");
|
53
49
|
}
|
54
50
|
},
|
@@ -80,6 +76,12 @@
|
|
80
76
|
return ko.isObservable(obj) && !(obj.destroyAll === undefined);
|
81
77
|
}
|
82
78
|
|
79
|
+
function forEach(array, callback) {
|
80
|
+
for (var index = 0; index < array.length; ++index) {
|
81
|
+
callback(array[index]);
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
83
85
|
/**
|
84
86
|
* Constructor to create a new multiselect using the given select.
|
85
87
|
*
|
@@ -102,7 +104,9 @@
|
|
102
104
|
this.options.onChange = $.proxy(this.options.onChange, this);
|
103
105
|
this.options.onDropdownShow = $.proxy(this.options.onDropdownShow, this);
|
104
106
|
this.options.onDropdownHide = $.proxy(this.options.onDropdownHide, this);
|
105
|
-
|
107
|
+
this.options.onDropdownShown = $.proxy(this.options.onDropdownShown, this);
|
108
|
+
this.options.onDropdownHidden = $.proxy(this.options.onDropdownHidden, this);
|
109
|
+
|
106
110
|
// Build select all if enabled.
|
107
111
|
this.buildContainer();
|
108
112
|
this.buildButton();
|
@@ -114,6 +118,10 @@
|
|
114
118
|
this.updateButtonText();
|
115
119
|
this.updateSelectAll();
|
116
120
|
|
121
|
+
if (this.options.disableIfEmpty) {
|
122
|
+
this.disableIfEmpty();
|
123
|
+
}
|
124
|
+
|
117
125
|
this.$select.hide().after(this.$container);
|
118
126
|
};
|
119
127
|
|
@@ -122,7 +130,8 @@
|
|
122
130
|
defaults: {
|
123
131
|
/**
|
124
132
|
* Default text function will either print 'None selected' in case no
|
125
|
-
* option is selected or a list of the selected options up to a length
|
133
|
+
* option is selected or a list of the selected options up to a length
|
134
|
+
* of 3 selected options.
|
126
135
|
*
|
127
136
|
* @param {jQuery} options
|
128
137
|
* @param {jQuery} select
|
@@ -149,6 +158,7 @@
|
|
149
158
|
},
|
150
159
|
/**
|
151
160
|
* Updates the title of the button similar to the buttonText function.
|
161
|
+
*
|
152
162
|
* @param {jQuery} options
|
153
163
|
* @param {jQuery} select
|
154
164
|
* @returns {@exp;selected@call;substr}
|
@@ -176,6 +186,7 @@
|
|
176
186
|
},
|
177
187
|
/**
|
178
188
|
* Triggered on change of the multiselect.
|
189
|
+
*
|
179
190
|
* Not triggered when selecting/deselecting options manually.
|
180
191
|
*
|
181
192
|
* @param {jQuery} option
|
@@ -199,6 +210,22 @@
|
|
199
210
|
*/
|
200
211
|
onDropdownHide: function(event) {
|
201
212
|
|
213
|
+
},
|
214
|
+
/**
|
215
|
+
* Triggered after the dropdown is shown.
|
216
|
+
*
|
217
|
+
* @param {jQuery} event
|
218
|
+
*/
|
219
|
+
onDropdownShown: function(event) {
|
220
|
+
|
221
|
+
},
|
222
|
+
/**
|
223
|
+
* Triggered after the dropdown is hidden.
|
224
|
+
*
|
225
|
+
* @param {jQuery} event
|
226
|
+
*/
|
227
|
+
onDropdownHidden: function(event) {
|
228
|
+
|
202
229
|
},
|
203
230
|
buttonClass: 'btn btn-default',
|
204
231
|
dropRight: false,
|
@@ -208,7 +235,7 @@
|
|
208
235
|
// Maximum height of the dropdown menu.
|
209
236
|
// If maximum height is exceeded a scrollbar will be displayed.
|
210
237
|
maxHeight: false,
|
211
|
-
checkboxName:
|
238
|
+
checkboxName: false,
|
212
239
|
includeSelectAllOption: false,
|
213
240
|
includeSelectAllIfMoreThan: 0,
|
214
241
|
selectAllText: ' Select all',
|
@@ -222,6 +249,7 @@
|
|
222
249
|
nonSelectedText: 'None selected',
|
223
250
|
nSelectedText: 'selected',
|
224
251
|
numberDisplayed: 3,
|
252
|
+
disableIfEmpty: false,
|
225
253
|
templates: {
|
226
254
|
button: '<button type="button" class="multiselect dropdown-toggle" data-toggle="dropdown"></button>',
|
227
255
|
ul: '<ul class="multiselect-container dropdown-menu"></ul>',
|
@@ -241,6 +269,8 @@
|
|
241
269
|
this.$container = $(this.options.buttonContainer);
|
242
270
|
this.$container.on('show.bs.dropdown', this.options.onDropdownShow);
|
243
271
|
this.$container.on('hide.bs.dropdown', this.options.onDropdownHide);
|
272
|
+
this.$container.on('shown.bs.dropdown', this.options.onDropdownShown);
|
273
|
+
this.$container.on('hidden.bs.dropdown', this.options.onDropdownHidden);
|
244
274
|
},
|
245
275
|
|
246
276
|
/**
|
@@ -262,6 +292,9 @@
|
|
262
292
|
this.$button.css({
|
263
293
|
'width' : this.options.buttonWidth
|
264
294
|
});
|
295
|
+
this.$container.css({
|
296
|
+
'width': this.options.buttonWidth
|
297
|
+
});
|
265
298
|
}
|
266
299
|
|
267
300
|
// Keep the tab index from the select.
|
@@ -300,6 +333,7 @@
|
|
300
333
|
|
301
334
|
/**
|
302
335
|
* Build the dropdown options and binds all nessecary events.
|
336
|
+
*
|
303
337
|
* Uses createDivider and createOptionValue to create the necessary options.
|
304
338
|
*/
|
305
339
|
buildDropdownOptions: function() {
|
@@ -310,7 +344,7 @@
|
|
310
344
|
var tag = $(element).prop('tagName')
|
311
345
|
.toLowerCase();
|
312
346
|
|
313
|
-
if ($(element).prop('value')
|
347
|
+
if ($(element).prop('value') === this.options.selectAllValue) {
|
314
348
|
return;
|
315
349
|
}
|
316
350
|
|
@@ -359,10 +393,10 @@
|
|
359
393
|
|
360
394
|
if (isSelectAllOption) {
|
361
395
|
if (checked) {
|
362
|
-
this.
|
396
|
+
this.selectAll();
|
363
397
|
}
|
364
398
|
else {
|
365
|
-
this.
|
399
|
+
this.deselectAll();
|
366
400
|
}
|
367
401
|
}
|
368
402
|
|
@@ -512,8 +546,14 @@
|
|
512
546
|
|
513
547
|
var $li = $(this.options.templates.li);
|
514
548
|
$('label', $li).addClass(inputType);
|
515
|
-
|
516
|
-
|
549
|
+
|
550
|
+
if (this.options.checkboxName) {
|
551
|
+
$('label', $li).append('<input type="' + inputType + '" name="' + this.options.checkboxName + '" />');
|
552
|
+
}
|
553
|
+
else {
|
554
|
+
$('label', $li).append('<input type="' + inputType + '" />');
|
555
|
+
}
|
556
|
+
|
517
557
|
var selected = $(element).prop('selected') || false;
|
518
558
|
var $checkbox = $('input', $li);
|
519
559
|
$checkbox.val(value);
|
@@ -581,6 +621,7 @@
|
|
581
621
|
|
582
622
|
/**
|
583
623
|
* Build the selct all.
|
624
|
+
*
|
584
625
|
* Checks if a select all has already been created.
|
585
626
|
*/
|
586
627
|
buildSelectAll: function() {
|
@@ -596,8 +637,14 @@
|
|
596
637
|
|
597
638
|
var $li = $(this.options.templates.li);
|
598
639
|
$('label', $li).addClass("checkbox");
|
599
|
-
|
600
|
-
|
640
|
+
|
641
|
+
if (this.options.checkboxName) {
|
642
|
+
$('label', $li).append('<input type="checkbox" name="' + this.options.checkboxName + '" />');
|
643
|
+
}
|
644
|
+
else {
|
645
|
+
$('label', $li).append('<input type="checkbox" />');
|
646
|
+
}
|
647
|
+
|
601
648
|
var $checkbox = $('input', $li);
|
602
649
|
$checkbox.val(this.options.selectAllValue);
|
603
650
|
|
@@ -655,8 +702,8 @@
|
|
655
702
|
}
|
656
703
|
|
657
704
|
if (value !== this.options.selectAllValue && text) {
|
658
|
-
//
|
659
|
-
// interesting for this search
|
705
|
+
// By default lets assume that element is not
|
706
|
+
// interesting for this search.
|
660
707
|
var showElement = false;
|
661
708
|
|
662
709
|
if (this.options.enableCaseInsensitiveFiltering && filterCandidate.toLowerCase().indexOf(this.query.toLowerCase()) > -1) {
|
@@ -738,9 +785,13 @@
|
|
738
785
|
/**
|
739
786
|
* Select all options of the given values.
|
740
787
|
*
|
788
|
+
* If triggerOnChange is set to true, the on change event is triggered if
|
789
|
+
* and only if one value is passed.
|
790
|
+
*
|
741
791
|
* @param {Array} selectValues
|
792
|
+
* @param {Boolean} triggerOnChange
|
742
793
|
*/
|
743
|
-
select: function(selectValues) {
|
794
|
+
select: function(selectValues, triggerOnChange) {
|
744
795
|
if(!$.isArray(selectValues)) {
|
745
796
|
selectValues = [selectValues];
|
746
797
|
}
|
@@ -751,9 +802,12 @@
|
|
751
802
|
var $option = this.getOptionByValue(value);
|
752
803
|
var $checkbox = this.getInputByValue(value);
|
753
804
|
|
754
|
-
if($option ===
|
755
|
-
|
756
|
-
|
805
|
+
if($option === undefined || $checkbox === undefined) {
|
806
|
+
continue;
|
807
|
+
}
|
808
|
+
|
809
|
+
if (!this.options.multiple) {
|
810
|
+
this.deselectAll(false);
|
757
811
|
}
|
758
812
|
|
759
813
|
if (this.options.selectedClass) {
|
@@ -766,14 +820,17 @@
|
|
766
820
|
}
|
767
821
|
|
768
822
|
this.updateButtonText();
|
823
|
+
|
824
|
+
if (triggerOnChange && selectValues.length === 1) {
|
825
|
+
this.options.onChange($option, true);
|
826
|
+
}
|
769
827
|
},
|
770
828
|
|
771
829
|
/**
|
772
|
-
* Clears all selected items
|
773
|
-
*
|
830
|
+
* Clears all selected items.
|
774
831
|
*/
|
775
832
|
clearSelection: function () {
|
776
|
-
this.
|
833
|
+
this.deselectAll(false);
|
777
834
|
this.updateButtonText();
|
778
835
|
this.updateSelectAll();
|
779
836
|
},
|
@@ -781,9 +838,13 @@
|
|
781
838
|
/**
|
782
839
|
* Deselects all options of the given values.
|
783
840
|
*
|
841
|
+
* If triggerOnChange is set to true, the on change event is triggered, if
|
842
|
+
* and only if one value is passed.
|
843
|
+
*
|
784
844
|
* @param {Array} deselectValues
|
845
|
+
* @param {Boolean} triggerOnChange
|
785
846
|
*/
|
786
|
-
deselect: function(deselectValues) {
|
847
|
+
deselect: function(deselectValues, triggerOnChange) {
|
787
848
|
if(!$.isArray(deselectValues)) {
|
788
849
|
deselectValues = [deselectValues];
|
789
850
|
}
|
@@ -795,9 +856,8 @@
|
|
795
856
|
var $option = this.getOptionByValue(value);
|
796
857
|
var $checkbox = this.getInputByValue(value);
|
797
858
|
|
798
|
-
if($option ===
|
799
|
-
|
800
|
-
continue;
|
859
|
+
if($option === undefined || $checkbox === undefined) {
|
860
|
+
continue;
|
801
861
|
}
|
802
862
|
|
803
863
|
if (this.options.selectedClass) {
|
@@ -810,17 +870,20 @@
|
|
810
870
|
}
|
811
871
|
|
812
872
|
this.updateButtonText();
|
873
|
+
|
874
|
+
if (triggerOnChange && deselectValues.length === 1) {
|
875
|
+
this.options.onChange($option, false);
|
876
|
+
}
|
813
877
|
},
|
814
878
|
|
815
879
|
/**
|
816
880
|
* Selects all enabled & visible options.
|
817
|
-
*
|
818
881
|
*/
|
819
|
-
|
820
|
-
var allCheckboxes = $("li input[type='checkbox']:enabled", this.$ul)
|
821
|
-
|
822
|
-
|
823
|
-
|
882
|
+
selectAll: function () {
|
883
|
+
var allCheckboxes = $("li input[type='checkbox']:enabled", this.$ul);
|
884
|
+
var visibleCheckboxes = allCheckboxes.filter(":visible");
|
885
|
+
var allCheckboxesCount = allCheckboxes.length;
|
886
|
+
var visibleCheckboxesCount = visibleCheckboxes.length;
|
824
887
|
|
825
888
|
visibleCheckboxes.prop('checked', true);
|
826
889
|
$("li:not(.divider):not(.disabled)", this.$ul).filter(":visible").addClass(this.options.selectedClass);
|
@@ -829,42 +892,55 @@
|
|
829
892
|
$("option:enabled", this.$select).prop('selected', true);
|
830
893
|
}
|
831
894
|
else {
|
832
|
-
var values = visibleCheckboxes.map(function() {
|
833
|
-
|
895
|
+
var values = visibleCheckboxes.map(function() {
|
896
|
+
return $(this).val();
|
897
|
+
}).get();
|
898
|
+
|
899
|
+
$("option:enabled", this.$select).filter(function(index) {
|
900
|
+
return $.inArray($(this).val(), values) !== -1;
|
901
|
+
}).prop('selected', true);
|
834
902
|
}
|
835
903
|
},
|
836
904
|
|
837
905
|
/**
|
838
906
|
* Deselects all options.
|
907
|
+
*
|
839
908
|
* If justVisible is true or not specified, only visible options are deselected.
|
840
909
|
*
|
841
910
|
* @param {Boolean} justVisible
|
842
911
|
*/
|
843
|
-
|
844
|
-
var
|
845
|
-
justVisible = typeof justVisible === 'undefined' ? true : justVisible,
|
846
|
-
visibleCheckboxes = void(0);
|
912
|
+
deselectAll: function (justVisible) {
|
913
|
+
var justVisible = typeof justVisible === 'undefined' ? true : justVisible;
|
847
914
|
|
848
|
-
if(justVisible) {
|
849
|
-
var
|
850
|
-
visibleCheckboxes = allCheckboxes.filter(":visible");
|
915
|
+
if(justVisible) {
|
916
|
+
var visibleCheckboxes = $("li input[type='checkbox']:enabled", this.$ul).filter(":visible");
|
851
917
|
visibleCheckboxes.prop('checked', false);
|
852
918
|
|
853
|
-
values = visibleCheckboxes.map(function() {
|
919
|
+
var values = visibleCheckboxes.map(function() {
|
920
|
+
return $(this).val();
|
921
|
+
}).get();
|
854
922
|
|
855
|
-
$("option:enabled", this.$select).filter(function(index){
|
923
|
+
$("option:enabled", this.$select).filter(function(index) {
|
924
|
+
return $.inArray($(this).val(), values) !== -1;
|
925
|
+
}).prop('selected', false);
|
856
926
|
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
927
|
+
if (this.options.selectedClass) {
|
928
|
+
$("li:not(.divider):not(.disabled)", this.$ul).filter(":visible").removeClass(this.options.selectedClass);
|
929
|
+
}
|
930
|
+
}
|
931
|
+
else {
|
932
|
+
$("li input[type='checkbox']:enabled", this.$ul).prop('checked', false);
|
861
933
|
$("option:enabled", this.$select).prop('selected', false);
|
862
|
-
|
934
|
+
|
935
|
+
if (this.options.selectedClass) {
|
936
|
+
$("li:not(.divider):not(.disabled)", this.$ul).removeClass(this.options.selectedClass);
|
937
|
+
}
|
863
938
|
}
|
864
939
|
},
|
865
940
|
|
866
941
|
/**
|
867
942
|
* Rebuild the plugin.
|
943
|
+
*
|
868
944
|
* Rebuilds the dropdown, the filter and the select all option.
|
869
945
|
*/
|
870
946
|
rebuild: function() {
|
@@ -880,6 +956,10 @@
|
|
880
956
|
this.updateButtonText();
|
881
957
|
this.updateSelectAll();
|
882
958
|
|
959
|
+
if (this.options.disableIfEmpty) {
|
960
|
+
this.disableIfEmpty();
|
961
|
+
}
|
962
|
+
|
883
963
|
if (this.options.dropRight) {
|
884
964
|
this.$ul.addClass('pull-right');
|
885
965
|
}
|
@@ -894,12 +974,12 @@
|
|
894
974
|
var optionDOM = "";
|
895
975
|
var groupCounter = 0;
|
896
976
|
|
897
|
-
$.each(dataprovider, function (option) {
|
977
|
+
$.each(dataprovider, function (index, option) {
|
898
978
|
if ($.isArray(option.children)) {
|
899
979
|
groupCounter++;
|
900
980
|
optionDOM += '<optgroup label="' + (option.title || 'Group ' + groupCounter) + '">';
|
901
981
|
|
902
|
-
option.children
|
982
|
+
forEach(option.children, function(subOption) {
|
903
983
|
optionDOM += '<option value="' + subOption.value + '">' + (subOption.label || subOption.value) + '</option>';
|
904
984
|
});
|
905
985
|
|
@@ -932,6 +1012,18 @@
|
|
932
1012
|
.addClass('disabled');
|
933
1013
|
},
|
934
1014
|
|
1015
|
+
/**
|
1016
|
+
* Disable the multiselect if there are no options in the select.
|
1017
|
+
*/
|
1018
|
+
disableIfEmpty: function () {
|
1019
|
+
if ($('option', this.$select).length <= 0) {
|
1020
|
+
this.disable();
|
1021
|
+
}
|
1022
|
+
else {
|
1023
|
+
this.enable();
|
1024
|
+
}
|
1025
|
+
},
|
1026
|
+
|
935
1027
|
/**
|
936
1028
|
* Set the options.
|
937
1029
|
*
|
@@ -965,11 +1057,11 @@
|
|
965
1057
|
*/
|
966
1058
|
updateSelectAll: function() {
|
967
1059
|
if (this.hasSelectAll()) {
|
968
|
-
var allBoxes = $("li:not(.multiselect-item):not(.filter-hidden) input:enabled", this.$ul)
|
969
|
-
|
970
|
-
|
971
|
-
|
972
|
-
|
1060
|
+
var allBoxes = $("li:not(.multiselect-item):not(.filter-hidden) input:enabled", this.$ul);
|
1061
|
+
var allBoxesLength = allBoxes.length;
|
1062
|
+
var checkedBoxesLength = allBoxes.filter(":checked").length;
|
1063
|
+
var selectAllLi = $("li." + this.options.selectAllValue, this.$ul);
|
1064
|
+
var selectAllInput = selectAllLi.find("input");
|
973
1065
|
|
974
1066
|
if (checkedBoxesLength > 0 && checkedBoxesLength === allBoxesLength) {
|
975
1067
|
selectAllInput.prop("checked", true);
|
@@ -989,11 +1081,10 @@
|
|
989
1081
|
var options = this.getSelected();
|
990
1082
|
|
991
1083
|
// First update the displayed button text.
|
992
|
-
$('button', this.$container).html(this.options.buttonText(options, this.$select));
|
1084
|
+
$('button.multiselect', this.$container).html(this.options.buttonText(options, this.$select));
|
993
1085
|
|
994
1086
|
// Now update the title attribute of the button.
|
995
|
-
$('button', this.$container).attr('title', this.options.buttonTitle(options, this.$select));
|
996
|
-
|
1087
|
+
$('button.multiselect', this.$container).attr('title', this.options.buttonTitle(options, this.$select));
|
997
1088
|
},
|
998
1089
|
|
999
1090
|
/**
|
@@ -1058,7 +1149,7 @@
|
|
1058
1149
|
}
|
1059
1150
|
};
|
1060
1151
|
|
1061
|
-
$.fn.multiselect = function(option, parameter) {
|
1152
|
+
$.fn.multiselect = function(option, parameter, extraOptions) {
|
1062
1153
|
return this.each(function() {
|
1063
1154
|
var data = $(this).data('multiselect');
|
1064
1155
|
var options = typeof option === 'object' && option;
|
@@ -1071,7 +1162,7 @@
|
|
1071
1162
|
|
1072
1163
|
// Call multiselect method.
|
1073
1164
|
if (typeof option === 'string') {
|
1074
|
-
data[option](parameter);
|
1165
|
+
data[option](parameter, extraOptions);
|
1075
1166
|
|
1076
1167
|
if (option === 'destroy') {
|
1077
1168
|
$(this).data('multiselect', false);
|
@@ -1 +1 @@
|
|
1
|
-
.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0}.multiselect-container .input-group{margin:5px}.multiselect-container>li{padding:0}.multiselect-container>li>a.multiselect-all label{font-weight:700}.multiselect-container>li>label.multiselect-group{margin:0;padding:3px 20px;height:100%;font-weight:700}.multiselect-container>li>a{padding:0}.multiselect-container>li>a>label{margin:0;height:100%;cursor:pointer;font-weight:400;padding:3px 20px 3px 40px}.multiselect-container>li>a>label.radio,.multiselect-container>li>a>label.checkbox{margin:0}.multiselect-container>li>a>label>input[type=checkbox]{margin-bottom:5px}.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}
|
1
|
+
.multiselect-container{position:absolute;list-style-type:none;margin:0;padding:0}.multiselect-container .input-group{margin:5px}.multiselect-container>li{padding:0}.multiselect-container>li>a.multiselect-all label{font-weight:700}.multiselect-container>li>label.multiselect-group{margin:0;padding:3px 20px;height:100%;font-weight:700}.multiselect-container>li>a{padding:0}.multiselect-container>li>a>label{margin:0;height:100%;cursor:pointer;font-weight:400;padding:3px 20px 3px 40px}.multiselect-container>li>a>label.radio,.multiselect-container>li>a>label.checkbox{margin:0}.multiselect-container>li>a>label>input[type=checkbox]{margin-bottom:5px}.btn-group>.btn-group:nth-child(2)>.multiselect.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.form-inline .multiselect-container label.checkbox,.form-inline .multiselect-container label.radio{padding:3px 20px 3px 40px}.form-inline .multiselect-container li a label.checkbox input[type=checkbox],.form-inline .multiselect-container li a label.radio input[type=radio]{margin-left:-20px;margin-right:0}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootstrap-multiselect-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin Canac
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
description: Add Bootstrap Multiselect v0.9.
|
55
|
+
description: Add Bootstrap Multiselect v0.9.9 to your rails app. See https://github.com/davidstutz/bootstrap-multiselect
|
56
56
|
for more information about bootstrap-multiselect.
|
57
57
|
email:
|
58
58
|
- canacb1@gmail.com
|
@@ -60,13 +60,13 @@ executables: []
|
|
60
60
|
extensions: []
|
61
61
|
extra_rdoc_files: []
|
62
62
|
files:
|
63
|
-
-
|
63
|
+
- MIT-LICENSE
|
64
|
+
- README.md
|
65
|
+
- Rakefile
|
64
66
|
- lib/bootstrap-multiselect-rails.rb
|
67
|
+
- lib/bootstrap-multiselect-rails/version.rb
|
65
68
|
- vendor/assets/javascripts/bootstrap-multiselect.js
|
66
69
|
- vendor/assets/stylesheets/bootstrap-multiselect.css
|
67
|
-
- MIT-LICENSE
|
68
|
-
- Rakefile
|
69
|
-
- README.md
|
70
70
|
homepage: https://github.com/benjamincanac/bootstrap-multiselect-rails
|
71
71
|
licenses:
|
72
72
|
- MIT
|
@@ -87,8 +87,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
87
87
|
version: '0'
|
88
88
|
requirements: []
|
89
89
|
rubyforge_project:
|
90
|
-
rubygems_version: 2.
|
90
|
+
rubygems_version: 2.4.1
|
91
91
|
signing_key:
|
92
92
|
specification_version: 4
|
93
|
-
summary: Add Bootstrap Multiselect v0.9.
|
93
|
+
summary: Add Bootstrap Multiselect v0.9.9 to your rails app.
|
94
94
|
test_files: []
|