rails-bootstrap-toggle-buttons 0.0.5 → 0.0.6
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.
data/LICENSE.txt
CHANGED
File without changes
|
data/README.md
CHANGED
File without changes
|
File without changes
|
@@ -1,10 +1,13 @@
|
|
1
1
|
!function ($) {
|
2
2
|
"use strict";
|
3
|
-
// version: 2.
|
3
|
+
// version: 2.8.2
|
4
4
|
// by Mattia Larentis - follow me on twitter! @SpiritualGuru
|
5
5
|
|
6
6
|
var addToAttribute = function (obj, array, value) {
|
7
|
-
|
7
|
+
var i = 0
|
8
|
+
, length = array.length;
|
9
|
+
|
10
|
+
for (; i < length; i++) {
|
8
11
|
obj = obj[array[i]] = obj[array[i]] || i == ( length - 1) ? value : {}
|
9
12
|
}
|
10
13
|
};
|
@@ -12,6 +15,7 @@
|
|
12
15
|
$.fn.toggleButtons = function (method) {
|
13
16
|
var $element
|
14
17
|
, $div
|
18
|
+
, $cb
|
15
19
|
, transitionSpeed = 0.05
|
16
20
|
, methods = {
|
17
21
|
init: function (opt) {
|
@@ -31,7 +35,7 @@
|
|
31
35
|
|
32
36
|
if (i.indexOf("togglebutton") === 0) {
|
33
37
|
key = i.match(/[A-Z][a-z]+/g);
|
34
|
-
key =
|
38
|
+
key = $.map(key, function (n) {
|
35
39
|
return (n.toLowerCase());
|
36
40
|
});
|
37
41
|
|
@@ -48,12 +52,14 @@
|
|
48
52
|
$spanRight = $('<span></span>').addClass("labelRight").text(options.label.disabled === undefined ? "OFF " : options.label.disabled);
|
49
53
|
|
50
54
|
// html layout
|
51
|
-
$
|
55
|
+
$cb = $element.find('input:checkbox')
|
56
|
+
|
57
|
+
$div = $cb.wrap($('<div></div>')).parent();
|
52
58
|
$div.append($spanLeft);
|
53
|
-
$div.append($('<label></label>').attr('for', $
|
59
|
+
$div.append($('<label></label>').attr('for', $cb.attr('id') || ''));
|
54
60
|
$div.append($spanRight);
|
55
61
|
|
56
|
-
if ($
|
62
|
+
if ($cb.is(':checked'))
|
57
63
|
$element.find('>div').css('left', "0");
|
58
64
|
else $element.find('>div').css('left', "-50%");
|
59
65
|
|
@@ -85,7 +91,7 @@
|
|
85
91
|
.filter('span')
|
86
92
|
.css('line-height', options.height + "px");
|
87
93
|
|
88
|
-
if ($
|
94
|
+
if ($cb.is(':disabled'))
|
89
95
|
$(this).addClass('deactivate');
|
90
96
|
|
91
97
|
$element.find('span').css(options.font);
|
@@ -98,6 +104,7 @@
|
|
98
104
|
if (options.style.custom.enabled.gradient === undefined)
|
99
105
|
$spanLeft.css('background', options.style.custom.enabled.background);
|
100
106
|
else $.each(["-webkit-", "-moz-", "-o-", ""], function (i, el) {
|
107
|
+
$spanLeft.css('background-color', options.style.custom.enabled.background);
|
101
108
|
$spanLeft.css('background-image', el + 'linear-gradient(top, ' + options.style.custom.enabled.background + ',' + options.style.custom.enabled.gradient + ')');
|
102
109
|
});
|
103
110
|
}
|
@@ -111,6 +118,7 @@
|
|
111
118
|
if (options.style.custom.disabled.gradient === undefined)
|
112
119
|
$spanRight.css('background', options.style.custom.disabled.background);
|
113
120
|
else $.each(["-webkit-", "-moz-", "-o-", ""], function (i, el) {
|
121
|
+
$spanRight.css('background-color', options.style.custom.disabled.background);
|
114
122
|
$spanRight.css('background-image', el + 'linear-gradient(top, ' + options.style.custom.disabled.background + ',' + options.style.custom.disabled.gradient + ')');
|
115
123
|
});
|
116
124
|
}
|
@@ -118,7 +126,10 @@
|
|
118
126
|
else $spanRight.addClass(options.style.disabled);
|
119
127
|
|
120
128
|
var changeStatus = function ($this) {
|
121
|
-
$this.siblings('label')
|
129
|
+
$this.siblings('label')
|
130
|
+
.trigger('mousedown')
|
131
|
+
.trigger('mouseup')
|
132
|
+
.trigger('click');
|
122
133
|
};
|
123
134
|
|
124
135
|
$spanLeft.on('click', function (e) {
|
@@ -128,50 +139,51 @@
|
|
128
139
|
changeStatus($(this));
|
129
140
|
});
|
130
141
|
|
131
|
-
$
|
142
|
+
$element.find('input:checkbox').on('change', function (e, skipOnChange) {
|
132
143
|
var $element = $(this).parent()
|
133
144
|
, active = $(this).is(':checked')
|
134
145
|
, $toggleButton = $(this).closest('.toggle-button');
|
135
146
|
|
136
|
-
e.preventDefault();
|
137
|
-
e.stopImmediatePropagation();
|
138
|
-
|
139
147
|
$element.stop().animate({'left': active ? '0' : '-50%'}, $toggleButton.data('transitionSpeed'));
|
140
148
|
|
141
149
|
options = $toggleButton.data('options');
|
142
|
-
|
150
|
+
|
151
|
+
if (!skipOnChange)
|
152
|
+
options.onChange($element, active, e);
|
143
153
|
});
|
144
154
|
|
145
|
-
$
|
155
|
+
$element.find('label').on('mousedown touchstart', function (e) {
|
146
156
|
moving = false;
|
147
|
-
|
148
157
|
e.preventDefault();
|
149
158
|
e.stopImmediatePropagation();
|
150
159
|
|
151
160
|
if ($(this).closest('.toggle-button').is('.deactivate'))
|
152
|
-
$(this).
|
161
|
+
$(this).off('click');
|
153
162
|
else {
|
154
|
-
$(this).on('mousemove', function (e) {
|
163
|
+
$(this).on('mousemove touchmove', function (e) {
|
155
164
|
var $element = $(this).closest('.toggle-button')
|
156
|
-
, relativeX = e.pageX - $element.offset().left
|
165
|
+
, relativeX = (e.pageX || e.originalEvent.targetTouches[0].pageX) - $element.offset().left
|
157
166
|
, percent = ((relativeX / (options.width * 2)) * 100);
|
158
167
|
moving = true;
|
159
168
|
|
169
|
+
e.stopImmediatePropagation();
|
170
|
+
e.preventDefault();
|
171
|
+
|
160
172
|
if (percent < 25)
|
161
173
|
percent = 25;
|
162
174
|
else if (percent > 75)
|
163
175
|
percent = 75;
|
164
176
|
|
165
|
-
$element.find('>div').css('left', (percent - 75) + "%")
|
177
|
+
$element.find('>div').css('left', (percent - 75) + "%");
|
166
178
|
});
|
167
179
|
|
168
|
-
$(this).on('click', function (e) {
|
180
|
+
$(this).on('click touchend', function (e) {
|
169
181
|
var $target = $(e.target)
|
170
|
-
, $myCheckBox = $target.siblings('input');
|
182
|
+
, $myCheckBox = $target.siblings('input:checkbox');
|
171
183
|
|
172
184
|
e.stopImmediatePropagation();
|
173
185
|
e.preventDefault();
|
174
|
-
$(this).
|
186
|
+
$(this).off('mouseleave');
|
175
187
|
|
176
188
|
if (moving)
|
177
189
|
if (parseInt($(this).parent().css('left')) < -25)
|
@@ -183,12 +195,12 @@
|
|
183
195
|
});
|
184
196
|
|
185
197
|
$(this).on('mouseleave', function (e) {
|
186
|
-
var $myCheckBox = $(this).siblings('input');
|
198
|
+
var $myCheckBox = $(this).siblings('input:checkbox');
|
187
199
|
|
188
200
|
e.preventDefault();
|
189
201
|
e.stopImmediatePropagation();
|
190
202
|
|
191
|
-
$(this).
|
203
|
+
$(this).off('mouseleave');
|
192
204
|
$(this).trigger('mouseup');
|
193
205
|
|
194
206
|
if (parseInt($(this).parent().css('left')) < -25)
|
@@ -201,16 +213,39 @@
|
|
201
213
|
$(this).on('mouseup', function (e) {
|
202
214
|
e.stopImmediatePropagation();
|
203
215
|
e.preventDefault();
|
204
|
-
$(this).
|
216
|
+
$(this).off('mousemove');
|
205
217
|
});
|
206
218
|
}
|
207
219
|
});
|
208
220
|
}
|
209
|
-
)
|
210
|
-
;
|
221
|
+
);
|
222
|
+
return this;
|
211
223
|
},
|
212
224
|
toggleActivation: function () {
|
213
225
|
$(this).toggleClass('deactivate');
|
226
|
+
},
|
227
|
+
toggleState: function (skipOnChange) {
|
228
|
+
var $input = $(this).find('input:checkbox');
|
229
|
+
$input.attr('checked', !$input.is(':checked')).trigger('change', skipOnChange);
|
230
|
+
},
|
231
|
+
setState: function(value, skipOnChange) {
|
232
|
+
$(this).find('input:checkbox').attr('checked', value).trigger('change', skipOnChange);
|
233
|
+
},
|
234
|
+
status: function () {
|
235
|
+
return $(this).find('input:checkbox').is(':checked');
|
236
|
+
},
|
237
|
+
destroy: function () {
|
238
|
+
var $div = $(this).find('div')
|
239
|
+
, $checkbox;
|
240
|
+
|
241
|
+
$div.find(':not(input:checkbox)').remove();
|
242
|
+
|
243
|
+
$checkbox = $div.children();
|
244
|
+
$checkbox.unwrap().unwrap();
|
245
|
+
|
246
|
+
$checkbox.unbind('change');
|
247
|
+
|
248
|
+
return $checkbox;
|
214
249
|
}
|
215
250
|
};
|
216
251
|
|
@@ -219,7 +254,7 @@
|
|
219
254
|
else if (typeof method === 'object' || !method)
|
220
255
|
return methods.init.apply(this, arguments);
|
221
256
|
else
|
222
|
-
$.error('Method ' + method + ' does not exist
|
257
|
+
$.error('Method ' + method + ' does not exist!');
|
223
258
|
};
|
224
259
|
|
225
260
|
$.fn.toggleButtons.defaults = {
|
@@ -251,4 +286,4 @@
|
|
251
286
|
}
|
252
287
|
}
|
253
288
|
};
|
254
|
-
}(
|
289
|
+
}(jQuery);
|
@@ -96,60 +96,60 @@
|
|
96
96
|
-webkit-border-bottom-right-radius: 4px;
|
97
97
|
border-bottom-right-radius: 4px;
|
98
98
|
color: black;
|
99
|
-
background-image: -webkit-gradient(linear, 50%
|
100
|
-
background-image: -webkit-linear-gradient(
|
101
|
-
background-image: -moz-linear-gradient(
|
102
|
-
background-image: -o-linear-gradient(
|
103
|
-
background-image: linear-gradient(
|
99
|
+
background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #fefefe), color-stop(100%, #e6e6e6));
|
100
|
+
background-image: -webkit-linear-gradient(bottom, #fefefe, #e6e6e6);
|
101
|
+
background-image: -moz-linear-gradient(bottom, #fefefe, #e6e6e6);
|
102
|
+
background-image: -o-linear-gradient(bottom, #fefefe, #e6e6e6);
|
103
|
+
background-image: linear-gradient(bottom, #fefefe, #e6e6e6);
|
104
104
|
padding-right: 3px;
|
105
105
|
}
|
106
106
|
/* line 91, ../sass/bootstrap-toggle-buttons.scss */
|
107
107
|
.toggle-button span.primary, .toggle-button span.labelLeft {
|
108
108
|
color: #fefefe;
|
109
109
|
background: #0088cc;
|
110
|
-
background-image: -webkit-gradient(linear, 50%
|
111
|
-
background-image: -webkit-linear-gradient(
|
112
|
-
background-image: -moz-linear-gradient(
|
113
|
-
background-image: -o-linear-gradient(
|
114
|
-
background-image: linear-gradient(
|
110
|
+
background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #0088cc), color-stop(100%, #0055cc));
|
111
|
+
background-image: -webkit-linear-gradient(bottom, #0088cc, #0055cc);
|
112
|
+
background-image: -moz-linear-gradient(bottom, #0088cc, #0055cc);
|
113
|
+
background-image: -o-linear-gradient(bottom, #0088cc, #0055cc);
|
114
|
+
background-image: linear-gradient(bottom, #0088cc, #0055cc);
|
115
115
|
}
|
116
116
|
/* line 96, ../sass/bootstrap-toggle-buttons.scss */
|
117
117
|
.toggle-button span.info {
|
118
118
|
color: #fefefe;
|
119
119
|
background: #5bc0de;
|
120
|
-
background-image: -webkit-gradient(linear, 50%
|
121
|
-
background-image: -webkit-linear-gradient(
|
122
|
-
background-image: -moz-linear-gradient(
|
123
|
-
background-image: -o-linear-gradient(
|
124
|
-
background-image: linear-gradient(
|
120
|
+
background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #5bc0de), color-stop(100%, #2f96b4));
|
121
|
+
background-image: -webkit-linear-gradient(bottom, #5bc0de, #2f96b4);
|
122
|
+
background-image: -moz-linear-gradient(bottom, #5bc0de, #2f96b4);
|
123
|
+
background-image: -o-linear-gradient(bottom, #5bc0de, #2f96b4);
|
124
|
+
background-image: linear-gradient(bottom, #5bc0de, #2f96b4);
|
125
125
|
}
|
126
126
|
/* line 102, ../sass/bootstrap-toggle-buttons.scss */
|
127
127
|
.toggle-button span.success {
|
128
128
|
color: #fefefe;
|
129
129
|
background: #62c462;
|
130
|
-
background-image: -webkit-gradient(linear, 50%
|
131
|
-
background-image: -webkit-linear-gradient(
|
132
|
-
background-image: -moz-linear-gradient(
|
133
|
-
background-image: -o-linear-gradient(
|
134
|
-
background-image: linear-gradient(
|
130
|
+
background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #62c462), color-stop(100%, #51a351));
|
131
|
+
background-image: -webkit-linear-gradient(bottom, #62c462, #51a351);
|
132
|
+
background-image: -moz-linear-gradient(bottom, #62c462, #51a351);
|
133
|
+
background-image: -o-linear-gradient(bottom, #62c462, #51a351);
|
134
|
+
background-image: linear-gradient(bottom, #62c462, #51a351);
|
135
135
|
}
|
136
136
|
/* line 108, ../sass/bootstrap-toggle-buttons.scss */
|
137
137
|
.toggle-button span.warning {
|
138
138
|
color: #fefefe;
|
139
139
|
background: #dbb450;
|
140
|
-
background-image: -webkit-gradient(linear, 50%
|
141
|
-
background-image: -webkit-linear-gradient(
|
142
|
-
background-image: -moz-linear-gradient(
|
143
|
-
background-image: -o-linear-gradient(
|
144
|
-
background-image: linear-gradient(
|
140
|
+
background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #dbb450), color-stop(100%, #f89406));
|
141
|
+
background-image: -webkit-linear-gradient(bottom, #dbb450, #f89406);
|
142
|
+
background-image: -moz-linear-gradient(bottom, #dbb450, #f89406);
|
143
|
+
background-image: -o-linear-gradient(bottom, #dbb450, #f89406);
|
144
|
+
background-image: linear-gradient(bottom, #dbb450, #f89406);
|
145
145
|
}
|
146
146
|
/* line 114, ../sass/bootstrap-toggle-buttons.scss */
|
147
147
|
.toggle-button span.danger {
|
148
148
|
color: #fefefe;
|
149
149
|
background: #ee5f5b;
|
150
|
-
background-image: -webkit-gradient(linear, 50%
|
151
|
-
background-image: -webkit-linear-gradient(
|
152
|
-
background-image: -moz-linear-gradient(
|
153
|
-
background-image: -o-linear-gradient(
|
154
|
-
background-image: linear-gradient(
|
155
|
-
}
|
150
|
+
background-image: -webkit-gradient(linear, 50% 100%, 50% 0%, color-stop(0%, #ee5f5b), color-stop(100%, #bd362f));
|
151
|
+
background-image: -webkit-linear-gradient(bottom, #ee5f5b, #bd362f);
|
152
|
+
background-image: -moz-linear-gradient(bottom, #ee5f5b, #bd362f);
|
153
|
+
background-image: -o-linear-gradient(bottom, #ee5f5b, #bd362f);
|
154
|
+
background-image: linear-gradient(bottom, #ee5f5b, #bd362f);
|
155
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-bootstrap-toggle-buttons
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-11 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Just providing the bootstrap-toggle-buttons from https://github.com/nostalgiaz/bootstrap-toggle-buttons
|
15
15
|
into a gem.
|
@@ -20,8 +20,8 @@ extensions: []
|
|
20
20
|
extra_rdoc_files: []
|
21
21
|
files:
|
22
22
|
- lib/rails-bootstrap-toggle-buttons.rb
|
23
|
-
- vendor/assets/javascripts/bootstrap-toggle-buttons.js
|
24
23
|
- vendor/assets/stylesheets/bootstrap-toggle-buttons.css
|
24
|
+
- vendor/assets/javascripts/bootstrap-toggle-buttons.js
|
25
25
|
- LICENSE.txt
|
26
26
|
- README.md
|
27
27
|
homepage: https://github.com/caarlos0/rails-bootstrap-toggle-buttons.git
|
@@ -44,7 +44,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
44
44
|
version: '0'
|
45
45
|
requirements: []
|
46
46
|
rubyforge_project:
|
47
|
-
rubygems_version: 1.8.
|
47
|
+
rubygems_version: 1.8.23
|
48
48
|
signing_key:
|
49
49
|
specification_version: 3
|
50
50
|
summary: A simple gem for https://github.com/nostalgiaz/bootstrap-toggle-buttons
|