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: 7c8445c9560b793ddd0c4ecccfd6ae3392a3710d
4
- data.tar.gz: 171493dbfe329e6a632a9be0fb1be3e71a44dc70
3
+ metadata.gz: 6acd5364f0f67d80a816a56989db6645d76be1ed
4
+ data.tar.gz: 07b741455e2b48fdbd4f459cc8a6b6521a753d7f
5
5
  SHA512:
6
- metadata.gz: 0af588b33a50d95ac73f4a24e428c8bd3a8ae05473f4536392594f99f9e5b290cf8324a832bb9eeb5d65862e40a258ef5dd83b4b9e9963cb8f805600cf584278
7
- data.tar.gz: c08cf1eb7938a0bbee7e5043df726e9d33b989fbb016e502a44d2c2c6301ecbbcd4dfdbcd22446104839f859227df76085793d0cb725f9abedb385e3d55071b9
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.5](https://github.com/davidstutz/bootstrap-multiselect.git) to your Rails application using the asset pipeline.
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,5 +1,5 @@
1
1
  module BootstrapMultiselect
2
2
  module Rails
3
- VERSION = '0.9.5'
3
+ VERSION = '0.9.9'
4
4
  end
5
5
  end
@@ -1,39 +1,33 @@
1
1
  /**
2
- * bootstrap-multiselect.js
3
- * https://github.com/davidstutz/bootstrap-multiselect
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
- config = ko.utils.unwrapObservable(valueAccessor());
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
- changes.forEach(function (change) {
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 of 3 selected options.
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: 'multiselect',
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') == this.options.selectAllValue) {
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.selectall();
396
+ this.selectAll();
363
397
  }
364
398
  else {
365
- this.deselectall();
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
- $('label', $li).append('<input type="' + inputType + '" name="' + this.options.checkboxName + '" />');
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
- $('label', $li).append('<input type="checkbox" name="' + this.options.checkboxName + '" />');
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
- // by default lets assume that element is not
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 === void(0) || $checkbox === void(0))
755
- {
756
- continue;
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.deselectall(false);
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 === void(0) || $checkbox === void(0))
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
- selectall: function () {
820
- var allCheckboxes = $("li input[type='checkbox']:enabled", this.$ul),
821
- visibleCheckboxes = allCheckboxes.filter(":visible"),
822
- allCheckboxesCount = allCheckboxes.length,
823
- visibleCheckboxesCount = visibleCheckboxes.length;
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() { return $(this).val() }).get();
833
- $("option:enabled", this.$select).filter(function(index){ return $.inArray($(this).val(), values) !== -1; }).prop('selected', true);
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
- deselectall: function (justVisible) {
844
- var allCheckboxes = $("li input[type='checkbox']:enabled", this.$ul),
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 values = void(0);
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() { return $(this).val() }).get();
919
+ var values = visibleCheckboxes.map(function() {
920
+ return $(this).val();
921
+ }).get();
854
922
 
855
- $("option:enabled", this.$select).filter(function(index){ return $.inArray($(this).val(), values) !== -1; }).prop('selected', false);
923
+ $("option:enabled", this.$select).filter(function(index) {
924
+ return $.inArray($(this).val(), values) !== -1;
925
+ }).prop('selected', false);
856
926
 
857
- $("li:not(.divider):not(.disabled)", this.$ul).filter(":visible").removeClass(this.options.selectedClass);
858
-
859
- }else {
860
- allCheckboxes.prop('checked', false);
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
- $("li:not(.divider):not(.disabled)", this.$ul).removeClass(this.options.selectedClass);
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.forEach(function(subOption) {
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
- allBoxesLength = allBoxes.length,
970
- checkedBoxesLength = allBoxes.filter(":checked").length,
971
- selectAllLi = $("li." + this.options.selectAllValue, this.$ul),
972
- selectAllInput = selectAllLi.find("input");
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.5
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-07-10 00:00:00.000000000 Z
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.5 to your rails app. See https://github.com/davidstutz/bootstrap-multiselect
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
- - lib/bootstrap-multiselect-rails/version.rb
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.0.6
90
+ rubygems_version: 2.4.1
91
91
  signing_key:
92
92
  specification_version: 4
93
- summary: Add Bootstrap Multiselect v0.9.5 to your rails app.
93
+ summary: Add Bootstrap Multiselect v0.9.9 to your rails app.
94
94
  test_files: []