bootstrap-switch-rails 3.0.0 → 3.0.2

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: b569c7302489d80dee34d472835b53d43fcf085b
4
- data.tar.gz: 7cad20420e35d893bd6e15d2ad18c8578e2b2045
3
+ metadata.gz: 630e828c927a352dd553798bfa04ad8ee1a16f52
4
+ data.tar.gz: 217b7fb187ea2c3f5192a11087bc854e28f0fc3c
5
5
  SHA512:
6
- metadata.gz: 4abd6004218bc06371640a221c99b20f44f8a1099ec0e3bd0c692b389aed1996624b9d60135440f5548e32a574024ff610865ca9bfe99d57fbe96756d87409ab
7
- data.tar.gz: f69c9a8b9c9420cf059434b054d42c269de0b3f6fcc46172549127123d37d4c134e35a9563aaf32db716521056f675242c624f7006827ff4a4bc41a35f6265b2
6
+ metadata.gz: c26a07faa3e9231994fcbbb504c9ff5ecc452fa85435f29b0cd895ac0cb10b6cd991ed80d5de9fc9742a3d003a24fd7f173b3e48d4e28d917c4d089df380a7bd
7
+ data.tar.gz: 94ce08e2215f41e2165c10e9763bc2c9f9f776349d1a42f096f49c656224ca4324a54b9d6194c97d5ae22eb7be5794a30f52da0150b2b1e6cf26ea6a1b2c1cff
data/README.md CHANGED
@@ -52,6 +52,7 @@ See the [demo page of Mattia Larentis](http://www.bootstrap-switch.org/) for exa
52
52
 
53
53
  | Version | Notes |
54
54
  | -------:| ----------------------------------------------------------------------------------- |
55
+ | 3.0.2 | Update to v3.0.2 of the bootstrap-switch plugin |
55
56
  | 3.0.0 | Update to v3.0.0 of the bootstrap-switch plugin |
56
57
  | 2.0.2 | Fixed issue where bootstrap 2 sass wasn't compiling (issue #7) |
57
58
  | 2.0.1 | Update to v2.0.1 of the bootstrap-switch plugin |
@@ -1,7 +1,7 @@
1
1
  module Bootstrap
2
2
  module Switch
3
3
  module Rails
4
- VERSION = "3.0.0"
4
+ VERSION = "3.0.2"
5
5
  end
6
6
  end
7
7
  end
@@ -1,5 +1,5 @@
1
1
  /* ========================================================================
2
- * bootstrap-switch - v3.0.0
2
+ * bootstrap-switch - v3.0.2
3
3
  * http://www.bootstrap-switch.org
4
4
  * ========================================================================
5
5
  * Copyright 2012-2013 Mattia Larentis
@@ -26,27 +26,27 @@
26
26
  "use strict";
27
27
  var BootstrapSwitch;
28
28
  BootstrapSwitch = (function() {
29
- BootstrapSwitch.prototype.name = "bootstrap-switch";
30
-
31
29
  function BootstrapSwitch(element, options) {
32
30
  if (options == null) {
33
31
  options = {};
34
32
  }
35
33
  this.$element = $(element);
36
- this.options = $.extend({}, $.fn.bootstrapSwitch.defaults, options, {
34
+ this.options = $.extend({}, $.fn.bootstrapSwitch.defaults, {
37
35
  state: this.$element.is(":checked"),
38
36
  size: this.$element.data("size"),
39
37
  animate: this.$element.data("animate"),
40
38
  disabled: this.$element.is(":disabled"),
41
39
  readonly: this.$element.is("[readonly]"),
40
+ indeterminate: this.$element.data("indeterminate"),
42
41
  onColor: this.$element.data("on-color"),
43
42
  offColor: this.$element.data("off-color"),
44
43
  onText: this.$element.data("on-text"),
45
44
  offText: this.$element.data("off-text"),
46
45
  labelText: this.$element.data("label-text"),
47
46
  baseClass: this.$element.data("base-class"),
48
- wrapperClass: this.$element.data("wrapper-class")
49
- });
47
+ wrapperClass: this.$element.data("wrapper-class"),
48
+ radioAllOff: this.$element.data("radio-all-off")
49
+ }, options);
50
50
  this.$wrapper = $("<div>", {
51
51
  "class": (function(_this) {
52
52
  return function() {
@@ -65,6 +65,9 @@
65
65
  if (_this.options.readonly) {
66
66
  classes.push("" + _this.options.baseClass + "-readonly");
67
67
  }
68
+ if (_this.options.indeterminate) {
69
+ classes.push("" + _this.options.baseClass + "-indeterminate");
70
+ }
68
71
  if (_this.$element.attr("id")) {
69
72
  classes.push("" + _this.options.baseClass + "-id-" + (_this.$element.attr("id")));
70
73
  }
@@ -84,10 +87,12 @@
84
87
  "class": "" + this.options.baseClass + "-handle-off " + this.options.baseClass + "-" + this.options.offColor
85
88
  });
86
89
  this.$label = $("<label>", {
87
- "for": this.$element.attr("id"),
88
90
  html: this.options.labelText,
89
91
  "class": "" + this.options.baseClass + "-label"
90
92
  });
93
+ if (this.options.indeterminate) {
94
+ this.$element.prop("indeterminate", true);
95
+ }
91
96
  this.$element.on("init.bootstrapSwitch", (function(_this) {
92
97
  return function() {
93
98
  return _this.options.onInit.apply(element, arguments);
@@ -113,7 +118,10 @@
113
118
  if (typeof value === "undefined") {
114
119
  return this.options.state;
115
120
  }
116
- if (this.options.disabled || this.options.readonly) {
121
+ if (this.options.disabled || this.options.readonly || this.options.indeterminate) {
122
+ return this.$element;
123
+ }
124
+ if (this.options.state && !this.options.radioAllOff && this.$element.is(':radio')) {
117
125
  return this.$element;
118
126
  }
119
127
  value = !!value;
@@ -122,7 +130,7 @@
122
130
  };
123
131
 
124
132
  BootstrapSwitch.prototype.toggleState = function(skip) {
125
- if (this.options.disabled || this.options.readonly) {
133
+ if (this.options.disabled || this.options.readonly || this.options.indeterminate) {
126
134
  return this.$element;
127
135
  }
128
136
  return this.$element.prop("checked", !this.options.state).trigger("change.bootstrapSwitch", skip);
@@ -188,6 +196,24 @@
188
196
  return this.$element;
189
197
  };
190
198
 
199
+ BootstrapSwitch.prototype.indeterminate = function(value) {
200
+ if (typeof value === "undefined") {
201
+ return this.options.indeterminate;
202
+ }
203
+ value = !!value;
204
+ this.$wrapper[value ? "addClass" : "removeClass"]("" + this.options.baseClass + "-indeterminate");
205
+ this.$element.prop("indeterminate", value);
206
+ this.options.indeterminate = value;
207
+ return this.$element;
208
+ };
209
+
210
+ BootstrapSwitch.prototype.toggleIndeterminate = function() {
211
+ this.$element.prop("indeterminate", !this.options.indeterminate);
212
+ this.$wrapper.toggleClass("" + this.options.baseClass + "-indeterminate");
213
+ this.options.indeterminate = !this.options.indeterminate;
214
+ return this.$element;
215
+ };
216
+
191
217
  BootstrapSwitch.prototype.onColor = function(value) {
192
218
  var color;
193
219
  color = this.options.onColor;
@@ -260,6 +286,36 @@
260
286
  return this.$element;
261
287
  };
262
288
 
289
+ BootstrapSwitch.prototype.radioAllOff = function(value) {
290
+ if (typeof value === "undefined") {
291
+ return this.options.radioAllOff;
292
+ }
293
+ this.options.radioAllOff = value;
294
+ return this.$element;
295
+ };
296
+
297
+ BootstrapSwitch.prototype.onInit = function(value) {
298
+ if (typeof value === "undefined") {
299
+ return this.options.onInit;
300
+ }
301
+ if (!value) {
302
+ value = $.fn.bootstrapSwitch.defaults.onInit;
303
+ }
304
+ this.options.onInit = value;
305
+ return this.$element;
306
+ };
307
+
308
+ BootstrapSwitch.prototype.onSwitchChange = function(value) {
309
+ if (typeof value === "undefined") {
310
+ return this.options.onSwitchChange;
311
+ }
312
+ if (!value) {
313
+ value = $.fn.bootstrapSwitch.defaults.onSwitchChange;
314
+ }
315
+ this.options.onSwitchChange = value;
316
+ return this.$element;
317
+ };
318
+
263
319
  BootstrapSwitch.prototype.destroy = function() {
264
320
  var $form;
265
321
  $form = this.$element.closest("form");
@@ -277,7 +333,6 @@
277
333
  return function(e, skip) {
278
334
  var checked;
279
335
  e.preventDefault();
280
- e.stopPropagation();
281
336
  e.stopImmediatePropagation();
282
337
  checked = _this.$element.is(":checked");
283
338
  if (checked === _this.options.state) {
@@ -296,38 +351,27 @@
296
351
  "focus.bootstrapSwitch": (function(_this) {
297
352
  return function(e) {
298
353
  e.preventDefault();
299
- e.stopPropagation();
300
- e.stopImmediatePropagation();
301
354
  return _this.$wrapper.addClass("" + _this.options.baseClass + "-focused");
302
355
  };
303
356
  })(this),
304
357
  "blur.bootstrapSwitch": (function(_this) {
305
358
  return function(e) {
306
359
  e.preventDefault();
307
- e.stopPropagation();
308
- e.stopImmediatePropagation();
309
360
  return _this.$wrapper.removeClass("" + _this.options.baseClass + "-focused");
310
361
  };
311
362
  })(this),
312
363
  "keydown.bootstrapSwitch": (function(_this) {
313
364
  return function(e) {
314
- if (!e.which || _this.options.disabled || _this.options.readonly) {
365
+ if (!e.which || _this.options.disabled || _this.options.readonly || _this.options.indeterminate) {
315
366
  return;
316
367
  }
317
368
  switch (e.which) {
318
- case 32:
319
- e.preventDefault();
320
- e.stopPropagation();
321
- e.stopImmediatePropagation();
322
- return _this.toggleState();
323
369
  case 37:
324
370
  e.preventDefault();
325
- e.stopPropagation();
326
371
  e.stopImmediatePropagation();
327
372
  return _this.state(false);
328
373
  case 39:
329
374
  e.preventDefault();
330
- e.stopPropagation();
331
375
  e.stopImmediatePropagation();
332
376
  return _this.state(true);
333
377
  }
@@ -355,14 +399,19 @@
355
399
  return this.$label.on({
356
400
  "mousemove.bootstrapSwitch touchmove.bootstrapSwitch": (function(_this) {
357
401
  return function(e) {
358
- var left, percent, right;
359
- if (!_this.drag) {
402
+ var left, pageX, percent, right;
403
+ if (!_this.isLabelDragging) {
360
404
  return;
361
405
  }
362
406
  e.preventDefault();
363
- percent = (((e.pageX || e.originalEvent.touches[0].pageX) - _this.$wrapper.offset().left) / _this.$wrapper.width()) * 100;
407
+ _this.isLabelDragged = true;
408
+ pageX = e.pageX || e.originalEvent.touches[0].pageX;
409
+ percent = ((pageX - _this.$wrapper.offset().left) / _this.$wrapper.width()) * 100;
364
410
  left = 25;
365
411
  right = 75;
412
+ if (_this.options.animate) {
413
+ _this.$wrapper.removeClass("" + _this.options.baseClass + "-animate");
414
+ }
366
415
  if (percent < left) {
367
416
  percent = left;
368
417
  } else if (percent > right) {
@@ -374,29 +423,31 @@
374
423
  })(this),
375
424
  "mousedown.bootstrapSwitch touchstart.bootstrapSwitch": (function(_this) {
376
425
  return function(e) {
377
- if (_this.drag || _this.options.disabled || _this.options.readonly) {
426
+ if (_this.isLabelDragging || _this.options.disabled || _this.options.readonly || _this.options.indeterminate) {
378
427
  return;
379
428
  }
380
429
  e.preventDefault();
381
- _this.drag = true;
382
- if (_this.options.animate) {
383
- _this.$wrapper.removeClass("" + _this.options.baseClass + "-animate");
384
- }
430
+ _this.isLabelDragging = true;
385
431
  return _this.$element.trigger("focus.bootstrapSwitch");
386
432
  };
387
433
  })(this),
388
434
  "mouseup.bootstrapSwitch touchend.bootstrapSwitch": (function(_this) {
389
435
  return function(e) {
390
- if (!_this.drag) {
436
+ if (!_this.isLabelDragging) {
391
437
  return;
392
438
  }
393
439
  e.preventDefault();
394
- _this.drag = false;
395
- _this.$element.prop("checked", parseInt(_this.$container.css("margin-left"), 10) > -(_this.$container.width() / 6)).trigger("change.bootstrapSwitch");
396
- _this.$container.css("margin-left", "");
397
- if (_this.options.animate) {
398
- return _this.$wrapper.addClass("" + _this.options.baseClass + "-animate");
440
+ if (_this.isLabelDragged) {
441
+ _this.isLabelDragged = false;
442
+ _this.state(parseInt(_this.$container.css("margin-left"), 10) > -(_this.$container.width() / 6));
443
+ if (_this.options.animate) {
444
+ _this.$wrapper.addClass("" + _this.options.baseClass + "-animate");
445
+ }
446
+ _this.$container.css("margin-left", "");
447
+ } else {
448
+ _this.state(!_this.options.state);
399
449
  }
450
+ return _this.isLabelDragging = false;
400
451
  };
401
452
  })(this),
402
453
  "mouseleave.bootstrapSwitch": (function(_this) {
@@ -418,7 +469,7 @@
418
469
  return $form.find("input").filter(function() {
419
470
  return $(this).data("bootstrap-switch");
420
471
  }).each(function() {
421
- return $(this).bootstrapSwitch("state", false);
472
+ return $(this).bootstrapSwitch("state", this.checked);
422
473
  });
423
474
  }, 1);
424
475
  }).data("bootstrap-switch", true);
@@ -464,6 +515,7 @@
464
515
  animate: true,
465
516
  disabled: false,
466
517
  readonly: false,
518
+ indeterminate: false,
467
519
  onColor: "primary",
468
520
  offColor: "default",
469
521
  onText: "ON",
@@ -471,6 +523,7 @@
471
523
  labelText: "&nbsp;",
472
524
  baseClass: "bootstrap-switch",
473
525
  wrapperClass: "wrapper",
526
+ radioAllOff: false,
474
527
  onInit: function() {},
475
528
  onSwitchChange: function() {}
476
529
  };
@@ -1,5 +1,5 @@
1
1
  /* ========================================================================
2
- * bootstrap-switch - v3.0.0
2
+ * bootstrap-switch - v3.0.2
3
3
  * http://www.bootstrap-switch.org
4
4
  * ========================================================================
5
5
  * Copyright 2012-2013 Mattia Larentis
@@ -131,18 +131,25 @@
131
131
  -moz-border-radius-bottomleft: 4px;
132
132
  border-bottom-left-radius: 4px;
133
133
  }
134
+ .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-container {
135
+ margin-left: -25%;
136
+ }
134
137
  .bootstrap-switch.bootstrap-switch-disabled,
135
- .bootstrap-switch.bootstrap-switch-readonly {
138
+ .bootstrap-switch.bootstrap-switch-readonly,
139
+ .bootstrap-switch.bootstrap-switch-indeterminate {
136
140
  opacity: 0.5;
137
141
  filter: alpha(opacity=50);
138
142
  cursor: default !important;
139
143
  }
140
144
  .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,
141
145
  .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,
146
+ .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,
142
147
  .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,
143
148
  .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,
149
+ .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,
144
150
  .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,
145
- .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label {
151
+ .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,
152
+ .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {
146
153
  cursor: default !important;
147
154
  }
148
155
  .bootstrap-switch.bootstrap-switch-focused {
@@ -488,3 +495,7 @@
488
495
  filter: alpha(opacity=0);
489
496
  z-index: -1;
490
497
  }
498
+ .bootstrap-switch input[type='radio'].form-control,
499
+ .bootstrap-switch input[type='checkbox'].form-control {
500
+ height: auto;
501
+ }
@@ -1,5 +1,5 @@
1
1
  /* ========================================================================
2
- * bootstrap-switch - v3.0.0
2
+ * bootstrap-switch - v3.0.2
3
3
  * http://www.bootstrap-switch.org
4
4
  * ========================================================================
5
5
  * Copyright 2012-2013 Mattia Larentis
@@ -89,18 +89,25 @@
89
89
  border-bottom-left-radius: 3px;
90
90
  border-top-left-radius: 3px;
91
91
  }
92
+ .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-container {
93
+ margin-left: -25%;
94
+ }
92
95
  .bootstrap-switch.bootstrap-switch-disabled,
93
- .bootstrap-switch.bootstrap-switch-readonly {
96
+ .bootstrap-switch.bootstrap-switch-readonly,
97
+ .bootstrap-switch.bootstrap-switch-indeterminate {
94
98
  opacity: 0.5;
95
99
  filter: alpha(opacity=50);
96
100
  cursor: default !important;
97
101
  }
98
102
  .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,
99
103
  .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,
104
+ .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,
100
105
  .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,
101
106
  .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,
107
+ .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,
102
108
  .bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,
103
- .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label {
109
+ .bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label,
110
+ .bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label {
104
111
  cursor: default !important;
105
112
  }
106
113
  .bootstrap-switch.bootstrap-switch-focused {
@@ -193,3 +200,7 @@
193
200
  filter: alpha(opacity=0);
194
201
  z-index: -1;
195
202
  }
203
+ .bootstrap-switch input[type='radio'].form-control,
204
+ .bootstrap-switch input[type='checkbox'].form-control {
205
+ height: auto;
206
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap-switch-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manuel van Rijn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-31 00:00:00.000000000 Z
11
+ date: 2014-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler