selectize-rails 0.12.1 → 0.12.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +70 -68
- data/lib/selectize-rails/version.rb +1 -1
- data/selectize-rails.gemspec +1 -1
- data/update_from_vendor.sh +2 -2
- data/vendor/assets/javascripts/selectize.js +176 -83
- data/vendor/assets/stylesheets/selectize.bootstrap2.css +7 -1
- data/vendor/assets/stylesheets/selectize.bootstrap3.css +7 -1
- data/vendor/assets/stylesheets/selectize.css +7 -1
- data/vendor/assets/stylesheets/selectize.default.css +7 -1
- data/vendor/assets/stylesheets/selectize.legacy.css +7 -1
- metadata +4 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7e84f5ce126f32fbabf41a9e52abf21ee50f21a
|
4
|
+
data.tar.gz: 2116854e115d27fd63d4de6c5204247d69fa2e21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27112eea339556194297538b0b2594479e67f3c291a8a5ca21a58c53456ce7b3a7113a9f61be5fe1cb7e696f2e7954da736415798c04fe6d7fa22274290916e7
|
7
|
+
data.tar.gz: 9e01c04d222aeee330d023e6e45ba27a17e8059476ddb447f64c169139359ccdd044e7dbbcba6f760c2860b3d797540c489d8e20adea8349c222d4c631c7b81e
|
data/README.md
CHANGED
@@ -1,68 +1,70 @@
|
|
1
|
-
# selectize-rails [![Gem Version](https://badge.fury.io/rb/selectize-rails.png)](http://badge.fury.io/rb/selectize-rails)
|
2
|
-
|
3
|
-
selectize-rails provides the [selectize.js](http://brianreavis.github.io/selectize.js/)
|
4
|
-
plugin as a Rails engine to use it within the asset pipeline.
|
5
|
-
|
6
|
-
## Installation
|
7
|
-
|
8
|
-
Add this to your Gemfile:
|
9
|
-
|
10
|
-
```ruby
|
11
|
-
gem "selectize-rails"
|
12
|
-
```
|
13
|
-
|
14
|
-
and run `bundle install`.
|
15
|
-
|
16
|
-
## Usage
|
17
|
-
|
18
|
-
In your `application.js`, include the following:
|
19
|
-
|
20
|
-
```js
|
21
|
-
//= require selectize
|
22
|
-
```
|
23
|
-
|
24
|
-
In your `application.css`, include the following:
|
25
|
-
|
26
|
-
```css
|
27
|
-
*= require selectize
|
28
|
-
*= require selectize.default
|
29
|
-
```
|
30
|
-
|
31
|
-
### Themes
|
32
|
-
|
33
|
-
To include additional theme's you can replace the `selectize.default` for one of the [theme files](https://github.com/brianreavis/selectize.js/tree/master/dist/css)
|
34
|
-
|
35
|
-
|
36
|
-
## Examples
|
37
|
-
|
38
|
-
See the [demo page of Brian Reavis](http://brianreavis.github.io/selectize.js/) for examples how to use the plugin
|
39
|
-
|
40
|
-
## Changes
|
41
|
-
|
42
|
-
| Version | Notes |
|
43
|
-
| --------:| ----------------------------------------------------------- |
|
44
|
-
| 0.12.
|
45
|
-
| 0.
|
46
|
-
| 0.
|
47
|
-
| 0.
|
48
|
-
| 0.
|
49
|
-
| 0.
|
50
|
-
| 0.
|
51
|
-
| 0.8.
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
* The [selectize
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
1
|
+
# selectize-rails [![Gem Version](https://badge.fury.io/rb/selectize-rails.png)](http://badge.fury.io/rb/selectize-rails)
|
2
|
+
|
3
|
+
selectize-rails provides the [selectize.js](http://brianreavis.github.io/selectize.js/)
|
4
|
+
plugin as a Rails engine to use it within the asset pipeline.
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
Add this to your Gemfile:
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
gem "selectize-rails"
|
12
|
+
```
|
13
|
+
|
14
|
+
and run `bundle install`.
|
15
|
+
|
16
|
+
## Usage
|
17
|
+
|
18
|
+
In your `application.js`, include the following:
|
19
|
+
|
20
|
+
```js
|
21
|
+
//= require selectize
|
22
|
+
```
|
23
|
+
|
24
|
+
In your `application.css`, include the following:
|
25
|
+
|
26
|
+
```css
|
27
|
+
*= require selectize
|
28
|
+
*= require selectize.default
|
29
|
+
```
|
30
|
+
|
31
|
+
### Themes
|
32
|
+
|
33
|
+
To include additional theme's you can replace the `selectize.default` for one of the [theme files](https://github.com/brianreavis/selectize.js/tree/master/dist/css)
|
34
|
+
|
35
|
+
|
36
|
+
## Examples
|
37
|
+
|
38
|
+
See the [demo page of Brian Reavis](http://brianreavis.github.io/selectize.js/) for examples how to use the plugin
|
39
|
+
|
40
|
+
## Changes
|
41
|
+
|
42
|
+
| Version | Notes |
|
43
|
+
| --------:| ----------------------------------------------------------- |
|
44
|
+
| 0.12.2 | Update to v0.12.2 of selectize.js |
|
45
|
+
| 0.12.1 | Update to v0.12.1 of selectize.js |
|
46
|
+
| 0.12.0 | Update to v0.12.0 of selectize.js |
|
47
|
+
| 0.11.2 | Update to v0.11.2 of selectize.js |
|
48
|
+
| 0.11.0 | Update to v0.11.0 of selectize.js |
|
49
|
+
| 0.9.1 | Update to v0.9.1 of selectize.js |
|
50
|
+
| 0.9.0 | Update to v0.9.0 of selectize.js |
|
51
|
+
| 0.8.5 | Update to v0.8.5 of selectize.js |
|
52
|
+
| 0.8.4 | Update to v0.8.4 of selectize.js |
|
53
|
+
| 0.8.3 | Update to v0.8.3 of selectize.js |
|
54
|
+
|
55
|
+
[older](CHANGELOG.md)
|
56
|
+
|
57
|
+
## License
|
58
|
+
|
59
|
+
* The [selectize.js](http://brianreavis.github.io/selectize.js/) plugin is licensed under the
|
60
|
+
[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
61
|
+
* The [selectize-rails](https://github.com/manuelvanrijn/selectize-rails) project is
|
62
|
+
licensed under the [MIT License](http://opensource.org/licenses/mit-license.html)
|
63
|
+
|
64
|
+
## Contributing
|
65
|
+
|
66
|
+
1. Fork it
|
67
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
68
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
69
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
70
|
+
5. Create new Pull Request
|
data/selectize-rails.gemspec
CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = "selectize-rails"
|
8
8
|
spec.version = Selectize::Rails::VERSION
|
9
9
|
spec.authors = ["Manuel van Rijn"]
|
10
|
-
spec.email = ["manuel@
|
10
|
+
spec.email = ["manuel@manuelvanrijn.nl"]
|
11
11
|
spec.description = %q{A small gem for putting selectize.js into the Rails asset pipeline}
|
12
12
|
spec.summary = %q{an asset gemification of the selectize.js plugin}
|
13
13
|
spec.homepage = "https://github.com/manuelvanrijn/selectize-rails"
|
data/update_from_vendor.sh
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
#!/bin/bash
|
2
2
|
|
3
3
|
# Checkout vendor repo
|
4
|
-
echo "Cloning
|
5
|
-
git clone https://github.com/
|
4
|
+
echo "Cloning selectize/selectize.js github repo into tmp_vendor"
|
5
|
+
git clone https://github.com/selectize/selectize.js.git tmp_vendor
|
6
6
|
|
7
7
|
# Copy files
|
8
8
|
echo "Copying selectize.js"
|
@@ -114,13 +114,14 @@
|
|
114
114
|
* @returns {function}
|
115
115
|
*/
|
116
116
|
Sifter.prototype.getScoreFunction = function(search, options) {
|
117
|
-
var self, fields, tokens, token_count;
|
117
|
+
var self, fields, tokens, token_count, nesting;
|
118
118
|
|
119
119
|
self = this;
|
120
120
|
search = self.prepareSearch(search, options);
|
121
121
|
tokens = search.tokens;
|
122
122
|
fields = search.options.fields;
|
123
123
|
token_count = tokens.length;
|
124
|
+
nesting = search.options.nesting;
|
124
125
|
|
125
126
|
/**
|
126
127
|
* Calculates how close of a match the
|
@@ -157,12 +158,12 @@
|
|
157
158
|
}
|
158
159
|
if (field_count === 1) {
|
159
160
|
return function(token, data) {
|
160
|
-
return scoreValue(data
|
161
|
+
return scoreValue(getattr(data, fields[0], nesting), token);
|
161
162
|
};
|
162
163
|
}
|
163
164
|
return function(token, data) {
|
164
165
|
for (var i = 0, sum = 0; i < field_count; i++) {
|
165
|
-
sum += scoreValue(data
|
166
|
+
sum += scoreValue(getattr(data, fields[i], nesting), token);
|
166
167
|
}
|
167
168
|
return sum / field_count;
|
168
169
|
};
|
@@ -223,7 +224,7 @@
|
|
223
224
|
*/
|
224
225
|
get_field = function(name, result) {
|
225
226
|
if (name === '$score') return result.score;
|
226
|
-
return self.items[result.id]
|
227
|
+
return getattr(self.items[result.id], name, options.nesting);
|
227
228
|
};
|
228
229
|
|
229
230
|
// parse options
|
@@ -412,6 +413,21 @@
|
|
412
413
|
return a;
|
413
414
|
};
|
414
415
|
|
416
|
+
/**
|
417
|
+
* A property getter resolving dot-notation
|
418
|
+
* @param {Object} obj The root object to fetch property on
|
419
|
+
* @param {String} name The optionally dotted property name to fetch
|
420
|
+
* @param {Boolean} nesting Handle nesting or not
|
421
|
+
* @return {Object} The resolved property value
|
422
|
+
*/
|
423
|
+
var getattr = function(obj, name, nesting) {
|
424
|
+
if (!obj || !name) return;
|
425
|
+
if (!nesting) return obj[name];
|
426
|
+
var names = name.split(".");
|
427
|
+
while(names.length && (obj = obj[names.shift()]));
|
428
|
+
return obj;
|
429
|
+
};
|
430
|
+
|
415
431
|
var trim = function(str) {
|
416
432
|
return (str + '').replace(/^\s+|\s+$|/g, '');
|
417
433
|
};
|
@@ -420,25 +436,36 @@
|
|
420
436
|
return (str + '').replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
|
421
437
|
};
|
422
438
|
|
423
|
-
var is_array = Array.isArray || ($ && $.isArray) || function(object) {
|
439
|
+
var is_array = Array.isArray || (typeof $ !== 'undefined' && $.isArray) || function(object) {
|
424
440
|
return Object.prototype.toString.call(object) === '[object Array]';
|
425
441
|
};
|
426
442
|
|
427
443
|
var DIACRITICS = {
|
428
|
-
'a': '[
|
429
|
-
'
|
430
|
-
'
|
431
|
-
'
|
432
|
-
'
|
433
|
-
'
|
434
|
-
'
|
435
|
-
'
|
436
|
-
'
|
437
|
-
'
|
438
|
-
'
|
439
|
-
'
|
440
|
-
'
|
441
|
-
'
|
444
|
+
'a': '[aḀḁĂăÂâǍǎȺⱥȦȧẠạÄäÀàÁáĀāÃãÅåąĄÃąĄ]',
|
445
|
+
'b': '[b␢βΒB฿𐌁ᛒ]',
|
446
|
+
'c': '[cĆćĈĉČčĊċC̄c̄ÇçḈḉȻȼƇƈɕᴄCc]',
|
447
|
+
'd': '[dĎďḊḋḐḑḌḍḒḓḎḏĐđD̦d̦ƉɖƊɗƋƌᵭᶁᶑȡᴅDdð]',
|
448
|
+
'e': '[eÉéÈèÊêḘḙĚěĔĕẼẽḚḛẺẻĖėËëĒēȨȩĘęᶒɆɇȄȅẾếỀềỄễỂểḜḝḖḗḔḕȆȇẸẹỆệⱸᴇEeɘǝƏƐε]',
|
449
|
+
'f': '[fƑƒḞḟ]',
|
450
|
+
'g': '[gɢ₲ǤǥĜĝĞğĢģƓɠĠġ]',
|
451
|
+
'h': '[hĤĥĦħḨḩẖẖḤḥḢḣɦʰǶƕ]',
|
452
|
+
'i': '[iÍíÌìĬĭÎîǏǐÏïḮḯĨĩĮįĪīỈỉȈȉȊȋỊịḬḭƗɨɨ̆ᵻᶖİiIıɪIi]',
|
453
|
+
'j': '[jȷĴĵɈɉʝɟʲ]',
|
454
|
+
'k': '[kƘƙꝀꝁḰḱǨǩḲḳḴḵκϰ₭]',
|
455
|
+
'l': '[lŁłĽľĻļĹĺḶḷḸḹḼḽḺḻĿŀȽƚⱠⱡⱢɫɬᶅɭȴʟLl]',
|
456
|
+
'n': '[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲȠƞᵰᶇɳȵɴNnŊŋ]',
|
457
|
+
'o': '[oØøÖöÓóÒòÔôǑǒŐőŎŏȮȯỌọƟɵƠơỎỏŌōÕõǪǫȌȍՕօ]',
|
458
|
+
'p': '[pṔṕṖṗⱣᵽƤƥᵱ]',
|
459
|
+
'q': '[qꝖꝗʠɊɋꝘꝙq̃]',
|
460
|
+
'r': '[rŔŕɌɍŘřŖŗṘṙȐȑȒȓṚṛⱤɽ]',
|
461
|
+
's': '[sŚśṠṡṢṣꞨꞩŜŝŠšŞşȘșS̈s̈]',
|
462
|
+
't': '[tŤťṪṫŢţṬṭƮʈȚțṰṱṮṯƬƭ]',
|
463
|
+
'u': '[uŬŭɄʉỤụÜüÚúÙùÛûǓǔŰűŬŭƯưỦủŪūŨũŲųȔȕ∪]',
|
464
|
+
'v': '[vṼṽṾṿƲʋꝞꝟⱱʋ]',
|
465
|
+
'w': '[wẂẃẀẁŴŵẄẅẆẇẈẉ]',
|
466
|
+
'x': '[xẌẍẊẋχ]',
|
467
|
+
'y': '[yÝýỲỳŶŷŸÿỸỹẎẏỴỵɎɏƳƴ]',
|
468
|
+
'z': '[zŹźẐẑŽžŻżẒẓẔẕƵƶ]'
|
442
469
|
};
|
443
470
|
|
444
471
|
var asciifold = (function() {
|
@@ -608,7 +635,7 @@
|
|
608
635
|
}));
|
609
636
|
|
610
637
|
/**
|
611
|
-
* selectize.js (v0.12.
|
638
|
+
* selectize.js (v0.12.2)
|
612
639
|
* Copyright (c) 2013–2015 Brian Reavis & contributors
|
613
640
|
*
|
614
641
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
|
@@ -1053,6 +1080,15 @@
|
|
1053
1080
|
update();
|
1054
1081
|
};
|
1055
1082
|
|
1083
|
+
var domToString = function(d) {
|
1084
|
+
var tmp = document.createElement('div');
|
1085
|
+
|
1086
|
+
tmp.appendChild(d.cloneNode(true));
|
1087
|
+
|
1088
|
+
return tmp.innerHTML;
|
1089
|
+
};
|
1090
|
+
|
1091
|
+
|
1056
1092
|
var Selectize = function($input, settings) {
|
1057
1093
|
var key, i, n, dir, input, self = this;
|
1058
1094
|
input = $input[0];
|
@@ -1602,7 +1638,7 @@
|
|
1602
1638
|
* Invokes the user-provide option provider / loader.
|
1603
1639
|
*
|
1604
1640
|
* Note: this function is debounced in the Selectize
|
1605
|
-
* constructor (by `settings.
|
1641
|
+
* constructor (by `settings.loadThrottle` milliseconds)
|
1606
1642
|
*
|
1607
1643
|
* @param {string} value
|
1608
1644
|
*/
|
@@ -1677,7 +1713,7 @@
|
|
1677
1713
|
self.refreshState();
|
1678
1714
|
|
1679
1715
|
// IE11 bug: element still marked as active
|
1680
|
-
|
1716
|
+
dest && dest.focus();
|
1681
1717
|
|
1682
1718
|
self.ignoreFocus = false;
|
1683
1719
|
self.trigger('blur');
|
@@ -2115,10 +2151,10 @@
|
|
2115
2151
|
optgroup = '';
|
2116
2152
|
}
|
2117
2153
|
if (!groups.hasOwnProperty(optgroup)) {
|
2118
|
-
groups[optgroup] =
|
2154
|
+
groups[optgroup] = document.createDocumentFragment();
|
2119
2155
|
groups_order.push(optgroup);
|
2120
2156
|
}
|
2121
|
-
groups[optgroup].
|
2157
|
+
groups[optgroup].appendChild(option_html);
|
2122
2158
|
}
|
2123
2159
|
}
|
2124
2160
|
|
@@ -2132,23 +2168,26 @@
|
|
2132
2168
|
}
|
2133
2169
|
|
2134
2170
|
// render optgroup headers & join groups
|
2135
|
-
html =
|
2171
|
+
html = document.createDocumentFragment();
|
2136
2172
|
for (i = 0, n = groups_order.length; i < n; i++) {
|
2137
2173
|
optgroup = groups_order[i];
|
2138
|
-
if (self.optgroups.hasOwnProperty(optgroup) && groups[optgroup].length) {
|
2174
|
+
if (self.optgroups.hasOwnProperty(optgroup) && groups[optgroup].childNodes.length) {
|
2139
2175
|
// render the optgroup header and options within it,
|
2140
2176
|
// then pass it to the wrapper template
|
2141
|
-
html_children =
|
2142
|
-
html_children
|
2143
|
-
|
2144
|
-
|
2177
|
+
html_children = document.createDocumentFragment();
|
2178
|
+
html_children.appendChild(self.render('optgroup_header', self.optgroups[optgroup]));
|
2179
|
+
html_children.appendChild(groups[optgroup]);
|
2180
|
+
|
2181
|
+
html.appendChild(self.render('optgroup', $.extend({}, self.optgroups[optgroup], {
|
2182
|
+
html: domToString(html_children),
|
2183
|
+
dom: html_children
|
2145
2184
|
})));
|
2146
2185
|
} else {
|
2147
|
-
html.
|
2186
|
+
html.appendChild(groups[optgroup]);
|
2148
2187
|
}
|
2149
2188
|
}
|
2150
2189
|
|
2151
|
-
$dropdown_content.html(html
|
2190
|
+
$dropdown_content.html(html);
|
2152
2191
|
|
2153
2192
|
// highlight matching terms inline
|
2154
2193
|
if (self.settings.highlight && results.query.length && results.tokens.length) {
|
@@ -2236,7 +2275,7 @@
|
|
2236
2275
|
*/
|
2237
2276
|
registerOption: function(data) {
|
2238
2277
|
var key = hash_key(data[this.settings.valueField]);
|
2239
|
-
if (
|
2278
|
+
if (typeof key === 'undefined' || key === null || this.options.hasOwnProperty(key)) return false;
|
2240
2279
|
data.$order = data.$order || ++this.order;
|
2241
2280
|
this.options[key] = data;
|
2242
2281
|
return key;
|
@@ -2539,7 +2578,7 @@
|
|
2539
2578
|
var self = this;
|
2540
2579
|
var $item, i, idx;
|
2541
2580
|
|
2542
|
-
$item = (
|
2581
|
+
$item = (value instanceof $) ? value : self.getItem(value);
|
2543
2582
|
value = hash_key($item.attr('data-value'));
|
2544
2583
|
i = self.items.indexOf(value);
|
2545
2584
|
|
@@ -3099,26 +3138,26 @@
|
|
3099
3138
|
}
|
3100
3139
|
|
3101
3140
|
// render markup
|
3102
|
-
html = self.settings.render[templateName].apply(this, [data, escape_html]);
|
3141
|
+
html = $(self.settings.render[templateName].apply(this, [data, escape_html]));
|
3103
3142
|
|
3104
3143
|
// add mandatory attributes
|
3105
3144
|
if (templateName === 'option' || templateName === 'option_create') {
|
3106
|
-
html
|
3145
|
+
html.attr('data-selectable', '');
|
3107
3146
|
}
|
3108
|
-
if (templateName === 'optgroup') {
|
3147
|
+
else if (templateName === 'optgroup') {
|
3109
3148
|
id = data[self.settings.optgroupValueField] || '';
|
3110
|
-
html
|
3149
|
+
html.attr('data-group', id);
|
3111
3150
|
}
|
3112
3151
|
if (templateName === 'option' || templateName === 'item') {
|
3113
|
-
html
|
3152
|
+
html.attr('data-value', value || '');
|
3114
3153
|
}
|
3115
3154
|
|
3116
3155
|
// update cache
|
3117
3156
|
if (cache) {
|
3118
|
-
self.renderCache[templateName][value] = html;
|
3157
|
+
self.renderCache[templateName][value] = html[0];
|
3119
3158
|
}
|
3120
3159
|
|
3121
|
-
return html;
|
3160
|
+
return html[0];
|
3122
3161
|
},
|
3123
3162
|
|
3124
3163
|
/**
|
@@ -3301,7 +3340,7 @@
|
|
3301
3340
|
var addOption = function($option, group) {
|
3302
3341
|
$option = $($option);
|
3303
3342
|
|
3304
|
-
var value = hash_key($option.
|
3343
|
+
var value = hash_key($option.val());
|
3305
3344
|
if (!value && !settings.allowEmptyOption) return;
|
3306
3345
|
|
3307
3346
|
// if the option already exists, it's probably been
|
@@ -3580,60 +3619,114 @@
|
|
3580
3619
|
});
|
3581
3620
|
|
3582
3621
|
Selectize.define('remove_button', function(options) {
|
3583
|
-
if (this.settings.mode === 'single') return;
|
3584
|
-
|
3585
3622
|
options = $.extend({
|
3586
|
-
|
3587
|
-
|
3588
|
-
|
3589
|
-
|
3590
|
-
|
3623
|
+
label : '×',
|
3624
|
+
title : 'Remove',
|
3625
|
+
className : 'remove',
|
3626
|
+
append : true
|
3627
|
+
}, options);
|
3628
|
+
|
3629
|
+
var singleClose = function(thisRef, options) {
|
3630
|
+
|
3631
|
+
options.className = 'remove-single';
|
3632
|
+
|
3633
|
+
var self = thisRef;
|
3634
|
+
var html = '<a href="javascript:void(0)" class="' + options.className + '" tabindex="-1" title="' + escape_html(options.title) + '">' + options.label + '</a>';
|
3635
|
+
|
3636
|
+
/**
|
3637
|
+
* Appends an element as a child (with raw HTML).
|
3638
|
+
*
|
3639
|
+
* @param {string} html_container
|
3640
|
+
* @param {string} html_element
|
3641
|
+
* @return {string}
|
3642
|
+
*/
|
3643
|
+
var append = function(html_container, html_element) {
|
3644
|
+
return html_container + html_element;
|
3645
|
+
};
|
3591
3646
|
|
3592
|
-
|
3593
|
-
|
3647
|
+
thisRef.setup = (function() {
|
3648
|
+
var original = self.setup;
|
3649
|
+
return function() {
|
3650
|
+
// override the item rendering method to add the button to each
|
3651
|
+
if (options.append) {
|
3652
|
+
var id = $(self.$input.context).attr('id');
|
3653
|
+
var selectizer = $('#'+id);
|
3654
|
+
|
3655
|
+
var render_item = self.settings.render.item;
|
3656
|
+
self.settings.render.item = function(data) {
|
3657
|
+
return append(render_item.apply(thisRef, arguments), html);
|
3658
|
+
};
|
3659
|
+
}
|
3594
3660
|
|
3595
|
-
|
3596
|
-
|
3597
|
-
|
3598
|
-
|
3599
|
-
|
3600
|
-
|
3601
|
-
|
3602
|
-
|
3603
|
-
|
3604
|
-
return html_container.substring(0, pos) + html_element + html_container.substring(pos);
|
3605
|
-
};
|
3661
|
+
original.apply(thisRef, arguments);
|
3662
|
+
|
3663
|
+
// add event listener
|
3664
|
+
thisRef.$control.on('click', '.' + options.className, function(e) {
|
3665
|
+
e.preventDefault();
|
3666
|
+
if (self.isLocked) return;
|
3667
|
+
|
3668
|
+
self.clear();
|
3669
|
+
});
|
3606
3670
|
|
3607
|
-
this.setup = (function() {
|
3608
|
-
var original = self.setup;
|
3609
|
-
return function() {
|
3610
|
-
// override the item rendering method to add the button to each
|
3611
|
-
if (options.append) {
|
3612
|
-
var render_item = self.settings.render.item;
|
3613
|
-
self.settings.render.item = function(data) {
|
3614
|
-
return append(render_item.apply(this, arguments), html);
|
3615
3671
|
};
|
3616
|
-
}
|
3672
|
+
})();
|
3673
|
+
};
|
3617
3674
|
|
3618
|
-
|
3675
|
+
var multiClose = function(thisRef, options) {
|
3676
|
+
|
3677
|
+
var self = thisRef;
|
3678
|
+
var html = '<a href="javascript:void(0)" class="' + options.className + '" tabindex="-1" title="' + escape_html(options.title) + '">' + options.label + '</a>';
|
3679
|
+
|
3680
|
+
/**
|
3681
|
+
* Appends an element as a child (with raw HTML).
|
3682
|
+
*
|
3683
|
+
* @param {string} html_container
|
3684
|
+
* @param {string} html_element
|
3685
|
+
* @return {string}
|
3686
|
+
*/
|
3687
|
+
var append = function(html_container, html_element) {
|
3688
|
+
var pos = html_container.search(/(<\/[^>]+>\s*)$/);
|
3689
|
+
return html_container.substring(0, pos) + html_element + html_container.substring(pos);
|
3690
|
+
};
|
3619
3691
|
|
3620
|
-
|
3621
|
-
|
3622
|
-
|
3623
|
-
|
3692
|
+
thisRef.setup = (function() {
|
3693
|
+
var original = self.setup;
|
3694
|
+
return function() {
|
3695
|
+
// override the item rendering method to add the button to each
|
3696
|
+
if (options.append) {
|
3697
|
+
var render_item = self.settings.render.item;
|
3698
|
+
self.settings.render.item = function(data) {
|
3699
|
+
return append(render_item.apply(thisRef, arguments), html);
|
3700
|
+
};
|
3701
|
+
}
|
3624
3702
|
|
3625
|
-
|
3626
|
-
self.setActiveItem($item);
|
3627
|
-
if (self.deleteSelection()) {
|
3628
|
-
self.setCaret(self.items.length);
|
3629
|
-
}
|
3630
|
-
});
|
3703
|
+
original.apply(thisRef, arguments);
|
3631
3704
|
|
3705
|
+
// add event listener
|
3706
|
+
thisRef.$control.on('click', '.' + options.className, function(e) {
|
3707
|
+
e.preventDefault();
|
3708
|
+
if (self.isLocked) return;
|
3709
|
+
|
3710
|
+
var $item = $(e.currentTarget).parent();
|
3711
|
+
self.setActiveItem($item);
|
3712
|
+
if (self.deleteSelection()) {
|
3713
|
+
self.setCaret(self.items.length);
|
3714
|
+
}
|
3715
|
+
});
|
3716
|
+
|
3717
|
+
};
|
3718
|
+
})();
|
3632
3719
|
};
|
3633
|
-
})();
|
3634
3720
|
|
3721
|
+
if (this.settings.mode === 'single') {
|
3722
|
+
singleClose(this, options);
|
3723
|
+
return;
|
3724
|
+
} else {
|
3725
|
+
multiClose(this, options);
|
3726
|
+
}
|
3635
3727
|
});
|
3636
3728
|
|
3729
|
+
|
3637
3730
|
Selectize.define('restore_on_backspace', function(options) {
|
3638
3731
|
var self = this;
|
3639
3732
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* selectize.bootstrap2.css (v0.12.
|
2
|
+
* selectize.bootstrap2.css (v0.12.2) - Bootstrap 2 Theme
|
3
3
|
* Copyright (c) 2013–2015 Brian Reavis & contributors
|
4
4
|
*
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
|
@@ -108,6 +108,12 @@
|
|
108
108
|
.selectize-control.plugin-remove_button .disabled [data-value] .remove {
|
109
109
|
border-left-color: #e0e0e0;
|
110
110
|
}
|
111
|
+
.selectize-control.plugin-remove_button .remove-single {
|
112
|
+
position: absolute;
|
113
|
+
right: 28px;
|
114
|
+
top: 6px;
|
115
|
+
font-size: 23px;
|
116
|
+
}
|
111
117
|
.selectize-control {
|
112
118
|
position: relative;
|
113
119
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* selectize.bootstrap3.css (v0.12.
|
2
|
+
* selectize.bootstrap3.css (v0.12.2) - Bootstrap 3 Theme
|
3
3
|
* Copyright (c) 2013–2015 Brian Reavis & contributors
|
4
4
|
*
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
|
@@ -108,6 +108,12 @@
|
|
108
108
|
.selectize-control.plugin-remove_button .disabled [data-value] .remove {
|
109
109
|
border-left-color: rgba(77, 77, 77, 0);
|
110
110
|
}
|
111
|
+
.selectize-control.plugin-remove_button .remove-single {
|
112
|
+
position: absolute;
|
113
|
+
right: 28px;
|
114
|
+
top: 6px;
|
115
|
+
font-size: 23px;
|
116
|
+
}
|
111
117
|
.selectize-control {
|
112
118
|
position: relative;
|
113
119
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* selectize.css (v0.12.
|
2
|
+
* selectize.css (v0.12.2)
|
3
3
|
* Copyright (c) 2013–2015 Brian Reavis & contributors
|
4
4
|
*
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
|
@@ -109,6 +109,12 @@
|
|
109
109
|
.selectize-control.plugin-remove_button .disabled [data-value] .remove {
|
110
110
|
border-left-color: #ffffff;
|
111
111
|
}
|
112
|
+
.selectize-control.plugin-remove_button .remove-single {
|
113
|
+
position: absolute;
|
114
|
+
right: 28px;
|
115
|
+
top: 6px;
|
116
|
+
font-size: 23px;
|
117
|
+
}
|
112
118
|
.selectize-control {
|
113
119
|
position: relative;
|
114
120
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* selectize.default.css (v0.12.
|
2
|
+
* selectize.default.css (v0.12.2) - Default Theme
|
3
3
|
* Copyright (c) 2013–2015 Brian Reavis & contributors
|
4
4
|
*
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
|
@@ -108,6 +108,12 @@
|
|
108
108
|
.selectize-control.plugin-remove_button .disabled [data-value] .remove {
|
109
109
|
border-left-color: #aaaaaa;
|
110
110
|
}
|
111
|
+
.selectize-control.plugin-remove_button .remove-single {
|
112
|
+
position: absolute;
|
113
|
+
right: 28px;
|
114
|
+
top: 6px;
|
115
|
+
font-size: 23px;
|
116
|
+
}
|
111
117
|
.selectize-control {
|
112
118
|
position: relative;
|
113
119
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* selectize.legacy.css (v0.12.
|
2
|
+
* selectize.legacy.css (v0.12.2) - Default Theme
|
3
3
|
* Copyright (c) 2013–2015 Brian Reavis & contributors
|
4
4
|
*
|
5
5
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
|
@@ -108,6 +108,12 @@
|
|
108
108
|
.selectize-control.plugin-remove_button .disabled [data-value] .remove {
|
109
109
|
border-left-color: #b4b4b4;
|
110
110
|
}
|
111
|
+
.selectize-control.plugin-remove_button .remove-single {
|
112
|
+
position: absolute;
|
113
|
+
right: 28px;
|
114
|
+
top: 6px;
|
115
|
+
font-size: 23px;
|
116
|
+
}
|
111
117
|
.selectize-control {
|
112
118
|
position: relative;
|
113
119
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: selectize-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.12.
|
4
|
+
version: 0.12.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:
|
11
|
+
date: 2016-06-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
version: '0'
|
41
41
|
description: A small gem for putting selectize.js into the Rails asset pipeline
|
42
42
|
email:
|
43
|
-
- manuel@
|
43
|
+
- manuel@manuelvanrijn.nl
|
44
44
|
executables: []
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
@@ -83,9 +83,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
83
|
version: '0'
|
84
84
|
requirements: []
|
85
85
|
rubyforge_project:
|
86
|
-
rubygems_version: 2.
|
86
|
+
rubygems_version: 2.5.1
|
87
87
|
signing_key:
|
88
88
|
specification_version: 4
|
89
89
|
summary: an asset gemification of the selectize.js plugin
|
90
90
|
test_files: []
|
91
|
-
has_rdoc:
|