effective_bootstrap 0.7.0 → 0.7.1
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be5065b3a822eb4860a24310fb77bf65ec46dacafa61abca132c76372d5e58c4
|
4
|
+
data.tar.gz: 2d5d1531f25ad0d8bec41a6fbe1c90d7f1a3117e4309afac88cc5b54de38d092
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4b1f4a32795ed3b24557647f87571ac87415ffb1d146449f4421199db55141b878f6aaf9a57d7c67d0bcbf73f9912d12eebec0955dee38e9ac99158ca80f660
|
7
|
+
data.tar.gz: d256e2b4cbe06bc4bf0126f09e143ce42ccebfaa24e5d7a14bd44373092bbe3dbac5300cdaf612a0d57a51fc8d7dc4055c58210b9ca52265be38efdab22a9720
|
data/README.md
CHANGED
@@ -381,6 +381,8 @@ The standard mode is a replacement for the default single select box.
|
|
381
381
|
|
382
382
|
Passing `multiple: true` will allow multiple selections to be made.
|
383
383
|
|
384
|
+
Passing `freeform: true` will allow a single selection and new ones to be created.
|
385
|
+
|
384
386
|
Passing `multiple: true, tags: true` will allow multiple selections to be made, and new value options to be created. This will allow you to both select existing tags and create new tags in the same form control.
|
385
387
|
|
386
388
|
Passing `grouped: true` will enable optgroup support. When in this mode, the collection should be a Hash of ActiveRecord Relations or Array of Arrays
|
@@ -28,6 +28,11 @@ matchWithHtml = (params, data) ->
|
|
28
28
|
options['templateSelection'] = formatWithHtml
|
29
29
|
options['matcher'] = matchWithHtml
|
30
30
|
|
31
|
+
if options['noResults']
|
32
|
+
noResults = options['noResults']
|
33
|
+
delete options['noResults']
|
34
|
+
options['language'] = { noResults: (_) -> noResults }
|
35
|
+
|
31
36
|
$select = $element.select2(options)
|
32
37
|
|
33
38
|
# effective_select custom class functionality
|
@@ -49,5 +54,3 @@ $(document).on 'change', "select.effective_select.polymorphic", (event) ->
|
|
49
54
|
|
50
55
|
$select.siblings("input[type='hidden'][name$='_type]']").val(value.split('_')[0] || '')
|
51
56
|
$select.siblings("input[type='hidden'][name$='_id]']").val(value.split('_')[1] || '')
|
52
|
-
|
53
|
-
|
@@ -29,17 +29,15 @@ module Effective
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def input_js_options
|
32
|
-
placeholder = options.delete(:placeholder)
|
33
|
-
placeholder = '' if placeholder == false
|
34
|
-
|
35
32
|
opts = {
|
36
33
|
theme: 'bootstrap',
|
37
|
-
minimumResultsForSearch: 6,
|
34
|
+
minimumResultsForSearch: (freeform? ? 0 : 6),
|
38
35
|
width: 'style',
|
39
|
-
placeholder:
|
36
|
+
placeholder: placeholder,
|
40
37
|
allowClear: (true if include_blank?),
|
41
38
|
tokenSeparators: ([',', ';', '\n', '\t'] if tags?),
|
42
39
|
tags: (true if tags?),
|
40
|
+
noResults: no_results,
|
43
41
|
template: js_template,
|
44
42
|
containerClass: ('hide-disabled' if hide_disabled?),
|
45
43
|
dropdownClass: ('hide-disabled' if hide_disabled?),
|
@@ -51,6 +49,7 @@ module Effective
|
|
51
49
|
classes = [
|
52
50
|
'effective_select',
|
53
51
|
'form-control',
|
52
|
+
('freeform' if freeform?),
|
54
53
|
('polymorphic' if polymorphic?),
|
55
54
|
('grouped' if (grouped? || polymorphic?)),
|
56
55
|
('hide-disabled' if hide_disabled?),
|
@@ -109,11 +108,13 @@ module Effective
|
|
109
108
|
end
|
110
109
|
|
111
110
|
def multiple?
|
111
|
+
return false if freeform?
|
112
112
|
return @multiple unless @multiple.nil?
|
113
113
|
@multiple = options.key?(:multiple) ? options.delete(:multiple) : (tags? || name.to_s.ends_with?('_ids'))
|
114
114
|
end
|
115
115
|
|
116
116
|
def tags?
|
117
|
+
return true if freeform?
|
117
118
|
return @tags unless @tags.nil?
|
118
119
|
@tags = (options.delete(:tags) || false)
|
119
120
|
end
|
@@ -133,11 +134,39 @@ module Effective
|
|
133
134
|
@disable_open_on_focus = (options.delete(:disable_open_on_focus) || false)
|
134
135
|
end
|
135
136
|
|
137
|
+
def freeform?
|
138
|
+
return @freeform unless @freeform.nil?
|
139
|
+
@freeform = (options.delete(:freeform) || false)
|
140
|
+
end
|
141
|
+
|
142
|
+
def no_results
|
143
|
+
return @no_results unless @no_results.nil?
|
144
|
+
|
145
|
+
@no_results = options.delete(:no_results)
|
146
|
+
|
147
|
+
if freeform?
|
148
|
+
@no_results ||= 'No results. To create a new one, press ENTER after typing your own free form response.'
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
136
152
|
def js_template
|
137
153
|
return @js_template unless @js_template.nil?
|
138
154
|
@js_template = options.delete(:template)
|
139
155
|
end
|
140
156
|
|
157
|
+
def placeholder
|
158
|
+
return @placeholder unless @placeholder.nil?
|
159
|
+
|
160
|
+
obj = options.delete(:placeholder)
|
161
|
+
|
162
|
+
@placeholder = case obj
|
163
|
+
when nil then
|
164
|
+
(freeform? ? 'Choose or enter' : 'Please choose')
|
165
|
+
when false then ''
|
166
|
+
else obj
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
141
170
|
def ajax_url
|
142
171
|
@ajax_url ||= (options.delete(:ajax_url) || options.delete(:ajax) || options.delete(:url))
|
143
172
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_bootstrap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-07-
|
11
|
+
date: 2020-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|