active_frontend 14.0.68 → 14.0.69
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: 0733efbe467ee1f300a256f64489a898521a045d
|
4
|
+
data.tar.gz: c27e6b9c2796793ac339eff852fc4ffa1dd2a7b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c11087d00cc9329c686fdc9932f26e38304454f740bb192b2ee13afa4295153166cd44ab0db5819170bc28d79d0d660adf74765eed890d540e1aea5060aaf89
|
7
|
+
data.tar.gz: c3f1156a906b9110e63111be1a23c8b8ae4d279bfd5e443239ca20629313a3e5b23482925a62ec2fc78748e71905a715486ffd22edbb38cfb30402ea2053df0c
|
@@ -8,10 +8,12 @@
|
|
8
8
|
this.$element = $(element);
|
9
9
|
this.settings = {
|
10
10
|
choices: this.$element.data('choices'),
|
11
|
+
fuzzySearch: this.$element.data('fuzzySearch'),
|
11
12
|
text: {
|
12
13
|
all: this.$element.data('text-all') || Choicepicker.DEFAULTS.text.all,
|
13
14
|
choiceless: this.$element.data('text-choiceless') || Choicepicker.DEFAULTS.text.choiceless,
|
14
15
|
none: this.$element.data('text-none') || Choicepicker.DEFAULTS.text.none,
|
16
|
+
placeholder: this.$element.data('text-placeholder') || Choicepicker.DEFAULTS.text.placeholder,
|
15
17
|
selectAll: this.$element.data('text-select-all') || Choicepicker.DEFAULTS.text.selectAll
|
16
18
|
},
|
17
19
|
type: this.$element.data('type')
|
@@ -20,24 +22,28 @@
|
|
20
22
|
|
21
23
|
this.$checkAll = false;
|
22
24
|
this.$selector = 'bsChoicepicker-label-' + this.randomNumber() + '-';
|
25
|
+
this.$fuzzyId = 'bsChoicepicker-fuzzy-' + this.randomNumber();
|
23
26
|
this.$widget = $(this.initWidget()).on('click', $.proxy(this.clickWidget, this));
|
24
27
|
|
25
28
|
this.init();
|
26
29
|
};
|
27
30
|
|
28
31
|
if (!$.fn.dropdown) throw new Error('Choicepicker requires dropdown.js');
|
32
|
+
if (!$.fn.list) throw new Error('Choicepicker requires list.js');
|
29
33
|
|
30
34
|
Choicepicker.VERSION = '1.0.0';
|
31
35
|
Choicepicker.DEFAULTS = {
|
32
36
|
callback: function (choice) {},
|
33
37
|
choices: [],
|
34
38
|
choiceClass: 'form-align-vertical',
|
39
|
+
fuzzySearch: true,
|
35
40
|
item: '<li></li>',
|
36
41
|
menu: '<ul class="choicepicker dropmenu caret"><span></span></ul>',
|
37
42
|
text: {
|
38
43
|
all: 'All',
|
39
44
|
choiceless: 'No choices available',
|
40
45
|
none: 'None',
|
46
|
+
placeholder: 'Filter options...',
|
41
47
|
selectAll: 'Select all'
|
42
48
|
},
|
43
49
|
type: 'checkbox'
|
@@ -72,9 +78,16 @@
|
|
72
78
|
var _self = this;
|
73
79
|
var menu = $(this.options.menu);
|
74
80
|
|
81
|
+
if (this.options.fuzzySearch) {
|
82
|
+
menu.attr('data-toggle', 'list')
|
83
|
+
.attr('data-input', '#' + this.$fuzzyId)
|
84
|
+
.find('span')
|
85
|
+
.append(this.fuzzyTemplate());
|
86
|
+
}
|
87
|
+
|
75
88
|
if (this.options.type === 'checkbox') {
|
76
89
|
menu.find('span')
|
77
|
-
.append(this.
|
90
|
+
.append(this.allTemplate());
|
78
91
|
}
|
79
92
|
|
80
93
|
$.each(this.options.choices, function (index, hash) {
|
@@ -176,7 +189,20 @@
|
|
176
189
|
return $('<label for="' + selector + '">');
|
177
190
|
};
|
178
191
|
|
179
|
-
Choicepicker.prototype.
|
192
|
+
Choicepicker.prototype.fuzzyTemplate = function () {
|
193
|
+
var container = $('<div class="form-input form-size-s">');
|
194
|
+
var textbox = $('<input type="text" placeholder="' + this.options.text.placeholder + '" id="' + this.$fuzzyId + '" autofocus>');
|
195
|
+
|
196
|
+
container.append(textbox);
|
197
|
+
|
198
|
+
var item = $(this.options.item);
|
199
|
+
item.addClass('choicepicker-fuzzy list-skip-filter')
|
200
|
+
.append(container);
|
201
|
+
|
202
|
+
return item;
|
203
|
+
};
|
204
|
+
|
205
|
+
Choicepicker.prototype.allTemplate = function () {
|
180
206
|
var selector = this.checkAllSelector();
|
181
207
|
var boxLabel = $('<label for="' + selector + '">');
|
182
208
|
var textLabel = boxLabel.clone();
|
@@ -191,7 +217,8 @@
|
|
191
217
|
container.append(boxLabel);
|
192
218
|
|
193
219
|
var item = $(this.options.item);
|
194
|
-
item.
|
220
|
+
item.addClass('list-skip-filter')
|
221
|
+
.append(container)
|
195
222
|
.append(textLabel.text(this.options.text.selectAll));
|
196
223
|
|
197
224
|
return item;
|
@@ -13,7 +13,7 @@
|
|
13
13
|
this.options = $.extend({}, List.DEFAULTS, this.settings, options);
|
14
14
|
|
15
15
|
this.$input = $(this.options.input);
|
16
|
-
this.$lis = this
|
16
|
+
this.$lis = this.listLis();
|
17
17
|
this.$len = this.$lis.length;
|
18
18
|
|
19
19
|
this.init();
|
@@ -41,6 +41,7 @@
|
|
41
41
|
|
42
42
|
for (var i = 0; i < _self.$len; i++) {
|
43
43
|
var li = $(_self.$lis[i]);
|
44
|
+
if (li.hasClass('list-skip-filter')) { continue; }
|
44
45
|
|
45
46
|
if (li.text().toLowerCase().indexOf(filter) >= 0) {
|
46
47
|
li.removeClass('hidden');
|
@@ -51,9 +52,16 @@
|
|
51
52
|
}
|
52
53
|
|
53
54
|
if (_self.options.placeholder !== null) {
|
55
|
+
var emptyLi = '<li class="bsListEmpty">' + _self.options.emptyText + '</li>';
|
54
56
|
list.find('.bsListEmpty').remove();
|
55
57
|
|
56
|
-
if (visible === 0)
|
58
|
+
if (visible === 0) {
|
59
|
+
if (_self.hasSpan()) {
|
60
|
+
list.find('span').append(emptyLi);
|
61
|
+
} else {
|
62
|
+
list.append(emptyLi);
|
63
|
+
}
|
64
|
+
}
|
57
65
|
}
|
58
66
|
|
59
67
|
_self.options.callback(visible);
|
@@ -62,6 +70,20 @@
|
|
62
70
|
});
|
63
71
|
};
|
64
72
|
|
73
|
+
List.prototype.hasSpan = function () {
|
74
|
+
return this.$element.children().first().is('span');
|
75
|
+
};
|
76
|
+
|
77
|
+
List.prototype.listLis = function () {
|
78
|
+
var kids = this.$element.children();
|
79
|
+
|
80
|
+
if (this.hasSpan()) {
|
81
|
+
kids = kids.children();
|
82
|
+
}
|
83
|
+
|
84
|
+
return kids;
|
85
|
+
};
|
86
|
+
|
65
87
|
// LIST PLUGIN DEFINITION
|
66
88
|
// ======================
|
67
89
|
|
@@ -14,8 +14,8 @@
|
|
14
14
|
overflow-x: auto;
|
15
15
|
|
16
16
|
> li {
|
17
|
-
border-
|
18
|
-
border-
|
17
|
+
border-top: 1px solid;
|
18
|
+
border-top-color: inherit;
|
19
19
|
clear: both;
|
20
20
|
display: block;
|
21
21
|
font-weight: inherit;
|
@@ -23,7 +23,10 @@
|
|
23
23
|
padding: 16px 20px 14px;
|
24
24
|
margin: 0;
|
25
25
|
|
26
|
-
&:
|
26
|
+
&:first-child { border-top: 0; }
|
27
|
+
|
28
|
+
&.hidden { display: none; }
|
29
|
+
&.choicepicker-fuzzy { padding: 10px 10px 5px; }
|
27
30
|
|
28
31
|
> label {
|
29
32
|
font-weight: text-weight(normal);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_frontend
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 14.0.
|
4
|
+
version: 14.0.69
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Gomez
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|