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: 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: []