bootstrap-multiselect-rails 0.9.5 → 0.9.9
Sign up to get free protection for your applications and to get access to all the features.
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: []
|