select2-bootstrap-rails 4.1.0.pre.rc.0
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.
- checksums.yaml +7 -0
- data/Gemfile +5 -0
- data/README.md +82 -0
- data/Rakefile +9 -0
- data/lib/select2-bootstrap-rails/engine.rb +6 -0
- data/lib/select2-bootstrap-rails/source_file.rb +53 -0
- data/lib/select2-bootstrap-rails/version.rb +5 -0
- data/lib/select2-bootstrap-rails.rb +7 -0
- data/select2-bootstrap-rails.gemspec +23 -0
- data/vendor/assets/javascripts/select2-full.js +6114 -0
- data/vendor/assets/javascripts/select2.js +5403 -0
- data/vendor/assets/javascripts/select2_locale_af.js +3 -0
- data/vendor/assets/javascripts/select2_locale_ar.js +3 -0
- data/vendor/assets/javascripts/select2_locale_az.js +3 -0
- data/vendor/assets/javascripts/select2_locale_bg.js +3 -0
- data/vendor/assets/javascripts/select2_locale_bn.js +3 -0
- data/vendor/assets/javascripts/select2_locale_bs.js +3 -0
- data/vendor/assets/javascripts/select2_locale_ca.js +3 -0
- data/vendor/assets/javascripts/select2_locale_cs.js +3 -0
- data/vendor/assets/javascripts/select2_locale_da.js +3 -0
- data/vendor/assets/javascripts/select2_locale_de.js +3 -0
- data/vendor/assets/javascripts/select2_locale_dsb.js +3 -0
- data/vendor/assets/javascripts/select2_locale_el.js +3 -0
- data/vendor/assets/javascripts/select2_locale_en.js +3 -0
- data/vendor/assets/javascripts/select2_locale_eo.js +3 -0
- data/vendor/assets/javascripts/select2_locale_es.js +3 -0
- data/vendor/assets/javascripts/select2_locale_et.js +3 -0
- data/vendor/assets/javascripts/select2_locale_eu.js +3 -0
- data/vendor/assets/javascripts/select2_locale_fa.js +3 -0
- data/vendor/assets/javascripts/select2_locale_fi.js +3 -0
- data/vendor/assets/javascripts/select2_locale_fr.js +3 -0
- data/vendor/assets/javascripts/select2_locale_gl.js +3 -0
- data/vendor/assets/javascripts/select2_locale_he.js +3 -0
- data/vendor/assets/javascripts/select2_locale_hi.js +3 -0
- data/vendor/assets/javascripts/select2_locale_hr.js +3 -0
- data/vendor/assets/javascripts/select2_locale_hsb.js +3 -0
- data/vendor/assets/javascripts/select2_locale_hu.js +3 -0
- data/vendor/assets/javascripts/select2_locale_hy.js +3 -0
- data/vendor/assets/javascripts/select2_locale_id.js +3 -0
- data/vendor/assets/javascripts/select2_locale_is.js +3 -0
- data/vendor/assets/javascripts/select2_locale_it.js +3 -0
- data/vendor/assets/javascripts/select2_locale_ja.js +3 -0
- data/vendor/assets/javascripts/select2_locale_ka.js +3 -0
- data/vendor/assets/javascripts/select2_locale_km.js +3 -0
- data/vendor/assets/javascripts/select2_locale_ko.js +3 -0
- data/vendor/assets/javascripts/select2_locale_lt.js +3 -0
- data/vendor/assets/javascripts/select2_locale_lv.js +3 -0
- data/vendor/assets/javascripts/select2_locale_mk.js +3 -0
- data/vendor/assets/javascripts/select2_locale_ms.js +3 -0
- data/vendor/assets/javascripts/select2_locale_nb.js +3 -0
- data/vendor/assets/javascripts/select2_locale_ne.js +3 -0
- data/vendor/assets/javascripts/select2_locale_nl.js +3 -0
- data/vendor/assets/javascripts/select2_locale_pa.js +3 -0
- data/vendor/assets/javascripts/select2_locale_pl.js +3 -0
- data/vendor/assets/javascripts/select2_locale_ps.js +3 -0
- data/vendor/assets/javascripts/select2_locale_pt-BR.js +3 -0
- data/vendor/assets/javascripts/select2_locale_pt.js +3 -0
- data/vendor/assets/javascripts/select2_locale_ro.js +3 -0
- data/vendor/assets/javascripts/select2_locale_ru.js +3 -0
- data/vendor/assets/javascripts/select2_locale_sk.js +3 -0
- data/vendor/assets/javascripts/select2_locale_sl.js +3 -0
- data/vendor/assets/javascripts/select2_locale_sq.js +3 -0
- data/vendor/assets/javascripts/select2_locale_sr-Cyrl.js +3 -0
- data/vendor/assets/javascripts/select2_locale_sr.js +3 -0
- data/vendor/assets/javascripts/select2_locale_sv.js +3 -0
- data/vendor/assets/javascripts/select2_locale_th.js +3 -0
- data/vendor/assets/javascripts/select2_locale_tk.js +3 -0
- data/vendor/assets/javascripts/select2_locale_tr.js +3 -0
- data/vendor/assets/javascripts/select2_locale_uk.js +3 -0
- data/vendor/assets/javascripts/select2_locale_vi.js +3 -0
- data/vendor/assets/javascripts/select2_locale_zh-CN.js +3 -0
- data/vendor/assets/javascripts/select2_locale_zh-TW.js +3 -0
- data/vendor/assets/stylesheets/select2-bootstrap-5-theme.css +486 -0
- data/vendor/assets/stylesheets/select2.css +431 -0
- metadata +176 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: a760a5fec45b282655eb16617a5e09a527d7c8e9678abe8b6adb87009c8de710
|
|
4
|
+
data.tar.gz: 411c9266649c3b198bcaddc6aef2657036d6f81e3f8f6827f28b899c81064378
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 536e5d5c56b5c022501a43b70a19b7f79ecaaa7a5d2ecb4bf34a278c227403f55fe2a8f4303231e58cb0d0238b8d8e32bf5866c3ce8e23f1fcd5e8ea78539bc2
|
|
7
|
+
data.tar.gz: 9afcf80c55a4fc273920b023bfcb48d24a1dfe6aaf726bb73ccf537e9ea20d1f750fe97d24e228ed4328d1d9322bbeec836a4aa1fef9eacb026575fbeecde6aa
|
data/Gemfile
ADDED
data/README.md
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Select2 with Bootstrap 5 theme for rails asset pipeline
|
|
2
|
+
|
|
3
|
+
[Select2](https://github.com/select2/select2) is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.
|
|
4
|
+
|
|
5
|
+
The `select2-bootstrap-rails` gem integrates the `Select2` jQuery plugin with the Rails asset pipeline.
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
### Install select2-bootstrap-rails gem
|
|
10
|
+
|
|
11
|
+
Add `select2-bootstrap-rails` to your Gemfile and run `bundle install`:
|
|
12
|
+
|
|
13
|
+
gem "select2-bootstrap-rails"
|
|
14
|
+
|
|
15
|
+
### Include select2-bootstrap-rails javascript assets
|
|
16
|
+
|
|
17
|
+
Add the following to your `app/assets/javascripts/application.js`:
|
|
18
|
+
|
|
19
|
+
//= require select2
|
|
20
|
+
|
|
21
|
+
To add `select2-full.js` instead of `select2.js`, add the following instead :
|
|
22
|
+
|
|
23
|
+
//= require select2-full
|
|
24
|
+
|
|
25
|
+
### Include select2-bootstrap-rails stylesheet assets
|
|
26
|
+
|
|
27
|
+
Add to your `app/assets/stylesheets/application.css`:
|
|
28
|
+
|
|
29
|
+
@import select2
|
|
30
|
+
|
|
31
|
+
If you are using Twitter Boostrap you need to also require the bootstrap theme CSS in addition to the above require.
|
|
32
|
+
|
|
33
|
+
@import select2-bootstrap-5-theme
|
|
34
|
+
|
|
35
|
+
To apply the theme, tell Select2 to do so by passing `bootstrap` to the [`theme`](https://select2.github.io/examples.html#themes) option when initializing Select2:
|
|
36
|
+
|
|
37
|
+
$( "#dropdown" ).select2({
|
|
38
|
+
theme: "bootstrap"
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
## Internationalization (i18n)
|
|
42
|
+
|
|
43
|
+
The `select2-bootstrap-rails` now supports multiple languages.
|
|
44
|
+
|
|
45
|
+
Add the following to your `app/assets/javascripts/application.js`:
|
|
46
|
+
|
|
47
|
+
//= require select2_locale_"any possible language"
|
|
48
|
+
|
|
49
|
+
To apply the language, pass whatever language you'd like to use to the [`language`](https://select2.github.io/examples.html#language) option when initializing Select2:
|
|
50
|
+
|
|
51
|
+
$( "#dropdown" ).select2({
|
|
52
|
+
language: "zh-TW"
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
Possible languages:
|
|
56
|
+
|
|
57
|
+
af, ar, az, bg, bn, bs, ca, cs, da, de, dsb, el, en, eo, es, et, eu, fa, fi, fr, gl, he, hi, hr, hsb, hu, hy, id, is, it, ja, ka, km, ko, lt, lv, mk, ms, nb, ne, nl, pa, pl, ps, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-Cyrl, sv, th, tk, tr, uk, vi, zh-CN, zh-TW
|
|
58
|
+
|
|
59
|
+
## Example
|
|
60
|
+
Code [here](https://github.com/argerim/select_2_example)
|
|
61
|
+
|
|
62
|
+
## Fix
|
|
63
|
+
### IE8 Invalid Character
|
|
64
|
+
IE8 doesn't support some unescaped Unicode character and need to quote keys in object literals
|
|
65
|
+
You need some configurations for [Uglifier](https://github.com/lautis/uglifier) to do the work.
|
|
66
|
+
Add to your `config/environments/production.rb`
|
|
67
|
+
|
|
68
|
+
require 'uglifier'
|
|
69
|
+
config.assets.js_compressor = Uglifier.new(output: {ascii_only: true, quote_keys: true})
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
## Contributions
|
|
73
|
+
|
|
74
|
+
If you want to contribute, please:
|
|
75
|
+
|
|
76
|
+
* Fork the project.
|
|
77
|
+
* Make your feature addition or bug fix.
|
|
78
|
+
* Send me a pull request on Github.
|
|
79
|
+
|
|
80
|
+
## License
|
|
81
|
+
|
|
82
|
+
Selec2-Rails is released under the [MIT License](http://www.opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/usr/bin/env rake
|
|
2
|
+
require "bundler/gem_tasks"
|
|
3
|
+
require File.expand_path('../lib/select2-bootstrap-rails/source_file', __FILE__)
|
|
4
|
+
|
|
5
|
+
desc "Update with select2 and bootstrap 5 theme Libraries"
|
|
6
|
+
task "update-bootstrap-select2" do
|
|
7
|
+
files = SourceFile.new
|
|
8
|
+
files.fetch
|
|
9
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require "thor"
|
|
2
|
+
require "json"
|
|
3
|
+
require "httpclient"
|
|
4
|
+
|
|
5
|
+
class SourceFile < Thor
|
|
6
|
+
include Thor::Actions
|
|
7
|
+
|
|
8
|
+
desc "fetch source files", "fetch source files from GitHub"
|
|
9
|
+
def fetch
|
|
10
|
+
filtered_select2_tags = fetch_select2_tags
|
|
11
|
+
select2_tag = select("Which tag do you want to fetch for select2?", filtered_select2_tags)
|
|
12
|
+
bs_theme_tag = select("Which tag do you want to fetch for select 2 bootstrap 5 theme?", fetch_bs_theme_tags)
|
|
13
|
+
self.destination_root = "vendor/assets"
|
|
14
|
+
remote_select2 = "https://github.com/select2/select2"
|
|
15
|
+
remote_bootstrap = "https://github.com/apalfrey/select2-bootstrap-5-theme"
|
|
16
|
+
get "#{remote_select2}/raw/#{select2_tag}/dist/css/select2.css", "stylesheets/select2.css"
|
|
17
|
+
get "#{remote_select2}/raw/#{select2_tag}/dist/js/select2.full.js", "javascripts/select2-full.js"
|
|
18
|
+
get "#{remote_select2}/raw/#{select2_tag}/dist/js/select2.js", "javascripts/select2.js"
|
|
19
|
+
get "#{remote_bootstrap}/raw/#{bs_theme_tag}/dist/select2-bootstrap-5-theme.css", "stylesheets/select2-bootstrap-5-theme.css"
|
|
20
|
+
languages(select2_tag).each do |lang|
|
|
21
|
+
get "#{remote_select2}/raw/#{select2_tag}/dist/js/i18n/#{lang}.js", "javascripts/select2_locale_#{lang}.js"
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def fetch_select2_tags
|
|
28
|
+
response = JSON.parse(http_client.get("https://api.github.com/repos/select2/select2/tags").body)
|
|
29
|
+
response.map { |tag| tag["name"] }.sort
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def fetch_bs_theme_tags
|
|
33
|
+
response = JSON.parse(http_client.get("https://api.github.com/repos/apalfrey/select2-bootstrap-5-theme/tags").body)
|
|
34
|
+
response.map { |tag| tag["name"] }.sort
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def http_client
|
|
38
|
+
@http_client ||= HTTPClient.new
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def languages(tag)
|
|
42
|
+
response = JSON.parse(http_client.get("https://api.github.com/repos/select2/select2/contents/src/js/select2/i18n?ref=#{tag}").body)
|
|
43
|
+
response.map { |file| file["name"].gsub('.js', '') }.sort
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def select(message, elements)
|
|
47
|
+
elements.each_with_index do |element, index|
|
|
48
|
+
say(block_given? ? yield(element, index + 1) : ("#{index + 1}. #{element.to_s}"))
|
|
49
|
+
end
|
|
50
|
+
result = ask(message).to_i
|
|
51
|
+
elements[result - 1]
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
require File.expand_path("../lib/select2-bootstrap-rails/version", __FILE__)
|
|
3
|
+
|
|
4
|
+
Gem::Specification.new do |s|
|
|
5
|
+
s.name = "select2-bootstrap-rails"
|
|
6
|
+
s.version = Select2Bootstrap::Rails::VERSION
|
|
7
|
+
s.authors = ["Muneza Karl"]
|
|
8
|
+
s.email = ["kazozaagiro@gmail.com"]
|
|
9
|
+
s.homepage = "https://github.com/karl257/select2-bootstrap-rails"
|
|
10
|
+
s.summary = %q{Integrate Select2 and Select2 Bootstrap 5 Theme with the Rails asset pipeline.}
|
|
11
|
+
s.description = %q{Select2, a jQuery-based substitute for select boxes, offers features such as search functionality, support for remote data sets, and infinite result scrolling. This gem offers search, remote data loading, and infinite scrolling, all wrapped in a beautiful Bootstrap 5 theme. Integrating them with your Rails app has never been easier.}
|
|
12
|
+
s.license = 'MIT'
|
|
13
|
+
s.files = `git ls-files`.split("\n")
|
|
14
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
15
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
16
|
+
s.require_paths = ["lib"]
|
|
17
|
+
|
|
18
|
+
s.add_development_dependency "thor", "~> 1"
|
|
19
|
+
s.add_development_dependency "bundler", ">= 2"
|
|
20
|
+
s.add_development_dependency "rails", ">= 3.0"
|
|
21
|
+
s.add_development_dependency "httpclient", "~> 2.2"
|
|
22
|
+
end
|
|
23
|
+
|